mirror of
https://github.com/usememos/memos.git
synced 2025-03-31 02:50:17 +02:00
* feat(system): support for disabling public memos * fix(web/editor): set visibility to private on disabled public memos * feat(server/memo): find/check if public memos are disabled * fix(server/memo): handle error for finding system error * fix(server/memo): unmarshal visiblity when getting system settings * chore(web): move side effect imports to end * Update memo.go --------- Co-authored-by: boojack <stevenlgtm@gmail.com>
60 lines
1.3 KiB
TypeScript
60 lines
1.3 KiB
TypeScript
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
|
|
|
|
interface State {
|
|
locale: Locale;
|
|
appearance: Appearance;
|
|
systemStatus: SystemStatus;
|
|
}
|
|
|
|
const globalSlice = createSlice({
|
|
name: "global",
|
|
initialState: {
|
|
locale: "en",
|
|
appearance: "system",
|
|
systemStatus: {
|
|
host: undefined,
|
|
profile: {
|
|
mode: "dev",
|
|
version: "",
|
|
},
|
|
dbSize: 0,
|
|
allowSignUp: false,
|
|
disablePublicMemos: false,
|
|
additionalStyle: "",
|
|
additionalScript: "",
|
|
customizedProfile: {
|
|
name: "memos",
|
|
logoUrl: "/logo.png",
|
|
description: "",
|
|
locale: "en",
|
|
appearance: "system",
|
|
externalUrl: "",
|
|
},
|
|
},
|
|
} as State,
|
|
reducers: {
|
|
setGlobalState: (state, action: PayloadAction<Partial<State>>) => {
|
|
return {
|
|
...state,
|
|
...action.payload,
|
|
};
|
|
},
|
|
setLocale: (state, action: PayloadAction<Locale>) => {
|
|
return {
|
|
...state,
|
|
locale: action.payload,
|
|
};
|
|
},
|
|
setAppearance: (state, action: PayloadAction<Appearance>) => {
|
|
return {
|
|
...state,
|
|
appearance: action.payload,
|
|
};
|
|
},
|
|
},
|
|
});
|
|
|
|
export const { setGlobalState, setLocale, setAppearance } = globalSlice.actions;
|
|
|
|
export default globalSlice.reducer;
|