From aecf74951cecb4de9ca94dd93e48af6f62300a0f Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Thu, 25 Apr 2024 18:24:24 +0200 Subject: [chore] Settings refactor 2: the re-refactoring-ing (#2866) * [chore] Bit more refactoring of settings panel * fix up some remaining things * groovy baby yeah! * remove unused Suspense --- web/source/settings/views/user/menu.tsx | 52 +++++++++++++++++++ web/source/settings/views/user/profile.tsx | 3 +- web/source/settings/views/user/router.tsx | 52 +++++++++++++++++++ web/source/settings/views/user/routes.tsx | 80 ----------------------------- web/source/settings/views/user/settings.tsx | 9 ++-- 5 files changed, 111 insertions(+), 85 deletions(-) create mode 100644 web/source/settings/views/user/menu.tsx create mode 100644 web/source/settings/views/user/router.tsx delete mode 100644 web/source/settings/views/user/routes.tsx (limited to 'web/source/settings/views/user') diff --git a/web/source/settings/views/user/menu.tsx b/web/source/settings/views/user/menu.tsx new file mode 100644 index 000000000..578bd8ae0 --- /dev/null +++ b/web/source/settings/views/user/menu.tsx @@ -0,0 +1,52 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import { MenuItem } from "../../lib/navigation/menu"; +import React from "react"; + +/** + * - /settings/user/profile + * - /settings/user/settings + * - /settings/user/migration + */ +export default function UserMenu() { + return ( + + + + + + ); +} diff --git a/web/source/settings/views/user/profile.tsx b/web/source/settings/views/user/profile.tsx index 08cd74bda..c1735259e 100644 --- a/web/source/settings/views/user/profile.tsx +++ b/web/source/settings/views/user/profile.tsx @@ -42,9 +42,10 @@ import FormWithData from "../../lib/form/form-with-data"; import FakeProfile from "../../components/fake-profile"; import MutationButton from "../../components/form/mutation-button"; -import { useAccountThemesQuery, useInstanceV1Query } from "../../lib/query"; +import { useAccountThemesQuery } from "../../lib/query/user"; import { useUpdateCredentialsMutation } from "../../lib/query/user"; import { useVerifyCredentialsQuery } from "../../lib/query/oauth"; +import { useInstanceV1Query } from "../../lib/query/gts-api"; export default function UserProfile() { return ( diff --git a/web/source/settings/views/user/router.tsx b/web/source/settings/views/user/router.tsx new file mode 100644 index 000000000..e763c0c2b --- /dev/null +++ b/web/source/settings/views/user/router.tsx @@ -0,0 +1,52 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React from "react"; +import { BaseUrlContext, useBaseUrl } from "../../lib/navigation/util"; +import { Redirect, Route, Router, Switch } from "wouter"; +import { ErrorBoundary } from "../../lib/navigation/error"; +import UserProfile from "./profile"; +import UserMigration from "./migration"; +import UserSettings from "./settings"; + +/** + * - /settings/user/profile + * - /settings/user/settings + * - /settings/user/migration + */ +export default function UserRouter() { + const baseUrl = useBaseUrl(); + const thisBase = "/user"; + const absBase = baseUrl + thisBase; + + return ( + + + + + + + + + + + + + ); +} diff --git a/web/source/settings/views/user/routes.tsx b/web/source/settings/views/user/routes.tsx deleted file mode 100644 index 76ac50bc2..000000000 --- a/web/source/settings/views/user/routes.tsx +++ /dev/null @@ -1,80 +0,0 @@ -/* - GoToSocial - Copyright (C) GoToSocial Authors admin@gotosocial.org - SPDX-License-Identifier: AGPL-3.0-or-later - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . -*/ - -import { MenuItem } from "../../lib/navigation/menu"; -import React from "react"; -import { BaseUrlContext, useBaseUrl } from "../../lib/navigation/util"; -import UserProfile from "./profile"; -import UserSettings from "./settings"; -import UserMigration from "./migration"; -import { Redirect, Route, Router, Switch } from "wouter"; - -/** - * - * Basic user menu. Profile + accounts - * settings, post settings, migration. - */ -export function UserMenu() { - return ( - - {/* Profile */} - - {/* Settings */} - - {/* Migration */} - - - ); -} - -export function UserRouter() { - const baseUrl = useBaseUrl(); - const thisBase = "/user"; - const absBase = baseUrl + thisBase; - - return ( - - - - - - - {/* Fallback component */} - - - - - ); -} diff --git a/web/source/settings/views/user/settings.tsx b/web/source/settings/views/user/settings.tsx index 2827cc53f..cbd973706 100644 --- a/web/source/settings/views/user/settings.tsx +++ b/web/source/settings/views/user/settings.tsx @@ -18,18 +18,19 @@ */ import React from "react"; -import query from "../../lib/query"; import { useTextInput, useBoolInput } from "../../lib/form"; import useFormSubmit from "../../lib/form/submit"; import { Select, TextInput, Checkbox } from "../../components/form/inputs"; import FormWithData from "../../lib/form/form-with-data"; import Languages from "../../components/languages"; import MutationButton from "../../components/form/mutation-button"; +import { useVerifyCredentialsQuery } from "../../lib/query/oauth"; +import { usePasswordChangeMutation, useUpdateCredentialsMutation } from "../../lib/query/user"; export default function UserSettings() { return ( ); @@ -50,7 +51,7 @@ function UserSettingsForm({ data }) { statusContentType: useTextInput("source[status_content_type]", { source: data, defaultValue: "text/plain" }), }; - const [submitForm, result] = useFormSubmit(form, query.useUpdateCredentialsMutation()); + const [submitForm, result] = useFormSubmit(form, useUpdateCredentialsMutation()); return ( <> @@ -123,7 +124,7 @@ function PasswordChange() { } }); - const [submitForm, result] = useFormSubmit(form, query.usePasswordChangeMutation()); + const [submitForm, result] = useFormSubmit(form, usePasswordChangeMutation()); return (
-- cgit v1.2.3