mirror of
https://github.com/hanzoai/calendar.git
synced 2026-10-30 14:46:43 +00:00
* wip * fix type check * refactor "/settings/my-account/profile" * refactor "settings/my-account/general" * refactor "/settings/my-accouunt/calendars" * refactor "/settings/my-account/appearance" * fix: type-check --------- Co-authored-by: Amit Sharma <[email protected]> Co-authored-by: Amit Sharma <[email protected]>
52 lines
1.7 KiB
TypeScript
52 lines
1.7 KiB
TypeScript
import { createRouterCaller } from "app/_trpc/context";
|
|
import { _generateMetadata } from "app/_utils";
|
|
import { cookies, headers } from "next/headers";
|
|
import { redirect } from "next/navigation";
|
|
|
|
import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
|
|
import { IS_SELF_HOSTED } from "@calcom/lib/constants";
|
|
import hasKeyInMetadata from "@calcom/lib/hasKeyInMetadata";
|
|
import { meRouter } from "@calcom/trpc/server/routers/viewer/me/_router";
|
|
import { getCachedHasTeamPlan } from "@calcom/web/app/cache/membership";
|
|
|
|
import { buildLegacyRequest } from "@lib/buildLegacyCtx";
|
|
|
|
import AppearancePage from "~/settings/my-account/appearance-view";
|
|
|
|
export const generateMetadata = async () =>
|
|
await _generateMetadata(
|
|
(t) => t("appearance"),
|
|
(t) => t("appearance_description"),
|
|
undefined,
|
|
undefined,
|
|
"/settings/my-account/appearance"
|
|
);
|
|
|
|
const Page = async () => {
|
|
const session = await getServerSession({ req: buildLegacyRequest(await headers(), await cookies()) });
|
|
const userId = session?.user?.id;
|
|
const redirectUrl = "/auth/login?callbackUrl=/settings/my-account/appearance";
|
|
|
|
if (!userId) {
|
|
redirect(redirectUrl);
|
|
}
|
|
|
|
const [meCaller, hasTeamPlan] = await Promise.all([
|
|
createRouterCaller(meRouter),
|
|
getCachedHasTeamPlan(userId),
|
|
]);
|
|
|
|
const user = await meCaller.get();
|
|
|
|
if (!user) {
|
|
redirect(redirectUrl);
|
|
}
|
|
const isCurrentUsernamePremium =
|
|
user && hasKeyInMetadata(user, "isPremium") ? !!user.metadata.isPremium : false;
|
|
const hasPaidPlan = IS_SELF_HOSTED ? true : hasTeamPlan?.hasTeamPlan || isCurrentUsernamePremium;
|
|
|
|
return <AppearancePage user={user} hasPaidPlan={hasPaidPlan} />;
|
|
};
|
|
|
|
export default Page;
|