64 lines
1.5 KiB
TypeScript
64 lines
1.5 KiB
TypeScript
// state.ts - Defines the Redux store state shape and reducers
|
|
//
|
|
// Initial state structure:
|
|
// - data: Contains app data like sessions, speakers, events etc.
|
|
// - user: User preferences and authentication state
|
|
// - locations: Location data for maps and navigation
|
|
// - order: Order and transaction related state
|
|
|
|
import { combineReducers } from './combineReducers';
|
|
|
|
// Main feature reducers
|
|
import { sessionsReducer } from './sessions/sessions.reducer';
|
|
import { userReducer } from './user/user.reducer';
|
|
import { locationsReducer } from './locations/locations.reducer';
|
|
|
|
// Additional feature reducers
|
|
import { orderReducer } from './sessions/orders.reducer';
|
|
import { dummyReducer } from './dummy/dummy.reducer';
|
|
|
|
export const initialState: AppState = {
|
|
data: {
|
|
schedule: { groups: [] } as any,
|
|
sessions: [],
|
|
speakers: [],
|
|
favorites: [],
|
|
locations: [],
|
|
allTracks: [],
|
|
filteredTracks: [],
|
|
mapCenterId: 0,
|
|
loading: false,
|
|
menuEnabled: true,
|
|
//
|
|
events: [],
|
|
nearbyMembers: [],
|
|
orders: [],
|
|
},
|
|
user: {
|
|
hasSeenTutorial: false,
|
|
darkMode: false,
|
|
isLoggedin: false,
|
|
loading: false,
|
|
//
|
|
isSessionValid: false,
|
|
//
|
|
},
|
|
locations: {
|
|
locations: [],
|
|
},
|
|
dummy: {
|
|
eventIdToJoin: '',
|
|
},
|
|
};
|
|
|
|
export const reducers = combineReducers({
|
|
data: sessionsReducer,
|
|
user: userReducer,
|
|
locations: locationsReducer,
|
|
//
|
|
order: orderReducer,
|
|
dummy: dummyReducer,
|
|
});
|
|
|
|
export type AppState = ReturnType<typeof reducers>;
|