Files
worklenz/worklenz-frontend/src/features/account-setup/account-setup.slice.ts
chamikaJ dd511b236f refactor(reporting-layout): streamline sidebar and content layout
- Replaced the existing sidebar implementation with a new ReportingSider component that accepts collapse state and toggle function as props.
- Simplified the ReportingCollapsedButton component for better readability and functionality.
- Updated layout styles to enhance responsiveness and maintain consistent margins.
- Removed unused CSS styles related to the sidebar for cleaner code.
2025-07-28 14:54:54 +05:30

86 lines
2.2 KiB
TypeScript

import { createSlice, PayloadAction } from '@reduxjs/toolkit';
import { IAccountSetupSurveyData } from '@/types/account-setup/survey.types';
interface Task {
id: number;
value: string;
}
interface Email {
id: number;
value: string;
}
interface AccountSetupState {
organizationName: string;
projectName: string;
templateId: string | null;
tasks: Task[];
teamMembers: Email[];
currentStep: number;
surveyData: IAccountSetupSurveyData;
surveySubStep: number;
}
const initialState: AccountSetupState = {
organizationName: '',
projectName: '',
templateId: null,
tasks: [{ id: 0, value: '' }],
teamMembers: [{ id: 0, value: '' }],
currentStep: 0,
surveyData: {},
surveySubStep: 0,
};
const accountSetupSlice = createSlice({
name: 'accountSetup',
initialState,
reducers: {
setOrganizationName: (state, action: PayloadAction<string>) => {
state.organizationName = action.payload;
},
setProjectName: (state, action: PayloadAction<string>) => {
state.projectName = action.payload;
},
setTemplateId: (state, action: PayloadAction<string | null>) => {
state.templateId = action.payload;
},
setTasks: (state, action: PayloadAction<Task[]>) => {
state.tasks = action.payload;
},
setTeamMembers: (state, action: PayloadAction<Email[]>) => {
state.teamMembers = action.payload;
},
setCurrentStep: (state, action: PayloadAction<number>) => {
state.currentStep = action.payload;
},
setSurveyData: (state, action: PayloadAction<Partial<IAccountSetupSurveyData>>) => {
state.surveyData = { ...state.surveyData, ...action.payload };
},
setSurveySubStep: (state, action: PayloadAction<number>) => {
state.surveySubStep = action.payload;
},
resetSurveyData: (state) => {
state.surveyData = {};
state.surveySubStep = 0;
},
resetAccountSetup: () => initialState,
},
});
export const {
setOrganizationName,
setProjectName,
setTemplateId,
setTasks,
setTeamMembers,
setCurrentStep,
setSurveyData,
setSurveySubStep,
resetSurveyData,
resetAccountSetup,
} = accountSetupSlice.actions;
export default accountSetupSlice.reducer;