* feat: noindex/nofollow - On login: nofollow - On app pages: noindex, nofollow https://app.plane.so/plane/browse/WEB-4098/ - https://nextjs.org/docs/app/api-reference/file-conventions/layout - https://nextjs.org/docs/app/building-your-application/routing/route-groups#creating-multiple-root-layouts - https://nextjs.org/docs/app/api-reference/functions/generate-metadata#link-relpreload * chore: address PR feedback
34 lines
945 B
TypeScript
34 lines
945 B
TypeScript
"use client";
|
|
|
|
import { observer } from "mobx-react";
|
|
import { useTranslation } from "@plane/i18n";
|
|
// components
|
|
import { LogoSpinner } from "@/components/common";
|
|
import { PageHead } from "@/components/core";
|
|
import { ProfileSettingContentWrapper, ProfileForm } from "@/components/profile";
|
|
// hooks
|
|
import { useUser } from "@/hooks/store";
|
|
|
|
const ProfileSettingsPage = observer(() => {
|
|
const { t } = useTranslation();
|
|
// store hooks
|
|
const { data: currentUser, userProfile } = useUser();
|
|
|
|
if (!currentUser)
|
|
return (
|
|
<div className="grid h-full w-full place-items-center px-4 sm:px-0">
|
|
<LogoSpinner />
|
|
</div>
|
|
);
|
|
|
|
return (
|
|
<>
|
|
<PageHead title={`${t("profile.label")} - ${t("general_settings")}`} />
|
|
<ProfileSettingContentWrapper>
|
|
<ProfileForm user={currentUser} profile={userProfile.data} />
|
|
</ProfileSettingContentWrapper>
|
|
</>
|
|
);
|
|
});
|
|
|
|
export default ProfileSettingsPage;
|