diff --git a/src/app/store/reducers/ambassadors/model/constants.ts b/src/app/store/reducers/ambassadors/model/constants.ts index 782f40d6..bb7f4c0f 100644 --- a/src/app/store/reducers/ambassadors/model/constants.ts +++ b/src/app/store/reducers/ambassadors/model/constants.ts @@ -10,13 +10,13 @@ const initialAmbassador: IAmbassadorById = { tg_acc: '', status: 'Active', created: '', - gender: '', + gender: 'Male', phone: '', email: '', purpose: '', education: '', work: '', - achievement: '', + achievement: 'new', address: { country: '', city: '', diff --git a/src/app/store/reducers/orders/imdex.ts b/src/app/store/reducers/orders/index.ts similarity index 100% rename from src/app/store/reducers/orders/imdex.ts rename to src/app/store/reducers/orders/index.ts diff --git a/src/app/store/reducers/programms/index.ts b/src/app/store/reducers/programms/index.ts new file mode 100644 index 00000000..4fbc6370 --- /dev/null +++ b/src/app/store/reducers/programms/index.ts @@ -0,0 +1,3 @@ +import programmsReducer from './model/programmsSlice'; + +export { programmsReducer }; diff --git a/src/app/store/reducers/programms/model/programmsSlice.ts b/src/app/store/reducers/programms/model/programmsSlice.ts new file mode 100644 index 00000000..4ec9c0b4 --- /dev/null +++ b/src/app/store/reducers/programms/model/programmsSlice.ts @@ -0,0 +1,46 @@ +import { createSlice } from '@reduxjs/toolkit'; + +import { + getMerchAmbassadorsHistory, + getMerchTypes, +} from 'src/shared/api/merch'; +import { getProgramms } from 'src/shared/api/programms'; +import { TProgramm } from 'src/shared/api/programms/dtos'; + +interface IProgrammsState { + programms: TProgramm[]; + isLoading: boolean; + error: string | unknown | null; +} + +const initialState: IProgrammsState = { + programms: [], + isLoading: false, + error: null, +}; + +const programmsSlice = createSlice({ + name: 'programms', + initialState, + reducers: {}, + extraReducers: builder => { + builder + .addCase(getProgramms.fulfilled, (state, action) => { + state.isLoading = false; + state.error = null; + state.programms = action.payload; + }) + .addCase(getProgramms.pending, state => { + state.isLoading = true; + }) + .addCase(getProgramms.rejected, (state, action) => { + state.isLoading = false; + state.error = action.payload; + }); + }, +}); + +export const selectProgramms = (state: { programms: IProgrammsState }) => + state.programms; + +export default programmsSlice.reducer; diff --git a/src/app/store/store.ts b/src/app/store/store.ts index 3be8487b..206f4780 100644 --- a/src/app/store/store.ts +++ b/src/app/store/store.ts @@ -4,11 +4,12 @@ import { ambassadorsReducer } from './reducers/ambassadors'; import { contentsReducer } from './reducers/contents'; import { merchReducer } from './reducers/merch'; import { promocodesReducer } from './reducers/promocodes'; -import { ordersReducer } from './reducers/orders/imdex'; +import { ordersReducer } from './reducers/orders'; import { questionnaireReducer } from './reducers/questionnaire'; import { notificationsReducer } from './reducers/notifications'; import { modalReducer } from './reducers/modal'; import { userReducer } from './reducers/user'; +import { programmsReducer } from './reducers/programms'; export const store = configureStore({ reducer: { @@ -21,6 +22,7 @@ export const store = configureStore({ questionnaire: questionnaireReducer, modal: modalReducer, user: userReducer, + programms: programmsReducer, }, }); diff --git a/src/entities/Button/types/types.ts b/src/entities/Button/types/types.ts index 3c3c5d56..b412e380 100644 --- a/src/entities/Button/types/types.ts +++ b/src/entities/Button/types/types.ts @@ -1,8 +1,9 @@ -interface ButtonProps { - label: string, - width: number, - height: number, - onClick: React.MouseEventHandler, +import { ButtonProps } from '@mui/material'; + +interface AppButtonProps extends ButtonProps { + label: string; + width: number; + height: number; } -export type { ButtonProps } \ No newline at end of file +export type { AppButtonProps }; diff --git a/src/entities/Button/ui/Button.tsx b/src/entities/Button/ui/Button.tsx index f84111f7..fe7e39c2 100644 --- a/src/entities/Button/ui/Button.tsx +++ b/src/entities/Button/ui/Button.tsx @@ -1,16 +1,16 @@ import Button from '@mui/material/Button'; import type { FC } from 'react'; -import type { ButtonProps } from '../types/types'; +import type { AppButtonProps } from '../types/types'; -const ButtonComponent: FC = ({ +const ButtonComponent: FC = ({ width, height, label, - onClick, + ...props }) => (