chore: updates

This commit is contained in:
Tristan Yang
2023-03-02 10:31:15 +08:00
parent 58e96f387a
commit bbc550f809
8 changed files with 28 additions and 10 deletions
+7 -1
View File
@@ -26,6 +26,7 @@
"clear_local": "Clear local data" "clear_local": "Clear local data"
}, },
"continue": "Continue with Email", "continue": "Continue with Email",
"placeholder_name": "Enter your Name",
"placeholder_email": "Enter your Email", "placeholder_email": "Enter your Email",
"placeholder_pwd": "Enter Password", "placeholder_pwd": "Enter Password",
"placeholder_confirm_pwd": "Confirm Password", "placeholder_confirm_pwd": "Confirm Password",
@@ -40,5 +41,10 @@
"signing_up": "Signing Up", "signing_up": "Signing Up",
"github_login_success": "GitHub Login Success!", "github_login_success": "GitHub Login Success!",
"github_logging_in": "GitHub Logging in...", "github_logging_in": "GitHub Logging in...",
"github_cb_tip": "Please close this window and return widget window" "github_cb_tip": "Please close this window and return widget window",
"magic_link_expire": {
"title": "Magic link expired",
"desc": "Go back to your original VoceChat tab and request a new magic link.",
"desc_close": "You can close this window now."
}
} }
+1
View File
@@ -54,6 +54,7 @@
"tip": { "tip": {
"update": "Update Successfully!", "update": "Update Successfully!",
"delete": "Delete Successfully!", "delete": "Delete Successfully!",
"reg": "Register Successfully!",
"login": "Login Successfully!", "login": "Login Successfully!",
"logout": "Logout Successfully!", "logout": "Logout Successfully!",
"pin": "Pin Message Successfully!", "pin": "Pin Message Successfully!",
+7 -1
View File
@@ -29,6 +29,7 @@
"check_email": "检查你的邮箱", "check_email": "检查你的邮箱",
"check_email_desc": "我们将链接已发送到你的邮箱:{{email}},请前往查收", "check_email_desc": "我们将链接已发送到你的邮箱:{{email}},请前往查收",
"use_different": "使用其它邮箱", "use_different": "使用其它邮箱",
"placeholder_name": "输入用户名",
"placeholder_email": "输入邮箱地址", "placeholder_email": "输入邮箱地址",
"placeholder_pwd": "输入密码", "placeholder_pwd": "输入密码",
"placeholder_confirm_pwd": "确认密码", "placeholder_confirm_pwd": "确认密码",
@@ -40,5 +41,10 @@
"signing_up": "注册中", "signing_up": "注册中",
"github_login_success": "Github授权成功!", "github_login_success": "Github授权成功!",
"github_logging_in": "Github授权中...", "github_logging_in": "Github授权中...",
"github_cb_tip": "请关闭该窗口,并返回原界面" "github_cb_tip": "请关闭该窗口,并返回原界面",
"magic_link_expire": {
"title": "邀请链接已过期!",
"desc": "请重新生成邀请链接",
"desc_close": "该网页可关闭"
}
} }
+1
View File
@@ -56,6 +56,7 @@
"tip": { "tip": {
"update": "更新成功!", "update": "更新成功!",
"delete": "删除成功!", "delete": "删除成功!",
"reg": "注册成功!",
"login": "登录成功!", "login": "登录成功!",
"logout": "退出成功!", "logout": "退出成功!",
"pin": "消息置顶成功!", "pin": "消息置顶成功!",
+1 -1
View File
@@ -49,7 +49,7 @@ const handler = (data: ChatEvent, dispatch: AppDispatch, currState: CurrentState
dispatch(updateAfterMid(mid)); dispatch(updateAfterMid(mid));
break; break;
} }
const { ready, loginUid, readUsers = {}, readChannels = {} } = currState; const { loginUid, readUsers = {}, readChannels = {} } = currState;
const to = "gid" in target ? "channel" : "user"; const to = "gid" in target ? "channel" : "user";
const appendMessage = to == "user" ? addUserMsg : addChannelMsg; const appendMessage = to == "user" ? addUserMsg : addChannelMsg;
const self = from_uid == loginUid; const self = from_uid == loginUid;
+2 -2
View File
@@ -56,12 +56,12 @@ function ChatPage() {
{usersModalVisible && <UsersModal closeModal={toggleUsersModalVisible} />} {usersModalVisible && <UsersModal closeModal={toggleUsersModalVisible} />}
<div className={clsx(`flex h-screen md:h-full md:pt-2 md:pb-2.5 md:pr-1`, isGuest ? "guest-container md:px-1" : "md:pr-12")}> <div className={clsx(`flex h-screen md:h-full md:pt-2 md:pb-2.5 md:pr-1`, isGuest ? "guest-container md:px-1" : "md:pr-12")}>
{sessionListVisible && <div onClick={toggleSessionList} className="z-30 fixed top-0 left-4 w-screen h-screen bg-black/50 transition-all backdrop-blur-sm"></div>} {sessionListVisible && <div onClick={toggleSessionList} className="z-30 fixed top-0 left-4 w-screen h-screen bg-black/50 transition-all backdrop-blur-sm"></div>}
<div className={clsx("left-container pb-14 md:pb-0 flex-col md:rounded-l-2xl w-full h-screen md:max-w-[250px] md:min-w-[268px] shadow-[rgb(0_0_0_/_10%)_-1px_0px_0px_inset] bg-white dark:!bg-gray-800", <div className={clsx("left-container pb-14 md:pb-0 flex-col md:rounded-l-2xl w-full h-screen md:h-full md:max-w-[250px] md:min-w-[268px] shadow-[rgb(0_0_0_/_10%)_-1px_0px_0px_inset] bg-white dark:!bg-gray-800",
isMainPath ? "flex" : "hidden md:flex" isMainPath ? "flex" : "hidden md:flex"
)}> )}>
<Server readonly={isGuest} /> <Server readonly={isGuest} />
{isGuest ? <GuestSessionList /> : <SessionList tempSession={tmpSession} />} {isGuest ? <GuestSessionList /> : <SessionList tempSession={tmpSession} />}
{isGuest && <footer className="hidden md:block text-xs text-gray-300 dark:text-gray-700 text-center"> {isGuest && <footer className="hidden md:block py-1 text-xs text-gray-300 dark:text-gray-700 text-center">
Host your own <a href="https://voce.chat" target="_blank" rel="noopener noreferrer" className="text-gray-400 dark:text-gray-600">voce.chat</a> Host your own <a href="https://voce.chat" target="_blank" rel="noopener noreferrer" className="text-gray-400 dark:text-gray-600">voce.chat</a>
</footer>} </footer>}
</div> </div>
+5 -3
View File
@@ -1,10 +1,12 @@
import { useTranslation } from "react-i18next";
export default function ExpiredTip() { export default function ExpiredTip() {
const { t } = useTranslation("auth", { keyPrefix: "magic_link_expire" });
return ( return (
<div className="flex flex-col items-center"> <div className="flex flex-col items-center">
<div className="font-bold text-3xl text-gray-800 dark:text-white mt-3">Magic link expired</div> <div className="font-bold text-3xl text-gray-800 dark:text-white mt-3">{t("title")}</div>
<p className="text-center text-gray-400 mb-6">Go back to your original VoceChat tab and request a new magic link.</p> <p className="text-center text-gray-400 mb-6">{t("desc")}</p>
<p className="text-center text-gray-400">You can close this window now.</p> <p className="text-center text-gray-400">{t("desc_close")}</p>
</div> </div>
); );
} }
+4 -2
View File
@@ -10,9 +10,11 @@ import { useTranslation } from "react-i18next";
import SocialLoginButtons from "../login/SocialLoginButtons"; import SocialLoginButtons from "../login/SocialLoginButtons";
import Divider from "../../common/component/Divider"; import Divider from "../../common/component/Divider";
import SignInLink from "../reg/SignInLink"; import SignInLink from "../reg/SignInLink";
import { useAppSelector } from "../../app/store";
export default function SendMagicLinkPage() { export default function SendMagicLinkPage() {
const { t } = useTranslation("auth"); const { t } = useTranslation("auth");
const serverName = useAppSelector(store => store.server.name);
const [sent, setSent] = useState(false); const [sent, setSent] = useState(false);
const [sendMagicLink, { isSuccess, isLoading, error }] = useSendLoginMagicLinkMutation(); const [sendMagicLink, { isSuccess, isLoading, error }] = useSendLoginMagicLinkMutation();
const navigateTo = useNavigate(); const navigateTo = useNavigate();
@@ -72,7 +74,7 @@ export default function SendMagicLinkPage() {
<> <>
<div className="flex flex-col items-center"> <div className="flex flex-col items-center">
<img src={`${BASE_URL}/resource/organization/logo`} alt="logo" className="w-14 h-14 mb-7 rounded-full" /> <img src={`${BASE_URL}/resource/organization/logo`} alt="logo" className="w-14 h-14 mb-7 rounded-full" />
<h2 className="font-semibold text-2xl text-gray-800 dark:text-gray-200 mb-2">{t("enter")}VoceChat</h2> <h2 className="font-semibold text-2xl text-gray-800 dark:text-gray-200 mb-2">{t("enter")} {serverName} </h2>
<span className="text-center text-gray-500 mb-6">{t("placeholder_email")}</span> <span className="text-center text-gray-500 mb-6">{t("placeholder_email")}</span>
</div> </div>
<form onSubmit={handleLogin} className="flex flex-col gap-5 w-[360px]"> <form onSubmit={handleLogin} className="flex flex-col gap-5 w-[360px]">
@@ -92,7 +94,7 @@ export default function SendMagicLinkPage() {
</Button> </Button>
</form> </form>
<Divider content="OR" /> <Divider content="OR" />
<Button onClick={handlePwdPath} className="flex">{t("login.password")}</Button> <Button onClick={handlePwdPath} className="w-full" >{t("login.password")}</Button>
<div className="flex flex-col gap-3 py-3"> <div className="flex flex-col gap-3 py-3">
<SocialLoginButtons /> <SocialLoginButtons />
</div> </div>