mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-01 17:59:09 +08:00
* feat: support skipping files during backup * 修复 lint * 修复 lint --------- Co-authored-by: daisai.1 <daisai.1@bytedance.com>
64 lines
1.7 KiB
TypeScript
64 lines
1.7 KiB
TypeScript
import { createSlice, PayloadAction } from '@reduxjs/toolkit'
|
|
|
|
import { WebDAVSyncState } from './backup'
|
|
|
|
export interface NutstoreSyncState extends WebDAVSyncState {}
|
|
|
|
export interface NutstoreState {
|
|
nutstoreToken: string | null
|
|
nutstorePath: string
|
|
nutstoreAutoSync: boolean
|
|
nutstoreSyncInterval: number
|
|
nutstoreSyncState: NutstoreSyncState
|
|
nutstoreSkipBackupFile: boolean
|
|
}
|
|
|
|
const initialState: NutstoreState = {
|
|
nutstoreToken: '',
|
|
nutstorePath: '/cherry-studio',
|
|
nutstoreAutoSync: false,
|
|
nutstoreSyncInterval: 0,
|
|
nutstoreSyncState: {
|
|
lastSyncTime: null,
|
|
syncing: false,
|
|
lastSyncError: null
|
|
},
|
|
nutstoreSkipBackupFile: false
|
|
}
|
|
|
|
const nutstoreSlice = createSlice({
|
|
name: 'nutstore',
|
|
initialState,
|
|
reducers: {
|
|
setNutstoreToken: (state, action: PayloadAction<string>) => {
|
|
state.nutstoreToken = action.payload
|
|
},
|
|
setNutstorePath: (state, action: PayloadAction<string>) => {
|
|
state.nutstorePath = action.payload
|
|
},
|
|
setNutstoreAutoSync: (state, action: PayloadAction<boolean>) => {
|
|
state.nutstoreAutoSync = action.payload
|
|
},
|
|
setNutstoreSyncInterval: (state, action: PayloadAction<number>) => {
|
|
state.nutstoreSyncInterval = action.payload
|
|
},
|
|
setNutstoreSyncState: (state, action: PayloadAction<Partial<WebDAVSyncState>>) => {
|
|
state.nutstoreSyncState = { ...state.nutstoreSyncState, ...action.payload }
|
|
},
|
|
setNutstoreSkipBackupFile: (state, action: PayloadAction<boolean>) => {
|
|
state.nutstoreSkipBackupFile = action.payload
|
|
}
|
|
}
|
|
})
|
|
|
|
export const {
|
|
setNutstoreToken,
|
|
setNutstorePath,
|
|
setNutstoreAutoSync,
|
|
setNutstoreSyncInterval,
|
|
setNutstoreSyncState,
|
|
setNutstoreSkipBackupFile
|
|
} = nutstoreSlice.actions
|
|
|
|
export default nutstoreSlice.reducer
|