diff --git a/src/components/settings/DeleteAccountDialog/index.ts b/src/components/settings/DeleteAccountDialog/index.ts deleted file mode 100644 index f41637a9..00000000 --- a/src/components/settings/DeleteAccountDialog/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./DeleteAccountDialog"; diff --git a/src/components/settings/DeleteAccountDialog/DeleteAccountDialog.tsx b/src/components/settings/DeleteAccountSetting/DeleteAccountSetting.tsx similarity index 56% rename from src/components/settings/DeleteAccountDialog/DeleteAccountDialog.tsx rename to src/components/settings/DeleteAccountSetting/DeleteAccountSetting.tsx index dccb4ab9..f0cd613c 100644 --- a/src/components/settings/DeleteAccountDialog/DeleteAccountDialog.tsx +++ b/src/components/settings/DeleteAccountSetting/DeleteAccountSetting.tsx @@ -1,20 +1,24 @@ import { Button, Modal, ModalHeader } from "@/components/common"; +import { SettingsItem } from "@/components/settings"; import { useAuthActions } from "@convex-dev/auth/react"; import { api } from "@convex/_generated/api"; import { useMutation } from "convex/react"; +import { Trash } from "lucide-react"; +import { useState } from "react"; -type DeleteAccountDialogProps = { +type DeleteAccountModalProps = { isOpen: boolean; onOpenChange: (isOpen: boolean) => void; onSubmit: () => void; }; -export const DeleteAccountDialog = ({ +const DeleteAccountModal = ({ isOpen, onOpenChange, onSubmit, -}: DeleteAccountDialogProps) => { +}: DeleteAccountModalProps) => { const { signOut } = useAuthActions(); + const clearLocalStorage = () => { localStorage.removeItem("theme"); }; @@ -40,3 +44,24 @@ export const DeleteAccountDialog = ({ ); }; + +export const DeleteAccountSetting = () => { + const [isDeleteAccountModalOpen, setIsDeleteAccountModalOpen] = + useState(false); + + return ( + + + setIsDeleteAccountModalOpen(false)} + /> + + ); +}; diff --git a/src/components/settings/DeleteAccountSetting/index.ts b/src/components/settings/DeleteAccountSetting/index.ts new file mode 100644 index 00000000..e32a0ef1 --- /dev/null +++ b/src/components/settings/DeleteAccountSetting/index.ts @@ -0,0 +1 @@ +export * from "./DeleteAccountSetting"; diff --git a/src/components/settings/EditBirthplaceDialog/index.ts b/src/components/settings/EditBirthplaceDialog/index.ts deleted file mode 100644 index 5985a93d..00000000 --- a/src/components/settings/EditBirthplaceDialog/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./EditBirthplaceDialog"; diff --git a/src/components/settings/EditBirthplaceDialog/EditBirthplaceDialog.tsx b/src/components/settings/EditBirthplaceSetting/EditBirthplaceSetting.tsx similarity index 59% rename from src/components/settings/EditBirthplaceDialog/EditBirthplaceDialog.tsx rename to src/components/settings/EditBirthplaceSetting/EditBirthplaceSetting.tsx index 05db219e..6399d05c 100644 --- a/src/components/settings/EditBirthplaceDialog/EditBirthplaceDialog.tsx +++ b/src/components/settings/EditBirthplaceSetting/EditBirthplaceSetting.tsx @@ -1,22 +1,25 @@ import { Button, Form, Modal, Select, SelectItem } from "@/components/common"; import { api } from "@convex/_generated/api"; +import type { Doc } from "@convex/_generated/dataModel"; import { JURISDICTIONS, type Jurisdiction } from "@convex/constants"; import { useMutation } from "convex/react"; +import { Pencil } from "lucide-react"; import { useState } from "react"; +import { SettingsItem } from "../SettingsItem"; -type EditBirthplaceDialogProps = { +type EditBirthplaceModalProps = { defaultBirthplace: Jurisdiction; isOpen: boolean; onOpenChange: (isOpen: boolean) => void; onSubmit: () => void; }; -export const EditBirthplaceDialog = ({ +const EditBirthplaceModal = ({ defaultBirthplace, isOpen, onOpenChange, onSubmit, -}: EditBirthplaceDialogProps) => { +}: EditBirthplaceModalProps) => { const updateBirthplace = useMutation(api.users.setBirthplace); const [birthplace, setBirthplace] = useState(defaultBirthplace); @@ -55,3 +58,30 @@ export const EditBirthplaceDialog = ({ ); }; + +type EditBirthplaceSettingProps = { + user: Doc<"users">; +}; + +export const EditBirthplaceSetting = ({ user }: EditBirthplaceSettingProps) => { + const [isBirthplaceModalOpen, setIsBirthplaceModalOpen] = useState(false); + + return ( + + + setIsBirthplaceModalOpen(false)} + /> + + ); +}; diff --git a/src/components/settings/EditBirthplaceSetting/index.ts b/src/components/settings/EditBirthplaceSetting/index.ts new file mode 100644 index 00000000..84c173f1 --- /dev/null +++ b/src/components/settings/EditBirthplaceSetting/index.ts @@ -0,0 +1 @@ +export * from "./EditBirthplaceSetting"; diff --git a/src/components/settings/EditMinorSetting/EditMinorSetting.tsx b/src/components/settings/EditMinorSetting/EditMinorSetting.tsx new file mode 100644 index 00000000..3d5f0e3e --- /dev/null +++ b/src/components/settings/EditMinorSetting/EditMinorSetting.tsx @@ -0,0 +1,28 @@ +import { Switch } from "@/components/common"; +import { SettingsItem } from "@/components/settings"; +import { api } from "@convex/_generated/api"; +import type { Doc } from "@convex/_generated/dataModel"; +import { useMutation } from "convex/react"; + +type EditMinorSettingProps = { + user: Doc<"users">; +}; + +export const EditMinorSetting = ({ user }: EditMinorSettingProps) => { + const updateIsMinor = useMutation(api.users.setCurrentUserIsMinor); + + return ( + + updateIsMinor({ isMinor: !user.isMinor })} + > + Is minor + + + ); +}; diff --git a/src/components/settings/EditMinorSetting/index.ts b/src/components/settings/EditMinorSetting/index.ts new file mode 100644 index 00000000..9daf4da7 --- /dev/null +++ b/src/components/settings/EditMinorSetting/index.ts @@ -0,0 +1 @@ +export * from "./EditMinorSetting"; diff --git a/src/components/settings/EditNameDialog/index.ts b/src/components/settings/EditNameDialog/index.ts deleted file mode 100644 index 52a6f42b..00000000 --- a/src/components/settings/EditNameDialog/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./EditNameDialog"; diff --git a/src/components/settings/EditNameDialog/EditNameDialog.tsx b/src/components/settings/EditNameSetting/EditNameSetting.tsx similarity index 55% rename from src/components/settings/EditNameDialog/EditNameDialog.tsx rename to src/components/settings/EditNameSetting/EditNameSetting.tsx index 3d26e6fc..18296e60 100644 --- a/src/components/settings/EditNameDialog/EditNameDialog.tsx +++ b/src/components/settings/EditNameSetting/EditNameSetting.tsx @@ -1,21 +1,24 @@ import { Button, Form, Modal, TextField } from "@/components/common"; import { api } from "@convex/_generated/api"; +import type { Doc } from "@convex/_generated/dataModel"; import { useMutation } from "convex/react"; +import { Pencil } from "lucide-react"; import { useState } from "react"; +import { SettingsItem } from "../SettingsItem"; -type EditNameDialogProps = { +type EditNameModalProps = { defaultName: string; isOpen: boolean; onOpenChange: (isOpen: boolean) => void; onSubmit: () => void; }; -export const EditNameDialog = ({ +const EditNameModal = ({ defaultName, isOpen, onOpenChange, onSubmit, -}: EditNameDialogProps) => { +}: EditNameModalProps) => { const updateName = useMutation(api.users.setName); const [name, setName] = useState(defaultName); @@ -42,3 +45,28 @@ export const EditNameDialog = ({ ); }; + +type EditNameSettingProps = { + user: Doc<"users">; +}; + +export const EditNameSetting = ({ user }: EditNameSettingProps) => { + const [isNameModalOpen, setIsNameModalOpen] = useState(false); + + return ( + + + setIsNameModalOpen(false)} + /> + + ); +}; diff --git a/src/components/settings/EditNameSetting/index.ts b/src/components/settings/EditNameSetting/index.ts new file mode 100644 index 00000000..90caf838 --- /dev/null +++ b/src/components/settings/EditNameSetting/index.ts @@ -0,0 +1 @@ +export * from "./EditNameSetting"; diff --git a/src/components/settings/EditResidenceDialog/index.ts b/src/components/settings/EditResidenceDialog/index.ts deleted file mode 100644 index 8a760d1e..00000000 --- a/src/components/settings/EditResidenceDialog/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./EditResidenceDialog"; diff --git a/src/components/settings/EditResidenceDialog/EditResidenceDialog.tsx b/src/components/settings/EditResidenceSetting/EditResidenceSetting.tsx similarity index 54% rename from src/components/settings/EditResidenceDialog/EditResidenceDialog.tsx rename to src/components/settings/EditResidenceSetting/EditResidenceSetting.tsx index 4675ab9a..d87302ae 100644 --- a/src/components/settings/EditResidenceDialog/EditResidenceDialog.tsx +++ b/src/components/settings/EditResidenceSetting/EditResidenceSetting.tsx @@ -1,22 +1,32 @@ -import { Button, Form, Modal, Select, SelectItem } from "@/components/common"; +import { + Button, + Form, + Modal, + ModalHeader, + Select, + SelectItem, +} from "@/components/common"; +import { SettingsItem } from "@/components/settings"; import { api } from "@convex/_generated/api"; +import type { Doc } from "@convex/_generated/dataModel"; import { JURISDICTIONS, type Jurisdiction } from "@convex/constants"; import { useMutation } from "convex/react"; +import { Pencil } from "lucide-react"; import { useState } from "react"; -type EditResidenceDialogProps = { +type EditResidenceModalProps = { defaultResidence: Jurisdiction; isOpen: boolean; onOpenChange: (isOpen: boolean) => void; onSubmit: () => void; }; -export const EditResidenceDialog = ({ +const EditResidenceModal = ({ defaultResidence, isOpen, onOpenChange, onSubmit, -}: EditResidenceDialogProps) => { +}: EditResidenceModalProps) => { const updateResidence = useMutation(api.users.setResidence); const [residence, setResidence] = useState(defaultResidence); @@ -28,8 +38,8 @@ export const EditResidenceDialog = ({ return ( +
- Edit residence