feat: implement createNews API and integrate with content creation flow

This commit is contained in:
Ardeman
2025-03-06 05:46:25 +08:00
parent 894698c5d6
commit 414806734d
4 changed files with 61 additions and 18 deletions
+15 -11
View File
@@ -1,7 +1,7 @@
import { DevTool } from '@hookform/devtools'
import { zodResolver } from '@hookform/resolvers/zod'
import { useEffect, useState } from 'react'
import { useFetcher, useRouteLoaderData } from 'react-router'
import { useFetcher, useNavigate, useRouteLoaderData } from 'react-router'
import { RemixFormProvider, useRemixForm } from 'remix-hook-form'
import { z } from 'zod'
@@ -27,16 +27,18 @@ export const contentSchema = z.object({
.refine((data) => !!data, {
message: 'Please select a category',
}),
tags: z.array(
z
.object({
id: z.string(),
code: z.string(),
name: z.string(),
})
.optional()
.nullable(),
),
tags: z
.array(
z
.object({
id: z.string(),
code: z.string(),
name: z.string(),
})
.optional()
.nullable(),
)
.optional(),
title: z.string().min(1, {
message: 'Judul is required',
}),
@@ -54,6 +56,7 @@ export type TContentSchema = z.infer<typeof contentSchema>
export const CreateContentsPage = () => {
const fetcher = useFetcher()
const navigate = useNavigate()
const loaderData = useRouteLoaderData<typeof loader>('routes/_admin.lg-admin')
const categories = loaderData?.categoriesData
const tags = loaderData?.tagsData
@@ -77,6 +80,7 @@ export const CreateContentsPage = () => {
return
}
navigate('/lg-admin/contents')
setDisabled(true)
setError(undefined)
// eslint-disable-next-line react-hooks/exhaustive-deps