fix: navigate to page onCreated

This commit is contained in:
Aslam H
2024-08-09 02:07:26 +07:00
parent daf7ae8e8f
commit e82cb9ee3d

View File

@@ -11,6 +11,8 @@ import { toast } from "sonner"
import { Button } from "@/components/ui/button" import { Button } from "@/components/ui/button"
import { useForm } from "react-hook-form" import { useForm } from "react-hook-form"
import { zodResolver } from "@hookform/resolvers/zod" import { zodResolver } from "@hookform/resolvers/zod"
import { useState } from "react"
import { useRouter } from "next/navigation"
const createPageSchema = z.object({ const createPageSchema = z.object({
title: z.string({ message: "Please enter a valid title" }).min(1, { message: "Please enter a valid title" }) title: z.string({ message: "Please enter a valid title" }).min(1, { message: "Please enter a valid title" })
@@ -47,7 +49,9 @@ export const PageSection: React.FC = () => {
} }
const CreatePageForm: React.FC = () => { const CreatePageForm: React.FC = () => {
const [open, setOpen] = useState(false)
const { me } = useAccount() const { me } = useAccount()
const route = useRouter()
const form = useForm<PageFormValues>({ const form = useForm<PageFormValues>({
resolver: zodResolver(createPageSchema), resolver: zodResolver(createPageSchema),
@@ -72,6 +76,11 @@ const CreatePageForm: React.FC = () => {
me.root?.personalPages?.push(newPersonalPage) me.root?.personalPages?.push(newPersonalPage)
form.reset()
setOpen(false)
route.push(`/pages/${newPersonalPage.id}`)
toast.success("Page created successfully") toast.success("Page created successfully")
} catch (error) { } catch (error) {
console.error(error) console.error(error)
@@ -80,7 +89,7 @@ const CreatePageForm: React.FC = () => {
} }
return ( return (
<Popover> <Popover open={open} onOpenChange={setOpen}>
<PopoverTrigger asChild> <PopoverTrigger asChild>
<Button type="button" size="icon" variant="ghost" aria-label="New Page" className="size-6"> <Button type="button" size="icon" variant="ghost" aria-label="New Page" className="size-6">
<PlusIcon size={16} /> <PlusIcon size={16} />