diff --git a/app/apis/common/get-subscriptions.ts b/app/apis/common/get-subscriptions.ts index 35caf74..2d5416d 100644 --- a/app/apis/common/get-subscriptions.ts +++ b/app/apis/common/get-subscriptions.ts @@ -8,6 +8,9 @@ const subscriptionResponseSchema = z.object({ id: z.string(), code: z.string(), name: z.string(), + length: z.number().optional(), + price: z.number().optional(), + status: z.number().optional(), }), ), }) diff --git a/app/pages/form-subscriptions-plan/index.tsx b/app/pages/form-subscriptions-plan/index.tsx index 0310583..aea6b6f 100644 --- a/app/pages/form-subscriptions-plan/index.tsx +++ b/app/pages/form-subscriptions-plan/index.tsx @@ -1,3 +1,4 @@ +import { Field, Label, Select } from '@headlessui/react' import { zodResolver } from '@hookform/resolvers/zod' import { useEffect, useState } from 'react' import { useFetcher, useNavigate } from 'react-router' @@ -13,6 +14,9 @@ export const createSubscribePlanSchema = z.object({ id: z.string().optional(), name: z.string().min(3, 'Nama minimal 3 karakter'), code: z.string(), + length: z.preprocess(Number, z.number().optional()), + price: z.preprocess(Number, z.number().optional()), + status: z.boolean().optional(), }) export type TSubscribePlanSchema = z.infer type TProperties = { @@ -31,6 +35,9 @@ export const FormSubscribePlanPage = (properties: TProperties) => { id: subscribePlanData?.id || undefined, code: subscribePlanData?.code || '', name: subscribePlanData?.name || '', + length: subscribePlanData?.length || undefined, + price: subscribePlanData?.price || undefined, + status: subscribePlanData?.status || undefined, }, }) const [error, setError] = useState() @@ -101,6 +108,41 @@ export const FormSubscribePlanPage = (properties: TProperties) => { Save +
+ + + + + + + +
diff --git a/app/routes/actions.admin.subscribe-plan.create.ts b/app/routes/actions.admin.subscribe-plan.create.ts index 2ac4716..6323a2b 100644 --- a/app/routes/actions.admin.subscribe-plan.create.ts +++ b/app/routes/actions.admin.subscribe-plan.create.ts @@ -29,7 +29,7 @@ export const action = async ({ request }: Route.ActionArgs) => { return data({ success: false, errors, defaultValues }, { status: 400 }) } - const { data: tagsData } = await createSubscribePlanRequest({ + const { data: subscribePlanData } = await createSubscribePlanRequest({ accessToken: staffToken, payload, }) @@ -37,7 +37,7 @@ export const action = async ({ request }: Route.ActionArgs) => { return data( { success: true, - tagsData, + subscribePlanData, }, { status: 200, diff --git a/app/routes/actions.admin.subscribe-plan.update.ts b/app/routes/actions.admin.subscribe-plan.update.ts index 4146c8f..4126f0d 100644 --- a/app/routes/actions.admin.subscribe-plan.update.ts +++ b/app/routes/actions.admin.subscribe-plan.update.ts @@ -5,8 +5,10 @@ import { XiorError } from 'xior' import { updateSubscribePlanRequest } from '~/apis/admin/update-subscribe-plan' import { handleCookie } from '~/libs/cookies' -import type { TSubscribePlanSchema } from '~/pages/form-subscriptions-plan' -import { createTagSchema } from '~/pages/form-tag' +import { + createSubscribePlanSchema, + type TSubscribePlanSchema, +} from '~/pages/form-subscriptions-plan' import type { Route } from './+types/actions.register' @@ -19,7 +21,7 @@ export const action = async ({ request }: Route.ActionArgs) => { receivedValues: defaultValues, } = await getValidatedFormData( request, - zodResolver(createTagSchema), + zodResolver(createSubscribePlanSchema), false, ) @@ -27,7 +29,7 @@ export const action = async ({ request }: Route.ActionArgs) => { return data({ success: false, errors, defaultValues }, { status: 400 }) } - const { data: tagData } = await updateSubscribePlanRequest({ + const { data: subscribePlanData } = await updateSubscribePlanRequest({ accessToken: staffToken, payload, }) @@ -35,7 +37,7 @@ export const action = async ({ request }: Route.ActionArgs) => { return data( { success: true, - tagData, + subscribePlanData, }, { status: 200,