48 lines
2.7 KiB
TypeScript
48 lines
2.7 KiB
TypeScript
/*
|
|
* File: authSelectors.ts
|
|
* Description: Selectors for Auth redux state
|
|
* Design & Developed by Tech4Biz Solutions
|
|
* Copyright (c) Spurrin Innovations. All rights reserved.
|
|
*/
|
|
|
|
import { RootState } from '../../../store';
|
|
|
|
export const selectUser = (state: RootState) => state.auth.user;
|
|
export const selectAuthLoading = (state: RootState) => state.auth.loading;
|
|
export const selectAuthError = (state: RootState) => state.auth.error;
|
|
export const selectIsAuthenticated = (state: RootState) => state.auth.isAuthenticated;
|
|
export const selectHospitals = (state: RootState) => state.hospital.hospitals;
|
|
|
|
// User profile selectors
|
|
export const selectUserProfile = (state: RootState) => state.auth.user;
|
|
export const selectUserDisplayName = (state: RootState) => state.auth.user?.display_name;
|
|
export const selectUserEmail = (state: RootState) => state.auth.user?.email;
|
|
export const selectUserFirstName = (state: RootState) => state.auth.user?.first_name;
|
|
export const selectUserLastName = (state: RootState) => state.auth.user?.last_name;
|
|
export const selectUserHospitalId = (state: RootState) => state.auth.user?.hospital_id;
|
|
export const selectUserProfilePhoto = (state: RootState) => state.auth.user?.profile_photo_url;
|
|
export const selectUserThemeColor = (state: RootState) => state.auth.user?.theme_color;
|
|
export const selectUserAccentColor = (state: RootState) => state.auth.user?.accent_color;
|
|
|
|
// Onboarding selectors
|
|
export const selectIsOnboarded = (state: RootState) => state.auth.user?.onboarded;
|
|
export const selectOnboardingCompleted = (state: RootState) => state.auth.user?.onboarding_completed;
|
|
export const selectOnboardingStep = (state: RootState) => state.auth.user?.onboarding_step;
|
|
export const selectOnboardingMessage = (state: RootState) => state.auth.user?.onboarding_message;
|
|
|
|
// Dashboard settings selectors
|
|
export const selectDashboardSettings = (state: RootState) => state.auth.user?.dashboard_settings;
|
|
export const selectDashboardTheme = (state: RootState) => state.auth.user?.dashboard_settings?.theme;
|
|
export const selectDashboardLanguage = (state: RootState) => state.auth.user?.dashboard_settings?.language;
|
|
export const selectDashboardTimezone = (state: RootState) => state.auth.user?.dashboard_settings?.timezone;
|
|
|
|
// Notification preferences selectors
|
|
export const selectNotificationPreferences = (state: RootState) => state.auth.user?.notification_preferences;
|
|
export const selectCriticalAlertsPreferences = (state: RootState) => state.auth.user?.notification_preferences?.critical_alerts;
|
|
export const selectSystemNotificationsPreferences = (state: RootState) => state.auth.user?.notification_preferences?.system_notifications;
|
|
|
|
/*
|
|
* End of File: authSelectors.ts
|
|
* Design & Developed by Tech4Biz Solutions
|
|
* Copyright (c) Spurrin Innovations. All rights reserved.
|
|
*/
|