Skip to main content
Glama
index.tsx3.17 kB
'use client'; import { Button, Form, Modal, useForm } from '@intlayer/design-system'; import { useDeleteUser, useUser } from '@intlayer/design-system/hooks'; import { useIntlayer } from 'next-intlayer'; import type { FC } from 'react'; import { useState } from 'react'; import { type DeleteUserForm, useDeleteUserSchema, } from './useDeleteUserSchema'; export const DeleteUser: FC = () => { const { deleteButton, modal } = useIntlayer('delete-user'); const { mutate: deleteUser, isPending } = useDeleteUser(); const { logout, user } = useUser(); const [isModalOpen, setIsModalOpen] = useState(false); const DeleteUserSchema = useDeleteUserSchema(user?.email); const { form, isSubmitting } = useForm(DeleteUserSchema, { defaultValues: { email: '', }, }); const handleOpenModal = () => { setIsModalOpen(true); form.reset(); }; const handleCloseModal = () => { setIsModalOpen(false); form.reset(); }; const handleSubmit = (data: DeleteUserForm) => { deleteUser(data.email, { onSuccess: () => { handleCloseModal(); logout(); }, }); }; return ( <> <Button onClick={handleOpenModal} color="error" variant="outline" label={deleteButton.ariaLabel.value} > {deleteButton.text} </Button> <Modal isOpen={isModalOpen} onClose={handleCloseModal} title={modal.title.value} padding="lg" hasCloseButton > <div className="mt-6 flex w-full flex-col gap-6"> <p className="text-neutral text-sm">{modal.description}</p> <p className="text-neutral text-sm"> {modal.instruction[0]} <span className="mx-1 font-bold">{user?.email ?? ''}</span> {modal.instruction[1]} </p> <Form schema={DeleteUserSchema} onSubmitSuccess={handleSubmit} className="flex flex-col gap-4 py-4" {...form} > <Form.Input name="email" id="delete-user-email-confirmation" type="email" autoComplete="email" placeholder={modal.emailPlaceholder.value} isRequired autoFocus /> <div className="flex gap-3"> <Button onClick={handleCloseModal} color="text" variant="outline" disabled={isPending || isSubmitting} label={modal.cancelButton.value} className="flex-1" > {modal.cancelButton} </Button> <Form.Button type="submit" color="error" variant="outline" isLoading={isPending || isSubmitting} disabled={isPending || isSubmitting} label={modal.confirmButton.value} className="flex-1" > {modal.confirmButton} </Form.Button> </div> </Form> </div> </Modal> </> ); };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aymericzip/intlayer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server