diff --git a/libs/remix-ui/file-explorer/src/lib/reducers/fileSystem.ts b/libs/remix-ui/file-explorer/src/lib/reducers/fileSystem.ts new file mode 100644 index 0000000000..b1a81ee35a --- /dev/null +++ b/libs/remix-ui/file-explorer/src/lib/reducers/fileSystem.ts @@ -0,0 +1,42 @@ +interface Action { + type: string; + payload: Record; +} + +export const initialState = { + files: [], + isRequesting: false, + isSuccessful: false, + hasError: null +} + +export const reducer = (state = initialState, action: Action) => { + switch (action.type) { + case 'FETCH_DIRECTORY_REQUEST': { + return { + ...state, + isRequesting: true, + isSuccessful: false, + hasError: null + } + } + case 'FETCH_DIRECTORY_SUCCESS': { + return { + files: [], + isRequesting: false, + isSuccessful: true, + hasError: null + } + } + case 'FETCH_DIRECTORY_ERROR': { + return { + ...state, + isRequesting: false, + isSuccessful: false, + hasError: action.payload + } + } + default: + throw new Error() + } +}