diff --git a/enjoy/src/i18n/en.json b/enjoy/src/i18n/en.json index 524adf9b..6eb79ca4 100644 --- a/enjoy/src/i18n/en.json +++ b/enjoy/src/i18n/en.json @@ -216,6 +216,7 @@ "select": "Select", "libraryPath": "Library Path", "login": "Login", + "reLogin": "Re-login", "loginBeforeYouStart": "Login before you start", "loginSuccess": "Login Success", "whereYourResourcesAreStored": "Where your resources are stored", diff --git a/enjoy/src/i18n/zh-CN.json b/enjoy/src/i18n/zh-CN.json index 9865183a..f8d315ff 100644 --- a/enjoy/src/i18n/zh-CN.json +++ b/enjoy/src/i18n/zh-CN.json @@ -216,6 +216,7 @@ "select": "选择", "libraryPath": "资源库保存路径", "login": "登录", + "reLogin": "重新登录", "loginBeforeYouStart": "登录后开始使用", "loginSuccess": "登录成功", "whereYourResourcesAreStored": "选择资源库保存路径", diff --git a/enjoy/src/renderer/components/misc/login-form.tsx b/enjoy/src/renderer/components/misc/login-form.tsx index 02b45207..0c3842d6 100644 --- a/enjoy/src/renderer/components/misc/login-form.tsx +++ b/enjoy/src/renderer/components/misc/login-form.tsx @@ -4,8 +4,13 @@ import { CardContent, CardHeader, CardTitle, + Avatar, + AvatarImage, + AvatarFallback, + Button, + toast, } from "@renderer/components/ui"; -import { useContext } from "react"; +import { useContext, useEffect, useState } from "react"; import { AppSettingsProviderContext } from "@renderer/context"; import { t } from "i18next"; import { @@ -16,9 +21,40 @@ import { MixinLoginButton, } from "@renderer/components"; import { EmailLoginForm } from "./email-login-form"; +import { Client } from "@/api"; export const LoginForm = () => { - const { user } = useContext(AppSettingsProviderContext); + const { user, EnjoyApp, login, apiUrl } = useContext( + AppSettingsProviderContext + ); + const [rememberedUser, setRememberedUser] = useState(null); + + const loginWithRememberedUser = async () => { + if (!rememberedUser) return; + const client = new Client({ + baseUrl: apiUrl, + accessToken: rememberedUser.accessToken, + }); + + client + .me() + .then((user) => { + if (user?.id) { + login(Object.assign({}, rememberedUser, user)); + } + }) + .catch((error) => { + toast.error(error.message); + }); + }; + + useEffect(() => { + if (user) return; + + EnjoyApp.settings.getUser().then((user) => { + setRememberedUser(user); + }); + }, [user]); if (user) { return ( @@ -30,6 +66,52 @@ export const LoginForm = () => { ); } + if (rememberedUser) { + return ( +
+
+
+
+ + + + {rememberedUser.name[0].toUpperCase()} + + +
+
+ {rememberedUser.name} +
+
+ {rememberedUser.id} +
+
+
+
+
+ + +
+
+
+ ); + } + return ( diff --git a/enjoy/src/renderer/context/app-settings-provider.tsx b/enjoy/src/renderer/context/app-settings-provider.tsx index 873fbb17..f89c8260 100644 --- a/enjoy/src/renderer/context/app-settings-provider.tsx +++ b/enjoy/src/renderer/context/app-settings-provider.tsx @@ -128,8 +128,6 @@ export const AppSettingsProvider = ({ client.me().then((user) => { if (user?.id) { login(Object.assign({}, currentUser, user)); - } else { - logout(); } }); };