From b06cb7c37971c2789f94e0b4d38817c32b6d4e4c Mon Sep 17 00:00:00 2001 From: daniel31x13 Date: Wed, 7 Feb 2024 10:20:25 -0500 Subject: [PATCH] merged the appearance and archive page into preference --- components/SettingsSidebar.tsx | 21 +--- pages/settings/archive.tsx | 93 --------------- .../{appearance.tsx => preference.tsx} | 112 ++++++++++++------ 3 files changed, 81 insertions(+), 145 deletions(-) delete mode 100644 pages/settings/archive.tsx rename pages/settings/{appearance.tsx => preference.tsx} (57%) diff --git a/components/SettingsSidebar.tsx b/components/SettingsSidebar.tsx index 9e629dd..944a93b 100644 --- a/components/SettingsSidebar.tsx +++ b/components/SettingsSidebar.tsx @@ -37,30 +37,17 @@ export default function SettingsSidebar({ className }: { className?: string }) { - +
- + -

Appearance

-
- - - -
- -

Archive

+

Preference

diff --git a/pages/settings/archive.tsx b/pages/settings/archive.tsx deleted file mode 100644 index ead165e..0000000 --- a/pages/settings/archive.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import Checkbox from "@/components/Checkbox"; -import SubmitButton from "@/components/SubmitButton"; -import SettingsLayout from "@/layouts/SettingsLayout"; -import React, { useEffect, useState } from "react"; -import useAccountStore from "@/store/account"; -import { toast } from "react-hot-toast"; -import { AccountSettings } from "@/types/global"; - -export default function Archive() { - const [submitLoader, setSubmitLoader] = useState(false); - const { account, updateAccount } = useAccountStore(); - const [user, setUser] = useState(account); - - const [archiveAsScreenshot, setArchiveAsScreenshot] = - useState(false); - const [archiveAsPDF, setArchiveAsPDF] = useState(false); - const [archiveAsWaybackMachine, setArchiveAsWaybackMachine] = - useState(false); - - useEffect(() => { - setUser({ - ...account, - archiveAsScreenshot, - archiveAsPDF, - archiveAsWaybackMachine, - }); - }, [account, archiveAsScreenshot, archiveAsPDF, archiveAsWaybackMachine]); - - function objectIsEmpty(obj: object) { - return Object.keys(obj).length === 0; - } - - useEffect(() => { - if (!objectIsEmpty(account)) { - setArchiveAsScreenshot(account.archiveAsScreenshot); - setArchiveAsPDF(account.archiveAsPDF); - setArchiveAsWaybackMachine(account.archiveAsWaybackMachine); - } - }, [account]); - - const submit = async () => { - setSubmitLoader(true); - - const load = toast.loading("Applying..."); - - const response = await updateAccount({ - ...user, - }); - - toast.dismiss(load); - - if (response.ok) { - toast.success("Settings Applied!"); - } else toast.error(response.data as string); - setSubmitLoader(false); - }; - - return ( - -

Archive Settings

- -
- -

Formats to Archive/Preserve webpages:

-
- setArchiveAsScreenshot(!archiveAsScreenshot)} - /> - - setArchiveAsPDF(!archiveAsPDF)} - /> - - setArchiveAsWaybackMachine(!archiveAsWaybackMachine)} - /> -
- - -
- ); -} diff --git a/pages/settings/appearance.tsx b/pages/settings/preference.tsx similarity index 57% rename from pages/settings/appearance.tsx rename to pages/settings/preference.tsx index 4adbff0..ed6cc02 100644 --- a/pages/settings/appearance.tsx +++ b/pages/settings/preference.tsx @@ -5,9 +5,43 @@ import { AccountSettings } from "@/types/global"; import { toast } from "react-hot-toast"; import React from "react"; import useLocalSettingsStore from "@/store/localSettings"; +import Checkbox from "@/components/Checkbox"; +import SubmitButton from "@/components/SubmitButton"; export default function Appearance() { const { updateSettings } = useLocalSettingsStore(); + + const [submitLoader, setSubmitLoader] = useState(false); + const { account, updateAccount } = useAccountStore(); + const [user, setUser] = useState(account); + + const [archiveAsScreenshot, setArchiveAsScreenshot] = + useState(false); + const [archiveAsPDF, setArchiveAsPDF] = useState(false); + const [archiveAsWaybackMachine, setArchiveAsWaybackMachine] = + useState(false); + + useEffect(() => { + setUser({ + ...account, + archiveAsScreenshot, + archiveAsPDF, + archiveAsWaybackMachine, + }); + }, [account, archiveAsScreenshot, archiveAsPDF, archiveAsWaybackMachine]); + + function objectIsEmpty(obj: object) { + return Object.keys(obj).length === 0; + } + + useEffect(() => { + if (!objectIsEmpty(account)) { + setArchiveAsScreenshot(account.archiveAsScreenshot); + setArchiveAsPDF(account.archiveAsPDF); + setArchiveAsWaybackMachine(account.archiveAsWaybackMachine); + } + }, [account]); + const submit = async () => { setSubmitLoader(true); @@ -25,40 +59,9 @@ export default function Appearance() { setSubmitLoader(false); }; - const [submitLoader, setSubmitLoader] = useState(false); - - const { account, updateAccount } = useAccountStore(); - - const [user, setUser] = useState( - !objectIsEmpty(account) - ? account - : ({ - // @ts-ignore - id: null, - name: "", - username: "", - email: "", - emailVerified: null, - blurredFavicons: null, - image: "", - isPrivate: true, - // @ts-ignore - createdAt: null, - whitelistedUsers: [], - } as unknown as AccountSettings) - ); - - function objectIsEmpty(obj: object) { - return Object.keys(obj).length === 0; - } - - useEffect(() => { - if (!objectIsEmpty(account)) setUser({ ...account }); - }, [account]); - return ( -

Appearance

+

Preference

@@ -94,12 +97,51 @@ export default function Appearance() { - {/* +

+ Archive Settings +

+ +
+ +

Formats to Archive/Preserve webpages:

+
+ setArchiveAsScreenshot(!archiveAsScreenshot)} + /> + + setArchiveAsPDF(!archiveAsPDF)} + /> + + + setArchiveAsWaybackMachine(!archiveAsWaybackMachine) + } + /> +
+ + +
+

Link Settings

+ +
+ +

Clicking on Links should:

+
+ + */} + className="mt-2 w-full sm:w-fit" + />
);