diff --git a/002_source/cms/src/app/dashboard/lesson_types/[type_id]/page.tsx b/002_source/cms/src/app/dashboard/lesson_types/[type_id]/page.tsx index e732eeb..0413d4f 100644 --- a/002_source/cms/src/app/dashboard/lesson_types/[type_id]/page.tsx +++ b/002_source/cms/src/app/dashboard/lesson_types/[type_id]/page.tsx @@ -37,9 +37,10 @@ import { PropertyItem } from '@/components/core/property-item'; import { PropertyList } from '@/components/core/property-list'; import { toast } from '@/components/core/toaster'; import ErrorDisplay from '@/components/dashboard/error'; +import { defaultLessonType } from '@/components/dashboard/lesson_type/_constants'; // import { getLessonTypeById } from '@/components/dashboard/lesson_type/http-actions'; import { LessonTypeDefaultValue, type LessonType } from '@/components/dashboard/lesson_type/ILessonType'; -import { defaultLessonType } from '@/components/dashboard/lesson_type/interfaces'; +// import { defaultLessonType } from '@/components/dashboard/lesson_type/interfaces'; import { Notifications } from '@/components/dashboard/lesson_type/notifications'; import { Payments } from '@/components/dashboard/lesson_type/payments'; import type { Address } from '@/components/dashboard/lesson_type/shipping-address'; diff --git a/002_source/cms/src/app/dashboard/lesson_types/page.tsx b/002_source/cms/src/app/dashboard/lesson_types/page.tsx index bac719b..51ea887 100644 --- a/002_source/cms/src/app/dashboard/lesson_types/page.tsx +++ b/002_source/cms/src/app/dashboard/lesson_types/page.tsx @@ -18,8 +18,9 @@ import { logger } from '@/lib/default-logger'; import { pb } from '@/lib/pb'; import { toast } from '@/components/core/toaster'; import ErrorDisplay from '@/components/dashboard/error'; +import { defaultLessonType } from '@/components/dashboard/lesson_type/_constants'; import type { LessonType } from '@/components/dashboard/lesson_type/ILessonType'; -import { defaultLessonType, emptyLessonType, safeAssignment } from '@/components/dashboard/lesson_type/interfaces'; +// import { defaultLessonType, emptyLessonType, safeAssignment } from '@/components/dashboard/lesson_type/interfaces'; import { LessonTypesFilters } from '@/components/dashboard/lesson_type/lesson-types-filters'; import type { Filters } from '@/components/dashboard/lesson_type/lesson-types-filters'; import { LessonTypesPagination } from '@/components/dashboard/lesson_type/lesson-types-pagination'; diff --git a/002_source/cms/src/components/dashboard/lesson_type/interfaces.ts b/002_source/cms/src/components/dashboard/lesson_type/_constants.ts similarity index 78% rename from 002_source/cms/src/components/dashboard/lesson_type/interfaces.ts rename to 002_source/cms/src/components/dashboard/lesson_type/_constants.ts index 0f63c18..df21cea 100644 --- a/002_source/cms/src/components/dashboard/lesson_type/interfaces.ts +++ b/002_source/cms/src/components/dashboard/lesson_type/_constants.ts @@ -4,25 +4,7 @@ import type { RecordModel } from 'pocketbase'; import { dayjs } from '@/lib/dayjs'; import type { LessonType } from './ILessonType'; - -export interface LessonTypeEditFormProps { - name: string; - type: string; - pos: number; - visible: string; -} - -export interface RestLessonTypeUpdateForm { - id: string; - data: LessonTypeEditFormProps; -} - -export interface CreateForm { - name: string; - type: string; - pos: number; - visible: string; -} +import type { CreateForm } from './types'; export const LessonTypeCreateFormDefault: CreateForm = { name: '', diff --git a/002_source/cms/src/components/dashboard/lesson_type/lesson-type-create-form.tsx b/002_source/cms/src/components/dashboard/lesson_type/lesson-type-create-form.tsx index f917d98..cc13957 100644 --- a/002_source/cms/src/components/dashboard/lesson_type/lesson-type-create-form.tsx +++ b/002_source/cms/src/components/dashboard/lesson_type/lesson-type-create-form.tsx @@ -36,7 +36,10 @@ import { pb } from '@/lib/pb'; // import { Option } from '@/components/core/option'; import { toast } from '@/components/core/toaster'; -import { CreateForm, LessonTypeCreateFormDefault } from './interfaces'; +import { LessonTypeCreateFormDefault } from './_constants'; +import { CreateForm } from './types'; + +// import { CreateForm, LessonTypeCreateFormDefault } from './interfaces'; // import { createLessonType } from './http-actions'; // import { LessonTypeCreateForm, LessonTypeCreateFormDefault } from './interfaces'; diff --git a/002_source/cms/src/components/dashboard/lesson_type/lesson-type-edit-form.tsx b/002_source/cms/src/components/dashboard/lesson_type/lesson-type-edit-form.tsx index 80904d3..6eab9ba 100644 --- a/002_source/cms/src/components/dashboard/lesson_type/lesson-type-edit-form.tsx +++ b/002_source/cms/src/components/dashboard/lesson_type/lesson-type-edit-form.tsx @@ -37,10 +37,13 @@ import { pb } from '@/lib/pb'; import { toast } from '@/components/core/toaster'; import FormLoading from '@/components/loading'; +import { defaultLessonType } from './_constants'; // import { getLessonTypeById, updateLessonType } from './http-actions'; // TODO: this may be wrong import type { LessonType } from './ILessonType'; -import { defaultLessonType, type LessonTypeEditFormProps } from './interfaces'; +import { LessonTypeEditFormProps } from './types'; + +// import { defaultLessonType, type LessonTypeEditFormProps } from './interfaces'; // function fileToBase64(file: Blob): Promise { // return new Promise((resolve, reject) => { diff --git a/002_source/cms/src/components/dashboard/lesson_type/types.d.ts b/002_source/cms/src/components/dashboard/lesson_type/types.d.ts new file mode 100644 index 0000000..aa17528 --- /dev/null +++ b/002_source/cms/src/components/dashboard/lesson_type/types.d.ts @@ -0,0 +1,44 @@ +import { NO_NUM, NO_VALUE } from '@/constants'; +import type { RecordModel } from 'pocketbase'; + +import { dayjs } from '@/lib/dayjs'; + +import { defaultLessonType } from './_constants'; +import type { LessonType } from './ILessonType'; + +export interface LessonTypeEditFormProps { + name: string; + type: string; + pos: number; + visible: string; +} + +export interface RestLessonTypeUpdateForm { + id: string; + data: LessonTypeEditFormProps; +} + +export interface CreateForm { + name: string; + type: string; + pos: number; + visible: string; +} + +export function safeAssignment(inTemp: LessonType | RecordModel): LessonType { + const { id, name, type, pos, visible, createdAt, email, quota, status } = { ...defaultLessonType, ...inTemp }; + const oCreatedAt = dayjs(createdAt).toDate(); + + const output: LessonType = { + id, + name, + type, + pos, + visible, + createdAt: oCreatedAt, + email, + quota, + status, + }; + return output; +}