Files
HKSingleParty/03_source/mobile/src/data/state.ts

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>;