refactor: guest mode

This commit is contained in:
Tristan Yang
2022-09-02 08:59:19 +08:00
parent 3247de57db
commit 265bf11ad0
20 changed files with 140 additions and 366 deletions
-11
View File
@@ -10,22 +10,11 @@ import { fillUsers } from "../slices/users";
import { fillFootprint } from "../slices/footprint";
import { fillFileMessage } from "../slices/message.file";
import { fillUI } from "../slices/ui";
import { useAppSelector } from "../store";
const useRehydrate = () => {
const [iterated, setIterated] = useState(false);
const dispatch = useDispatch();
const { isGuest } = useAppSelector((store) => {
return {
isGuest: store.authData.user?.create_by == "guest"
};
});
const rehydrate = async () => {
// 如果是游客,直接忽略
if (isGuest) {
setIterated(true);
return;
}
const rehydrateData = {
channels: [],
users: [],
-3
View File
@@ -46,9 +46,6 @@ listenerMiddleware.startListening({
// console.log("effect opt", action);
if (!window.CACHE && prefix !== "__rtkq") return;
const currentState = listenerApi.getState() as RootState;
// 如果是guest,则忽略
const isGuest = currentState.authData.user?.create_by === "guest";
if (isGuest) return;
const state = prefix == "__rtkq" ? null : currentState[prefix];
switch (prefix) {
case "__rtkq":
+4
View File
@@ -12,6 +12,7 @@ import { User } from "../../types/user";
interface State {
initialized: boolean;
guest: boolean;
user: User | undefined;
token: string;
expireTime: number;
@@ -20,6 +21,7 @@ interface State {
const loginUser = localStorage.getItem(KEY_LOGIN_USER) || "";
const initialState: State = {
initialized: true,
guest: false,
user: loginUser ? JSON.parse(loginUser) : undefined,
token: localStorage.getItem(KEY_TOKEN) || "",
expireTime: Number(localStorage.getItem(KEY_EXPIRE) || +new Date()),
@@ -28,6 +30,7 @@ const initialState: State = {
const emptyState: State = {
initialized: true,
guest: false,
user: undefined,
token: "",
expireTime: +new Date(),
@@ -43,6 +46,7 @@ const authDataSlice = createSlice({
const { uid } = user;
state.initialized = initialized;
state.user = user;
// state.guest = user.create_by == "guest";
state.token = token;
state.refreshToken = refresh_token;
// 当前时间往后推expire时长