refactor: guest mode toggler

This commit is contained in:
Tristan Yang
2022-09-02 22:27:23 +08:00
parent 9b52b4423f
commit 1e8dacfcac
2 changed files with 20 additions and 10 deletions
+2 -1
View File
@@ -2,6 +2,7 @@ import { Suspense, useEffect, lazy } from "react";
import { Route, Routes, HashRouter } from "react-router-dom"; import { Route, Routes, HashRouter } from "react-router-dom";
import { Provider } from "react-redux"; import { Provider } from "react-redux";
import toast from "react-hot-toast"; import toast from "react-hot-toast";
import { isEqual } from "lodash";
import NotFoundPage from "./404"; import NotFoundPage from "./404";
// import Welcome from './Welcome' // import Welcome from './Welcome'
// const HomePage = lazy(() => import("./home")); // const HomePage = lazy(() => import("./home"));
@@ -34,7 +35,7 @@ const PageRoutes = () => {
fileMessages fileMessages
} = useAppSelector((store) => { } = useAppSelector((store) => {
return { ui: store.ui, fileMessages: store.fileMessage }; return { ui: store.ui, fileMessages: store.fileMessage };
}); }, isEqual);
// 掉线检测 // 掉线检测
useEffect(() => { useEffect(() => {
+18 -9
View File
@@ -112,8 +112,9 @@ export default function Overview() {
const handleReset = () => { const handleReset = () => {
setServerValues(server); setServerValues(server);
}; };
const handleGuestToggle = (val: Partial<Pick<LoginConfig, "guest">>) => { const handleGuestToggle = (v: "true" | "false") => {
updateLoginConfig({ ...loginConfig, ...val }); const guest = v === "true";
updateLoginConfig({ ...loginConfig, guest });
}; };
useEffect(() => { useEffect(() => {
if (uploadSuccess) { if (uploadSuccess) {
@@ -205,13 +206,21 @@ export default function Overview() {
</div> </div>
<div className="setting"> <div className="setting">
<p className="label">Guest Mode</p> <p className="label">Guest Mode</p>
<div className="tip"> <p className="tip">
<span className="txt">Allow Guest visiting homepage.</span> <span className="txt">
<Toggle If enabled, visitors will see public channels on this server.
onClick={handleGuestToggle.bind(null, { guest: !guest })} </span>
data-checked={guest} </p>
></Toggle> <StyledRadio
</div> options={["Enabled", "Disabled"]}
values={["true", "false"]}
value={String(guest)}
onChange={(v) => {
console.log("wtff", v);
handleGuestToggle(v);
}}
/>
</div> </div>
</> </>
)} )}