Spaces:
Build error
Build error
import { createSlice } from "@reduxjs/toolkit"; | |
export interface FileState { | |
path: string; | |
savedContent: string; | |
unsavedContent: string; | |
} | |
export const initialState = { | |
code: "", | |
path: "", | |
refreshID: 0, | |
fileStates: [] as FileState[], | |
}; | |
export const codeSlice = createSlice({ | |
name: "code", | |
initialState, | |
reducers: { | |
setCode: (state, action) => { | |
state.code = action.payload; | |
}, | |
setActiveFilepath: (state, action) => { | |
state.path = action.payload; | |
}, | |
setRefreshID: (state, action) => { | |
state.refreshID = action.payload; | |
}, | |
setFileStates: (state, action) => { | |
state.fileStates = action.payload; | |
}, | |
addOrUpdateFileState: (state, action) => { | |
const { path, unsavedContent, savedContent } = action.payload; | |
const newFileStates = state.fileStates.filter( | |
(fileState) => fileState.path !== path, | |
); | |
newFileStates.push({ path, savedContent, unsavedContent }); | |
state.fileStates = newFileStates; | |
}, | |
removeFileState: (state, action) => { | |
const path = action.payload; | |
state.fileStates = state.fileStates.filter( | |
(fileState) => fileState.path !== path, | |
); | |
}, | |
}, | |
}); | |
export const { | |
setCode, | |
setActiveFilepath, | |
setRefreshID, | |
addOrUpdateFileState, | |
removeFileState, | |
setFileStates, | |
} = codeSlice.actions; | |
export default codeSlice.reducer; | |