2025-04-01 10:38:02 +09:00

41 lines
1.1 KiB
TypeScript

import { createSlice } from '@reduxjs/toolkit';
import { BrowseDashboardsState } from '../types';
import { fetchNextChildrenPage, refetchChildren } from './actions';
import * as allReducers from './reducers';
const { fetchNextChildrenPageFulfilled, refetchChildrenFulfilled, ...baseReducers } = allReducers;
const initialState: BrowseDashboardsState = {
rootItems: undefined,
childrenByParentUID: {},
openFolders: {},
selectedItems: {
dashboard: {},
folder: {},
panel: {},
$all: false,
},
};
const browseDashboardsSlice = createSlice({
name: 'browseDashboards',
initialState,
reducers: baseReducers,
extraReducers: (builder) => {
builder.addCase(fetchNextChildrenPage.fulfilled, fetchNextChildrenPageFulfilled);
builder.addCase(refetchChildren.fulfilled, refetchChildrenFulfilled);
},
});
export const browseDashboardsReducer = browseDashboardsSlice.reducer;
export const { setFolderOpenState, setItemSelectionState, setAllSelection, clearFolders } =
browseDashboardsSlice.actions;
export default {
browseDashboards: browseDashboardsReducer,
};