From 42265021fe7dd04c90decf8a20955b06ddff9fc4 Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Fri, 11 Oct 2024 11:30:03 -0400 Subject: [PATCH] chore: `settings/my-account` - remove pages router (#17056) * remove pages router and use app router * fix page --------- Co-authored-by: Alex van Andel --- .../my-account/appearance/page.tsx | 0 .../my-account/calendars/page.tsx | 0 .../my-account/conferencing/page.tsx | 0 .../my-account/general/page.tsx | 8 ++++- .../my-account/out-of-office/page.tsx | 0 .../my-account/profile/page.tsx | 0 .../settings/my-account/general-view.tsx | 21 ++++++++--- apps/web/next.config.js | 1 + .../pages/settings/my-account/appearance.tsx | 23 ------------ .../pages/settings/my-account/calendars.tsx | 31 ---------------- .../settings/my-account/conferencing.tsx | 36 ------------------- .../web/pages/settings/my-account/general.tsx | 23 ------------ .../my-account/out-of-office/index.tsx | 31 ---------------- .../web/pages/settings/my-account/profile.tsx | 27 -------------- 14 files changed, 25 insertions(+), 176 deletions(-) rename apps/web/app/{future/settings/(settings) => settings/(settings-layout)}/my-account/appearance/page.tsx (100%) rename apps/web/app/{future/settings/(settings) => settings/(settings-layout)}/my-account/calendars/page.tsx (100%) rename apps/web/app/{future/settings/(settings) => settings/(settings-layout)}/my-account/conferencing/page.tsx (100%) rename apps/web/app/{future/settings/(settings) => settings/(settings-layout)}/my-account/general/page.tsx (78%) rename apps/web/app/{future/settings/(settings) => settings/(settings-layout)}/my-account/out-of-office/page.tsx (100%) rename apps/web/app/{future/settings/(settings) => settings/(settings-layout)}/my-account/profile/page.tsx (100%) delete mode 100644 apps/web/pages/settings/my-account/appearance.tsx delete mode 100644 apps/web/pages/settings/my-account/calendars.tsx delete mode 100644 apps/web/pages/settings/my-account/conferencing.tsx delete mode 100644 apps/web/pages/settings/my-account/general.tsx delete mode 100644 apps/web/pages/settings/my-account/out-of-office/index.tsx delete mode 100644 apps/web/pages/settings/my-account/profile.tsx diff --git a/apps/web/app/future/settings/(settings)/my-account/appearance/page.tsx b/apps/web/app/settings/(settings-layout)/my-account/appearance/page.tsx similarity index 100% rename from apps/web/app/future/settings/(settings)/my-account/appearance/page.tsx rename to apps/web/app/settings/(settings-layout)/my-account/appearance/page.tsx diff --git a/apps/web/app/future/settings/(settings)/my-account/calendars/page.tsx b/apps/web/app/settings/(settings-layout)/my-account/calendars/page.tsx similarity index 100% rename from apps/web/app/future/settings/(settings)/my-account/calendars/page.tsx rename to apps/web/app/settings/(settings-layout)/my-account/calendars/page.tsx diff --git a/apps/web/app/future/settings/(settings)/my-account/conferencing/page.tsx b/apps/web/app/settings/(settings-layout)/my-account/conferencing/page.tsx similarity index 100% rename from apps/web/app/future/settings/(settings)/my-account/conferencing/page.tsx rename to apps/web/app/settings/(settings-layout)/my-account/conferencing/page.tsx diff --git a/apps/web/app/future/settings/(settings)/my-account/general/page.tsx b/apps/web/app/settings/(settings-layout)/my-account/general/page.tsx similarity index 78% rename from apps/web/app/future/settings/(settings)/my-account/general/page.tsx rename to apps/web/app/settings/(settings-layout)/my-account/general/page.tsx index c6ef48a09b..a53fd802ef 100644 --- a/apps/web/app/future/settings/(settings)/my-account/general/page.tsx +++ b/apps/web/app/settings/(settings-layout)/my-account/general/page.tsx @@ -1,5 +1,6 @@ import { _generateMetadata } from "app/_utils"; import { getFixedT } from "app/_utils"; +import { revalidatePath } from "next/cache"; import { getServerSessionForAppDir } from "@calcom/feature-auth/lib/get-server-session-for-app-dir"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; @@ -16,9 +17,14 @@ const Page = async () => { const session = await getServerSessionForAppDir(); const t = await getFixedT(session?.user.locale || "en"); + const revalidatePage = async () => { + "use server"; + revalidatePath("settings/my-account/general"); + }; + return ( - + ); }; diff --git a/apps/web/app/future/settings/(settings)/my-account/out-of-office/page.tsx b/apps/web/app/settings/(settings-layout)/my-account/out-of-office/page.tsx similarity index 100% rename from apps/web/app/future/settings/(settings)/my-account/out-of-office/page.tsx rename to apps/web/app/settings/(settings-layout)/my-account/out-of-office/page.tsx diff --git a/apps/web/app/future/settings/(settings)/my-account/profile/page.tsx b/apps/web/app/settings/(settings-layout)/my-account/profile/page.tsx similarity index 100% rename from apps/web/app/future/settings/(settings)/my-account/profile/page.tsx rename to apps/web/app/settings/(settings-layout)/my-account/profile/page.tsx diff --git a/apps/web/modules/settings/my-account/general-view.tsx b/apps/web/modules/settings/my-account/general-view.tsx index da82bbecc8..2902ee8a5f 100644 --- a/apps/web/modules/settings/my-account/general-view.tsx +++ b/apps/web/modules/settings/my-account/general-view.tsx @@ -68,9 +68,14 @@ interface GeneralViewProps { localeProp: string; user: RouterOutputs["viewer"]["me"]; travelSchedules: RouterOutputs["viewer"]["getTravelSchedules"]; + revalidatePage: GeneralQueryViewProps["revalidatePage"]; } -const GeneralQueryView = () => { +type GeneralQueryViewProps = { + revalidatePage: () => Promise; +}; + +const GeneralQueryView = ({ revalidatePage }: GeneralQueryViewProps) => { const { t } = useLocale(); const { data: user, isPending } = trpc.viewer.me.useQuery(); @@ -82,10 +87,17 @@ const GeneralQueryView = () => { if (!user) { throw new Error(t("something_went_wrong")); } - return ; + return ( + + ); }; -const GeneralView = ({ localeProp, user, travelSchedules }: GeneralViewProps) => { +const GeneralView = ({ localeProp, user, travelSchedules, revalidatePage }: GeneralViewProps) => { const utils = trpc.useContext(); const { t, @@ -105,6 +117,7 @@ const GeneralView = ({ localeProp, user, travelSchedules }: GeneralViewProps) => if (res.locale) { window.calNewLocale = res.locale; } + await revalidatePage(); }, onError: () => { showToast(t("error_updating_settings"), "error"); @@ -177,7 +190,7 @@ const GeneralView = ({ localeProp, user, travelSchedules }: GeneralViewProps) =>
{ + handleSubmit={async (values) => { setIsUpdateBtnLoading(true); mutation.mutate({ ...values, diff --git a/apps/web/next.config.js b/apps/web/next.config.js index ce61936e16..d60a4a2a1f 100644 --- a/apps/web/next.config.js +++ b/apps/web/next.config.js @@ -178,6 +178,7 @@ const nextConfig = { serverComponentsExternalPackages: ["next-i18next"], optimizePackageImports: ["@calcom/ui"], instrumentationHook: true, + serverActions: true, }, i18n: { ...i18n, diff --git a/apps/web/pages/settings/my-account/appearance.tsx b/apps/web/pages/settings/my-account/appearance.tsx deleted file mode 100644 index 9fbe4f4adf..0000000000 --- a/apps/web/pages/settings/my-account/appearance.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout"; -import { useLocale } from "@calcom/lib/hooks/useLocale"; -import { Meta } from "@calcom/ui"; - -import PageWrapper from "@components/PageWrapper"; - -import AppearancePage from "~/settings/my-account/appearance-view"; - -const Page = () => { - const { t } = useLocale(); - - return ( - <> - - - - ); -}; - -Page.getLayout = getLayout; -Page.PageWrapper = PageWrapper; - -export default Page; diff --git a/apps/web/pages/settings/my-account/calendars.tsx b/apps/web/pages/settings/my-account/calendars.tsx deleted file mode 100644 index 2dfa7cb295..0000000000 --- a/apps/web/pages/settings/my-account/calendars.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout"; -import { useLocale } from "@calcom/lib/hooks/useLocale"; -import { Meta } from "@calcom/ui"; - -import PageWrapper from "@components/PageWrapper"; -import { CalendarListContainer } from "@components/apps/CalendarListContainer"; - -import AddCalendarButton from "~/settings/my-account/components/AddCalendarButton"; - -const Page = () => { - const { t } = useLocale(); - - return ( - <> - } - borderInShellHeader={false} - /> -
- -
- - ); -}; - -Page.getLayout = getLayout; -Page.PageWrapper = PageWrapper; - -export default Page; diff --git a/apps/web/pages/settings/my-account/conferencing.tsx b/apps/web/pages/settings/my-account/conferencing.tsx deleted file mode 100644 index d4f749cff6..0000000000 --- a/apps/web/pages/settings/my-account/conferencing.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout"; -import { useLocale } from "@calcom/lib/hooks/useLocale"; -import { Button, Meta } from "@calcom/ui"; - -import PageWrapper from "@components/PageWrapper"; - -import ConferencingView from "~/settings/my-account/conferencing-view"; - -const Page = () => { - const { t } = useLocale(); - - const AddConferencingButton = () => { - return ( - - ); - }; - - return ( - <> - } - borderInShellHeader={true} - /> - - - ); -}; - -Page.getLayout = getLayout; -Page.PageWrapper = PageWrapper; - -export default Page; diff --git a/apps/web/pages/settings/my-account/general.tsx b/apps/web/pages/settings/my-account/general.tsx deleted file mode 100644 index 37eb99532c..0000000000 --- a/apps/web/pages/settings/my-account/general.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout"; -import { useLocale } from "@calcom/lib/hooks/useLocale"; -import { Meta } from "@calcom/ui"; - -import PageWrapper from "@components/PageWrapper"; - -import GeneralQueryView from "~/settings/my-account/general-view"; - -const Page = () => { - const { t } = useLocale(); - - return ( - <> - - - - ); -}; - -Page.getLayout = getLayout; -Page.PageWrapper = PageWrapper; - -export default Page; diff --git a/apps/web/pages/settings/my-account/out-of-office/index.tsx b/apps/web/pages/settings/my-account/out-of-office/index.tsx deleted file mode 100644 index 89dbb3fdb6..0000000000 --- a/apps/web/pages/settings/my-account/out-of-office/index.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout"; -import CreateNewOutOfOfficeEntryButton from "@calcom/features/settings/outOfOffice/CreateNewOutOfOfficeEntryButton"; -import { OutOfOfficeEntriesList } from "@calcom/features/settings/outOfOffice/OutOfOfficeEntriesList"; -import { useLocale } from "@calcom/lib/hooks/useLocale"; -import { trpc } from "@calcom/trpc/react"; -import { Meta, SkeletonText } from "@calcom/ui"; - -import PageWrapper from "@components/PageWrapper"; - -const Page = () => { - const { t } = useLocale(); - - const { isPending } = trpc.viewer.outOfOfficeReasonList.useQuery(); - - return ( - <> - : } - /> - - - ); -}; - -Page.getLayout = getLayout; -Page.PageWrapper = PageWrapper; - -export default Page; diff --git a/apps/web/pages/settings/my-account/profile.tsx b/apps/web/pages/settings/my-account/profile.tsx deleted file mode 100644 index 9539cec4b4..0000000000 --- a/apps/web/pages/settings/my-account/profile.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout"; -import { APP_NAME } from "@calcom/lib/constants"; -import { useLocale } from "@calcom/lib/hooks/useLocale"; -import { Meta } from "@calcom/ui"; - -import PageWrapper from "@components/PageWrapper"; - -import ProfileView from "~/settings/my-account/profile-view"; - -const Page = () => { - const { t } = useLocale(); - return ( - <> - - - - ); -}; - -Page.getLayout = getLayout; -Page.PageWrapper = PageWrapper; - -export default Page;