import { ButtonContainer } from '@/components/button-container'; import { InputWithLabel } from '@/components/forms/input-with-label'; import { Button } from '@/components/ui/button'; import { Checkbox } from '@/components/ui/checkbox'; import { useAppParams } from '@/hooks/useAppParams'; import { api, handleError } from '@/trpc/client'; import { zodResolver } from '@hookform/resolvers/zod'; import { useRouter } from 'next/navigation'; import { Controller, useForm } from 'react-hook-form'; import { toast } from 'sonner'; import type { z } from 'zod'; import { zShareOverview } from '@openpanel/validation'; import { popModal } from '.'; import { ModalContent, ModalHeader } from './Modal/Container'; const validator = zShareOverview; type IForm = z.infer; export default function ShareOverviewModal() { const { projectId, organizationId: organizationSlug } = useAppParams(); const router = useRouter(); const { register, handleSubmit, formState, control } = useForm({ resolver: zodResolver(validator), defaultValues: { public: true, password: '', projectId, organizationId: organizationSlug, }, }); const mutation = api.share.shareOverview.useMutation({ onError: handleError, onSuccess(res) { router.refresh(); toast('Success', { description: `Your overview is now ${ res.public ? 'public' : 'private' }`, }); popModal(); }, }); return (
{ mutation.mutate(values); })} > ( )} />
); }