refactor(enhanced-kanban): update state management for editable section

- Changed the source of `editableSectionId` from `boardReducer` to `enhancedKanbanReducer` for improved state organization.
- Added `setEditableSection` and `deleteSection` actions to manage the editable section state within the enhanced kanban slice.
This commit is contained in:
shancds
2025-07-02 12:28:34 +05:30
parent d56eaa9f02
commit c9d9134049
2 changed files with 19 additions and 4 deletions

View File

@@ -15,7 +15,7 @@ import { useSelector } from 'react-redux';
import { import {
deleteSection, deleteSection,
IGroupBy, IGroupBy,
} from '@features/board/board-slice'; } from '@features/enhanced-kanban/enhanced-kanban.slice';
import { statusApiService } from '@/api/taskAttributes/status/status.api.service'; import { statusApiService } from '@/api/taskAttributes/status/status.api.service';
import { phasesApiService } from '@/api/taskAttributes/phases/phases.api.service'; import { phasesApiService } from '@/api/taskAttributes/phases/phases.api.service';
import logger from '@/utils/errorLogger'; import logger from '@/utils/errorLogger';
@@ -31,7 +31,7 @@ const DeleteStatusDrawer: React.FC = () => {
const { projectView } = useTabSearchParam(); const { projectView } = useTabSearchParam();
const [form] = Form.useForm(); const [form] = Form.useForm();
const { t } = useTranslation('task-list-filters'); const { t } = useTranslation('task-list-filters');
const { editableSectionId, groupBy } = useAppSelector(state => state.boardReducer); const { editableSectionId, groupBy } = useAppSelector(state => state.enhancedKanbanReducer);
const isDelteStatusDrawerOpen = useAppSelector( const isDelteStatusDrawerOpen = useAppSelector(
state => state.deleteStatusReducer.isDeleteStatusDrawerOpen state => state.deleteStatusReducer.isDeleteStatusDrawerOpen
); );

View File

@@ -101,6 +101,7 @@ interface EnhancedKanbanState {
selectedTaskIds: string[]; selectedTaskIds: string[];
expandedSubtasks: Record<string, boolean>; expandedSubtasks: Record<string, boolean>;
columnOrder: string[]; columnOrder: string[];
editableSectionId: string | null;
} }
const initialState: EnhancedKanbanState = { const initialState: EnhancedKanbanState = {
@@ -141,6 +142,7 @@ const initialState: EnhancedKanbanState = {
selectedTaskIds: [], selectedTaskIds: [],
expandedSubtasks: {}, expandedSubtasks: {},
columnOrder: [], columnOrder: [],
editableSectionId: null,
}; };
// Performance monitoring utility // Performance monitoring utility
@@ -373,8 +375,6 @@ const deleteTaskFromGroup = (
} }
}; };
const enhancedKanbanSlice = createSlice({ const enhancedKanbanSlice = createSlice({
name: 'enhancedKanbanReducer', name: 'enhancedKanbanReducer',
initialState, initialState,
@@ -871,6 +871,19 @@ const enhancedKanbanSlice = createSlice({
state.groupCache[result.groupId] = result.group; state.groupCache[result.groupId] = result.group;
} }
}, },
setEditableSection: (state, action: PayloadAction<string | null>) => {
state.editableSectionId = action.payload;
},
deleteSection: (state, action: PayloadAction<{ sectionId: string }>) => {
state.taskGroups = state.taskGroups.filter(
section => section.id !== action.payload.sectionId
);
if (state.editableSectionId === action.payload.sectionId) {
state.editableSectionId = null;
}
},
}, },
extraReducers: (builder) => { extraReducers: (builder) => {
builder builder
@@ -1061,6 +1074,8 @@ export const {
updateEnhancedKanbanTaskStartDate, updateEnhancedKanbanTaskStartDate,
updateEnhancedKanbanSubtask, updateEnhancedKanbanSubtask,
toggleTaskExpansion, toggleTaskExpansion,
setEditableSection,
deleteSection,
} = enhancedKanbanSlice.actions; } = enhancedKanbanSlice.actions;
export default enhancedKanbanSlice.reducer; export default enhancedKanbanSlice.reducer;