mirror of https://github.com/usememos/memos
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
2.1 KiB
TypeScript
44 lines
2.1 KiB
TypeScript
import { observer } from "mobx-react-lite";
|
|
import AppearanceSelect from "@/components/AppearanceSelect";
|
|
import LocaleSelect from "@/components/LocaleSelect";
|
|
import PasswordSignInForm from "@/components/PasswordSignInForm";
|
|
import { useWorkspaceSettingStore } from "@/store/v1";
|
|
import { workspaceStore } from "@/store/v2";
|
|
import { WorkspaceGeneralSetting } from "@/types/proto/api/v1/workspace_setting_service";
|
|
import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting";
|
|
|
|
const AdminSignIn = observer(() => {
|
|
const workspaceSettingStore = useWorkspaceSettingStore();
|
|
const workspaceGeneralSetting =
|
|
workspaceSettingStore.getWorkspaceSettingByKey(WorkspaceSettingKey.GENERAL).generalSetting || WorkspaceGeneralSetting.fromPartial({});
|
|
|
|
const handleLocaleSelectChange = (locale: Locale) => {
|
|
workspaceStore.state.setPartial({ locale });
|
|
};
|
|
|
|
const handleAppearanceSelectChange = (appearance: Appearance) => {
|
|
workspaceStore.state.setPartial({ appearance });
|
|
};
|
|
|
|
return (
|
|
<div className="py-4 sm:py-8 w-80 max-w-full min-h-[100svh] mx-auto flex flex-col justify-start items-center">
|
|
<div className="w-full py-4 grow flex flex-col justify-center items-center">
|
|
<div className="w-full flex flex-row justify-center items-center mb-6">
|
|
<img className="h-14 w-auto rounded-full shadow" src={workspaceGeneralSetting.customProfile?.logoUrl || "/logo.webp"} alt="" />
|
|
<p className="ml-2 text-5xl text-black opacity-80 dark:text-gray-200">
|
|
{workspaceGeneralSetting.customProfile?.title || "Memos"}
|
|
</p>
|
|
</div>
|
|
<p className="w-full text-xl font-medium dark:text-gray-500">Sign in with admin accounts</p>
|
|
<PasswordSignInForm />
|
|
</div>
|
|
<div className="mt-4 flex flex-row items-center justify-center w-full gap-2">
|
|
<LocaleSelect value={workspaceStore.state.locale} onChange={handleLocaleSelectChange} />
|
|
<AppearanceSelect value={workspaceStore.state.appearance as Appearance} onChange={handleAppearanceSelectChange} />
|
|
</div>
|
|
</div>
|
|
);
|
|
});
|
|
|
|
export default AdminSignIn;
|