import { useQueryClient } from '@tanstack/react-query'; import { useNavigate } from 'react-router-dom'; import { LibraryConfigWrapped, useBridgeMutation, usePlausibleEvent } from '@sd/client'; import { Dialog, UseDialogProps, forms, useDialog } from '@sd/ui'; const { Input, z, useZodForm } = forms; const schema = z.object({ name: z.string().min(1) }); export default (props: UseDialogProps) => { const dialog = useDialog(props); const navigate = useNavigate(); const queryClient = useQueryClient(); const submitPlausibleEvent = usePlausibleEvent(); const createLibrary = useBridgeMutation('library.create', { onSuccess: (library) => { queryClient.setQueryData( ['library.list'], (libraries: LibraryConfigWrapped[] | undefined) => [...(libraries || []), library] ); submitPlausibleEvent({ event: { type: 'libraryCreate' } }); navigate(`/${library.uuid}/overview`); }, onError: (err) => console.log(err) }); const form = useZodForm({ schema: schema }); const onSubmit = form.handleSubmit(async (data) => { await createLibrary.mutateAsync({ name: data.name }); }); return (
); };