import { PageUpdateInput } from '@boring.tools/schema' import { Button, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Input, Popover, PopoverContent, PopoverTrigger, Textarea, cn, } from '@boring.tools/ui' import { zodResolver } from '@hookform/resolvers/zod' import { createLazyFileRoute } from '@tanstack/react-router' import { useNavigate } from '@tanstack/react-router' import { Check, ChevronsUpDown } from 'lucide-react' import { useForm } from 'react-hook-form' import type { z } from 'zod' import { useChangelogList } from '../hooks/useChangelog' import { usePageById, usePageUpdate } from '../hooks/usePage' const Component = () => { const { id } = Route.useParams() const navigate = useNavigate({ from: `/page/${id}/edit` }) const page = usePageById({ id }) const changelogList = useChangelogList() const pageUpdate = usePageUpdate() const form = useForm>({ resolver: zodResolver(PageUpdateInput), defaultValues: { ...page.data, changelogIds: page.data?.changelogs.map((log) => log.id), }, }) const onSubmit = (values: z.infer) => { pageUpdate.mutate( { id, payload: values }, { onSuccess(data) { navigate({ to: '/page/$id', params: { id: data.id } }) }, }, ) } return ( <>

Edit page

( Title {' '} )} /> ( Description