@umituz/react-native-settings 5.3.36 → 5.3.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account.d.ts +27 -0
- package/dist/application/ports/ISettingsRepository.d.ts +45 -0
- package/dist/domains/about/domain/entities/AppInfo.d.ts +76 -0
- package/dist/domains/about/domain/repositories/IAboutRepository.d.ts +19 -0
- package/dist/domains/about/index.d.ts +10 -0
- package/dist/domains/about/infrastructure/repositories/AboutRepository.d.ts +18 -0
- package/dist/domains/about/presentation/components/AboutContent.d.ts +14 -0
- package/dist/domains/about/presentation/components/AboutHeader.d.ts +21 -0
- package/dist/domains/about/presentation/components/AboutSection.d.ts +14 -0
- package/dist/domains/about/presentation/components/AboutSettingItem.d.ts +39 -0
- package/dist/domains/about/presentation/hooks/useAboutInfo.d.ts +2 -0
- package/dist/domains/about/presentation/hooks/useAboutInfo.types.d.ts +29 -0
- package/dist/domains/about/presentation/screens/AboutScreen.d.ts +21 -0
- package/dist/domains/about/presentation/screens/AboutScreenContent.d.ts +15 -0
- package/dist/domains/about/utils/AppInfoFactory.d.ts +9 -0
- package/dist/domains/appearance/data/colorPalettes.d.ts +25 -0
- package/dist/domains/appearance/hooks/useAppearance.d.ts +11 -0
- package/dist/domains/appearance/hooks/useAppearanceActions.d.ts +9 -0
- package/dist/domains/appearance/index.d.ts +9 -0
- package/dist/domains/appearance/presentation/components/AppearanceHeader.d.ts +18 -0
- package/dist/domains/appearance/presentation/components/AppearancePreview.d.ts +21 -0
- package/dist/domains/appearance/presentation/components/AppearanceSection.d.ts +16 -0
- package/dist/domains/appearance/presentation/components/ColorPicker.d.ts +15 -0
- package/dist/domains/appearance/presentation/components/CustomColorsSection.d.ts +25 -0
- package/dist/domains/appearance/presentation/components/ThemeModeSection.d.ts +24 -0
- package/dist/domains/appearance/presentation/components/ThemeOption.d.ts +20 -0
- package/dist/domains/appearance/presentation/components/index.d.ts +6 -0
- package/dist/domains/appearance/presentation/screens/AppearanceScreen.d.ts +16 -0
- package/dist/domains/appearance/types/index.d.ts +48 -0
- package/dist/domains/cloud-sync/index.d.ts +6 -0
- package/dist/domains/cloud-sync/presentation/components/CloudSyncSetting.d.ts +14 -0
- package/dist/domains/dev/index.d.ts +14 -0
- package/dist/domains/dev/presentation/components/DevSettingsSection.d.ts +34 -0
- package/dist/domains/dev/presentation/components/EnvViewerSetting.d.ts +20 -0
- package/dist/domains/dev/presentation/components/StorageClearSetting.d.ts +13 -0
- package/dist/domains/dev/presentation/screens/EnvViewerScreen.d.ts +12 -0
- package/dist/domains/dev/types.d.ts +22 -0
- package/dist/domains/disclaimer/index.d.ts +17 -0
- package/dist/domains/disclaimer/presentation/components/DisclaimerCard.d.ts +14 -0
- package/dist/domains/disclaimer/presentation/components/DisclaimerModal.d.ts +12 -0
- package/dist/domains/disclaimer/presentation/components/DisclaimerSetting.d.ts +34 -0
- package/dist/domains/disclaimer/presentation/screens/DisclaimerScreen.d.ts +27 -0
- package/dist/domains/faqs/domain/entities/FAQEntity.d.ts +21 -0
- package/dist/domains/faqs/domain/services/FAQSearchService.d.ts +12 -0
- package/dist/domains/faqs/index.d.ts +8 -0
- package/dist/domains/faqs/presentation/components/FAQCategory.d.ts +21 -0
- package/dist/domains/faqs/presentation/components/FAQEmptyState.d.ts +20 -0
- package/dist/domains/faqs/presentation/components/FAQItem.d.ts +24 -0
- package/dist/domains/faqs/presentation/components/FAQSearchBar.d.ts +18 -0
- package/dist/domains/faqs/presentation/components/index.d.ts +11 -0
- package/dist/domains/faqs/presentation/hooks/index.d.ts +5 -0
- package/dist/domains/faqs/presentation/hooks/useFAQExpansion.d.ts +12 -0
- package/dist/domains/faqs/presentation/hooks/useFAQSearch.d.ts +12 -0
- package/dist/domains/faqs/presentation/screens/FAQScreen.d.ts +33 -0
- package/dist/domains/feedback/domain/entities/FeedbackEntity.d.ts +25 -0
- package/dist/domains/feedback/domain/repositories/IFeedbackRepository.d.ts +20 -0
- package/dist/domains/feedback/index.d.ts +10 -0
- package/dist/domains/feedback/presentation/components/FeedbackForm.d.ts +7 -0
- package/dist/domains/feedback/presentation/components/FeedbackForm.styles.d.ts +48 -0
- package/dist/domains/feedback/presentation/components/FeedbackFormProps.d.ts +26 -0
- package/dist/domains/feedback/presentation/components/FeedbackModal.d.ts +23 -0
- package/dist/domains/feedback/presentation/components/SupportSection.d.ts +62 -0
- package/dist/domains/feedback/presentation/hooks/useFeedbackForm.d.ts +19 -0
- package/dist/domains/feedback/presentation/screens/FeatureRequestScreen.d.ts +2 -0
- package/dist/domains/gamification/components/AchievementCard.d.ts +23 -0
- package/dist/domains/gamification/components/AchievementItem.d.ts +7 -0
- package/dist/domains/gamification/components/AchievementToast.d.ts +21 -0
- package/dist/domains/gamification/components/GamificationScreen/AchievementsList.d.ts +17 -0
- package/dist/domains/gamification/components/GamificationScreen/GamificationScreen.d.ts +11 -0
- package/dist/domains/gamification/components/GamificationScreen/GamificationScreenWithConfig.d.ts +11 -0
- package/dist/domains/gamification/components/GamificationScreen/StatsGrid.d.ts +16 -0
- package/dist/domains/gamification/components/GamificationScreen/index.d.ts +17 -0
- package/dist/domains/gamification/components/GamificationScreen/styles.d.ts +40 -0
- package/dist/domains/gamification/components/GamificationScreen/types.d.ts +42 -0
- package/dist/domains/gamification/components/LevelProgress.d.ts +27 -0
- package/dist/domains/gamification/components/PointsBadge.d.ts +16 -0
- package/dist/domains/gamification/components/StatsCard.d.ts +20 -0
- package/dist/domains/gamification/components/StreakDisplay.d.ts +21 -0
- package/dist/domains/gamification/components/index.d.ts +14 -0
- package/dist/domains/gamification/components/styles/achievementItemStyles.d.ts +71 -0
- package/dist/domains/gamification/components/types/AchievementItemProps.d.ts +22 -0
- package/dist/domains/gamification/hooks/useGamification.d.ts +22 -0
- package/dist/domains/gamification/index.d.ts +13 -0
- package/dist/domains/gamification/store/gamificationStore.d.ts +6 -0
- package/dist/domains/gamification/types/index.d.ts +99 -0
- package/dist/domains/gamification/utils/calculations.d.ts +10 -0
- package/dist/domains/legal/domain/entities/LegalConfig.d.ts +28 -0
- package/dist/domains/legal/domain/services/ContentValidationService.d.ts +19 -0
- package/dist/domains/legal/domain/services/StyleCacheService.d.ts +38 -0
- package/dist/domains/legal/domain/services/UrlHandlerService.d.ts +32 -0
- package/dist/domains/legal/index.d.ts +8 -0
- package/dist/domains/legal/presentation/components/LegalDocumentsList.d.ts +21 -0
- package/dist/domains/legal/presentation/components/LegalItem.d.ts +35 -0
- package/dist/domains/legal/presentation/components/LegalScreenHeader.d.ts +12 -0
- package/dist/domains/legal/presentation/components/LegalSection.d.ts +14 -0
- package/dist/domains/legal/presentation/screens/LegalContentScreen.d.ts +19 -0
- package/dist/domains/legal/presentation/screens/LegalScreen.d.ts +24 -0
- package/dist/domains/legal/presentation/screens/PrivacyPolicyScreen.d.ts +15 -0
- package/dist/domains/legal/presentation/screens/TermsOfServiceScreen.d.ts +15 -0
- package/dist/domains/localization/domain/repositories/ILocalizationRepository.d.ts +16 -0
- package/dist/domains/localization/index.d.ts +16 -0
- package/dist/domains/localization/infrastructure/components/LanguageSwitcher.d.ts +19 -0
- package/dist/domains/localization/infrastructure/components/LanguageSwitcher.styles.d.ts +37 -0
- package/dist/domains/localization/infrastructure/components/useLanguageNavigation.d.ts +4 -0
- package/dist/domains/localization/infrastructure/components/useLanguageSwitcher.d.ts +13 -0
- package/dist/domains/localization/infrastructure/config/DeviceLocale.d.ts +10 -0
- package/dist/domains/localization/infrastructure/config/I18nInitializer.d.ts +14 -0
- package/dist/domains/localization/infrastructure/config/LanguageQuery.d.ts +10 -0
- package/dist/domains/localization/infrastructure/config/LocaleMapping.d.ts +5 -0
- package/dist/domains/localization/infrastructure/config/NamespaceResolver.d.ts +11 -0
- package/dist/domains/localization/infrastructure/config/ResourceBuilder.d.ts +10 -0
- package/dist/domains/localization/infrastructure/config/TranslationLoader.d.ts +16 -0
- package/dist/domains/localization/infrastructure/config/constants/defaultLanguages.d.ts +6 -0
- package/dist/domains/localization/infrastructure/config/i18n.d.ts +7 -0
- package/dist/domains/localization/infrastructure/config/languages.d.ts +7 -0
- package/dist/domains/localization/infrastructure/hooks/useLanguageSelection.d.ts +11 -0
- package/dist/domains/localization/infrastructure/hooks/useLocalization.d.ts +12 -0
- package/dist/domains/localization/infrastructure/hooks/useTranslation.d.ts +23 -0
- package/dist/domains/localization/infrastructure/repository/LanguageRepository.d.ts +18 -0
- package/dist/domains/localization/infrastructure/storage/LanguageInitializer.d.ts +20 -0
- package/dist/domains/localization/infrastructure/storage/LanguageSwitcher.d.ts +16 -0
- package/dist/domains/localization/infrastructure/storage/LocalizationStore.d.ts +6 -0
- package/dist/domains/localization/infrastructure/storage/localizationStoreUtils.d.ts +44 -0
- package/dist/domains/localization/infrastructure/storage/types/Language.d.ts +12 -0
- package/dist/domains/localization/infrastructure/storage/types/LocalizationState.d.ts +22 -0
- package/dist/domains/localization/presentation/components/LanguageItem.d.ts +23 -0
- package/dist/domains/localization/presentation/components/LanguageItem.styles.d.ts +30 -0
- package/dist/domains/localization/presentation/components/LanguageSection.d.ts +15 -0
- package/dist/domains/localization/presentation/providers/LocalizationManager.d.ts +12 -0
- package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.d.ts +7 -0
- package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.styles.d.ts +7 -0
- package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.types.d.ts +26 -0
- package/dist/domains/notifications/index.d.ts +46 -0
- package/dist/domains/notifications/infrastructure/config/notificationsConfig.d.ts +19 -0
- package/dist/domains/notifications/infrastructure/hooks/useNotificationSettings.d.ts +8 -0
- package/dist/domains/notifications/infrastructure/services/NotificationBadgeManager.d.ts +4 -0
- package/dist/domains/notifications/infrastructure/services/NotificationManager.d.ts +23 -0
- package/dist/domains/notifications/infrastructure/services/NotificationPermissions.d.ts +5 -0
- package/dist/domains/notifications/infrastructure/services/NotificationScheduler.d.ts +7 -0
- package/dist/domains/notifications/infrastructure/services/NotificationService.d.ts +31 -0
- package/dist/domains/notifications/infrastructure/services/types.d.ts +147 -0
- package/dist/domains/notifications/infrastructure/storage/UnifiedNotificationStore.d.ts +42 -0
- package/dist/domains/notifications/infrastructure/utils/idGenerator.d.ts +6 -0
- package/dist/domains/notifications/infrastructure/utils/triggerBuilder.d.ts +6 -0
- package/dist/domains/notifications/presentation/components/NotificationsSection.d.ts +16 -0
- package/dist/domains/notifications/presentation/components/RemindersNavRow.d.ts +12 -0
- package/dist/domains/notifications/presentation/components/RemindersNavRow.styles.d.ts +34 -0
- package/dist/domains/notifications/presentation/components/SettingRow.d.ts +14 -0
- package/dist/domains/notifications/presentation/hooks/useNotificationSettingsUI.d.ts +13 -0
- package/dist/domains/notifications/presentation/hooks/useTimePicker.d.ts +21 -0
- package/dist/domains/notifications/presentation/screens/NotificationSettingsScreen.d.ts +12 -0
- package/dist/domains/notifications/presentation/screens/NotificationSettingsScreen.styles.d.ts +26 -0
- package/dist/domains/notifications/presentation/screens/NotificationsScreen.d.ts +18 -0
- package/dist/domains/notifications/quietHours/infrastructure/hooks/useQuietHoursActions.d.ts +13 -0
- package/dist/domains/notifications/quietHours/presentation/components/QuietHoursCard.d.ts +14 -0
- package/dist/domains/notifications/reminders/infrastructure/config/reminderPresets.d.ts +24 -0
- package/dist/domains/notifications/reminders/infrastructure/hooks/useReminderActions.d.ts +11 -0
- package/dist/domains/notifications/reminders/presentation/components/FormButton.d.ts +12 -0
- package/dist/domains/notifications/reminders/presentation/components/FrequencySelector.d.ts +14 -0
- package/dist/domains/notifications/reminders/presentation/components/ReminderForm.constants.d.ts +28 -0
- package/dist/domains/notifications/reminders/presentation/components/ReminderForm.d.ts +7 -0
- package/dist/domains/notifications/reminders/presentation/components/ReminderForm.styles.d.ts +31 -0
- package/dist/domains/notifications/reminders/presentation/components/ReminderItem.d.ts +20 -0
- package/dist/domains/notifications/reminders/presentation/components/TimePresetSelector.d.ts +20 -0
- package/dist/domains/notifications/reminders/presentation/components/WeekdaySelector.d.ts +11 -0
- package/dist/domains/notifications/reminders/presentation/screens/ReminderListScreen.d.ts +13 -0
- package/dist/domains/rating/application/services/RatingService.d.ts +33 -0
- package/dist/domains/rating/domain/entities/Rating.d.ts +15 -0
- package/dist/domains/rating/domain/entities/RatingConfig.d.ts +120 -0
- package/dist/domains/rating/index.d.ts +12 -0
- package/dist/domains/rating/infrastructure/storage/RatingStorage.d.ts +50 -0
- package/dist/domains/rating/presentation/components/RatingPromptModal.d.ts +16 -0
- package/dist/domains/rating/presentation/components/StarRating.d.ts +13 -0
- package/dist/domains/rating/presentation/hooks/useAppRating.d.ts +9 -0
- package/dist/domains/video-tutorials/index.d.ts +18 -0
- package/dist/domains/video-tutorials/presentation/components/VideoTutorialCard.d.ts +13 -0
- package/dist/domains/video-tutorials/presentation/components/VideoTutorialSection.d.ts +25 -0
- package/dist/domains/video-tutorials/presentation/screens/VideoTutorialsScreen.d.ts +25 -0
- package/dist/domains/video-tutorials/types/index.d.ts +26 -0
- package/dist/index.d.ts +41 -0
- package/dist/infrastructure/repositories/SettingsRepository.d.ts +12 -0
- package/dist/infrastructure/services/SettingsService.d.ts +14 -0
- package/dist/infrastructure/utils/configFactory.d.ts +39 -0
- package/dist/infrastructure/utils/constants/textLimits.d.ts +16 -0
- package/dist/infrastructure/utils/sanitizers.d.ts +13 -0
- package/dist/infrastructure/utils/validation/core.d.ts +8 -0
- package/dist/infrastructure/utils/validation/formValidators.d.ts +26 -0
- package/dist/infrastructure/utils/validation/index.d.ts +5 -0
- package/dist/infrastructure/utils/validators.d.ts +21 -0
- package/dist/presentation/components/SettingsFooter.d.ts +7 -0
- package/dist/presentation/components/SettingsItemCard.d.ts +22 -0
- package/dist/presentation/components/SettingsNavigationItem.d.ts +67 -0
- package/dist/presentation/components/SettingsSection.d.ts +6 -0
- package/dist/presentation/components/settings/SettingsItemCardContent.d.ts +12 -0
- package/dist/presentation/components/settings/SettingsItemCardRightElement.d.ts +11 -0
- package/dist/presentation/components/settings/SettingsItemCardSection.d.ts +5 -0
- package/dist/presentation/hooks/mutations/useSettingsMutations.d.ts +20 -0
- package/dist/presentation/hooks/queries/useSettingsQuery.d.ts +7 -0
- package/dist/presentation/hooks/useSettings.d.ts +26 -0
- package/dist/presentation/hooks/useSettingsScreenConfig.d.ts +41 -0
- package/dist/presentation/navigation/SettingsStackNavigator.d.ts +9 -0
- package/dist/presentation/navigation/hooks/index.d.ts +5 -0
- package/dist/presentation/navigation/hooks/useNavigationHandlers.d.ts +14 -0
- package/dist/presentation/navigation/hooks/useSettingsNavigation.d.ts +22 -0
- package/dist/presentation/navigation/hooks/useSettingsScreens.d.ts +12 -0
- package/dist/presentation/navigation/types.d.ts +135 -0
- package/dist/presentation/navigation/utils/index.d.ts +5 -0
- package/dist/presentation/navigation/utils/navigationHelpers.d.ts +13 -0
- package/dist/presentation/navigation/utils/navigationTranslations.d.ts +35 -0
- package/dist/presentation/screens/AppearanceScreen.d.ts +6 -0
- package/dist/presentation/screens/SettingsScreen.d.ts +49 -0
- package/dist/presentation/screens/components/SettingsContent.d.ts +3 -0
- package/dist/presentation/screens/components/SettingsHeader.d.ts +8 -0
- package/dist/presentation/screens/components/sections/CustomSettingsList.d.ts +7 -0
- package/dist/presentation/screens/components/sections/FeatureSettingsSection.d.ts +13 -0
- package/dist/presentation/screens/components/sections/IdentitySettingsSection.d.ts +12 -0
- package/dist/presentation/screens/components/sections/ProfileSectionLoader.d.ts +17 -0
- package/dist/presentation/screens/components/sections/SupportSettingsSection.d.ts +13 -0
- package/dist/presentation/screens/components/types/SettingsContentProps.d.ts +47 -0
- package/dist/presentation/screens/components/utils/featureChecker.d.ts +10 -0
- package/dist/presentation/screens/hooks/useFeatureDetection.d.ts +28 -0
- package/dist/presentation/screens/hooks/useSettingsScreen.d.ts +36 -0
- package/dist/presentation/screens/types/BaseTypes.d.ts +11 -0
- package/dist/presentation/screens/types/ContentConfig.d.ts +76 -0
- package/dist/presentation/screens/types/CustomSection.d.ts +38 -0
- package/dist/presentation/screens/types/SettingsConfig.d.ts +122 -0
- package/dist/presentation/screens/types/SettingsTranslations.d.ts +159 -0
- package/dist/presentation/screens/types/UserFeatureConfig.d.ts +178 -0
- package/dist/presentation/screens/types/index.d.ts +11 -0
- package/dist/presentation/screens/utils/normalizeConfig.d.ts +68 -0
- package/dist/presentation/utils/accountConfigUtils.d.ts +34 -0
- package/dist/presentation/utils/config-creators/base-configs.d.ts +26 -0
- package/dist/presentation/utils/config-creators/feature-configs.d.ts +17 -0
- package/dist/presentation/utils/config-creators/index.d.ts +7 -0
- package/dist/presentation/utils/config-creators/support-configs.d.ts +19 -0
- package/dist/presentation/utils/config-creators/types.d.ts +20 -0
- package/dist/presentation/utils/faqTranslator.d.ts +3 -0
- package/dist/presentation/utils/index.d.ts +8 -0
- package/dist/presentation/utils/screenFactory.d.ts +26 -0
- package/dist/presentation/utils/settingsConfigFactory.d.ts +33 -0
- package/dist/presentation/utils/userProfileUtils.d.ts +20 -0
- package/dist/utils/appUtils.d.ts +4 -0
- package/dist/utils/devUtils.d.ts +31 -0
- package/dist/utils/errorUtils.d.ts +22 -0
- package/dist/utils/hooks/useAsyncStateUpdate.d.ts +35 -0
- package/dist/utils/hooks/useMountSafety.d.ts +1 -0
- package/package.json +1 -1
- package/src/domains/feedback/presentation/screens/FeatureRequestScreen.tsx +449 -0
- package/src/presentation/navigation/hooks/useSettingsScreens.ts +29 -9
- package/src/presentation/navigation/types.ts +1 -0
- package/src/presentation/screens/components/sections/SupportSettingsSection.tsx +1 -1
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Localization Store Utilities
|
|
3
|
+
* Extracted business logic for localization store
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Manages localization initialization state
|
|
7
|
+
*/
|
|
8
|
+
export declare class InitializationManager {
|
|
9
|
+
private inProgress;
|
|
10
|
+
private promise;
|
|
11
|
+
initialize(isAlreadyInitialized: boolean, setState: (state: Partial<{
|
|
12
|
+
currentLanguage: string;
|
|
13
|
+
isRTL: boolean;
|
|
14
|
+
isInitialized: boolean;
|
|
15
|
+
}>) => void): Promise<void>;
|
|
16
|
+
reset(): void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Manages debounced language switching with pending promise handling
|
|
20
|
+
* FIXED: Properly rejects pending promises on error
|
|
21
|
+
*/
|
|
22
|
+
export declare class LanguageSwitchManager {
|
|
23
|
+
private timer;
|
|
24
|
+
private pendingResolvers;
|
|
25
|
+
/**
|
|
26
|
+
* Sets language with debounce and promise handling
|
|
27
|
+
*/
|
|
28
|
+
setLanguage(languageCode: string, setState: (state: Partial<{
|
|
29
|
+
currentLanguage: string;
|
|
30
|
+
isRTL: boolean;
|
|
31
|
+
}>) => void): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Clears any pending language switch and resolves all promises
|
|
34
|
+
*/
|
|
35
|
+
reset(): void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Localization getters
|
|
39
|
+
*/
|
|
40
|
+
export declare const localizationGetters: {
|
|
41
|
+
getCurrentLanguage: (currentLanguage: string) => import("./types/Language").Language;
|
|
42
|
+
isLanguageSupported: (code: string) => boolean;
|
|
43
|
+
getSupportedLanguages: () => import("./types/Language").Language[];
|
|
44
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Type
|
|
3
|
+
* Generic language interface for localization packages
|
|
4
|
+
* This is a base configuration that can be extended by consuming applications
|
|
5
|
+
*/
|
|
6
|
+
export interface Language {
|
|
7
|
+
code: string;
|
|
8
|
+
name: string;
|
|
9
|
+
nativeName: string;
|
|
10
|
+
flag?: string;
|
|
11
|
+
isRTL?: boolean;
|
|
12
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Localization State Interface
|
|
3
|
+
* Defines the shape of localization state management
|
|
4
|
+
*/
|
|
5
|
+
import type { Language } from './Language';
|
|
6
|
+
export type { Language };
|
|
7
|
+
export interface LocalizationState {
|
|
8
|
+
currentLanguage: string;
|
|
9
|
+
isRTL: boolean;
|
|
10
|
+
isInitialized: boolean;
|
|
11
|
+
supportedLanguages: Language[];
|
|
12
|
+
}
|
|
13
|
+
export interface LocalizationActions {
|
|
14
|
+
initialize: () => Promise<void>;
|
|
15
|
+
setLanguage: (languageCode: string) => Promise<void>;
|
|
16
|
+
reset: () => void;
|
|
17
|
+
}
|
|
18
|
+
export interface LocalizationGetters {
|
|
19
|
+
getCurrentLanguage: () => Language | undefined;
|
|
20
|
+
isLanguageSupported: (code: string) => boolean;
|
|
21
|
+
getSupportedLanguages: () => Language[];
|
|
22
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Item Component
|
|
3
|
+
*
|
|
4
|
+
* Renders a single language item in the language selection list
|
|
5
|
+
* Theme-aware component that adapts to light/dark mode
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
|
|
9
|
+
import type { Language } from '../../infrastructure/storage/types/Language';
|
|
10
|
+
interface LanguageItemProps {
|
|
11
|
+
item: Language;
|
|
12
|
+
isSelected: boolean;
|
|
13
|
+
onSelect: (code: string) => void;
|
|
14
|
+
customStyles?: {
|
|
15
|
+
languageItem?: StyleProp<ViewStyle>;
|
|
16
|
+
languageContent?: StyleProp<ViewStyle>;
|
|
17
|
+
languageText?: StyleProp<ViewStyle>;
|
|
18
|
+
flag?: StyleProp<TextStyle>;
|
|
19
|
+
nativeName?: StyleProp<TextStyle>;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export declare const LanguageItem: React.FC<LanguageItemProps>;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Item Component Styles
|
|
3
|
+
*/
|
|
4
|
+
export declare const styles: {
|
|
5
|
+
languageItem: {
|
|
6
|
+
flexDirection: "row";
|
|
7
|
+
alignItems: "center";
|
|
8
|
+
justifyContent: "space-between";
|
|
9
|
+
borderWidth: number;
|
|
10
|
+
};
|
|
11
|
+
selectedLanguageItem: {
|
|
12
|
+
borderWidth: number;
|
|
13
|
+
};
|
|
14
|
+
languageContent: {
|
|
15
|
+
flexDirection: "row";
|
|
16
|
+
alignItems: "center";
|
|
17
|
+
flex: number;
|
|
18
|
+
};
|
|
19
|
+
flag: {
|
|
20
|
+
fontSize: number;
|
|
21
|
+
marginRight: number;
|
|
22
|
+
};
|
|
23
|
+
languageText: {
|
|
24
|
+
flex: number;
|
|
25
|
+
flexShrink: number;
|
|
26
|
+
};
|
|
27
|
+
nativeName: {};
|
|
28
|
+
languageName: {};
|
|
29
|
+
checkIcon: {};
|
|
30
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ViewStyle } from 'react-native';
|
|
3
|
+
export interface LanguageSectionConfig {
|
|
4
|
+
route?: string;
|
|
5
|
+
onPress?: () => void;
|
|
6
|
+
title?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
defaultLanguageDisplay?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface LanguageSectionProps {
|
|
11
|
+
config?: LanguageSectionConfig;
|
|
12
|
+
containerStyle?: ViewStyle;
|
|
13
|
+
sectionTitle?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const LanguageSection: React.FC<LanguageSectionProps>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LocalizationProvider
|
|
3
|
+
* Initializes i18n with app translations and manages language state
|
|
4
|
+
*/
|
|
5
|
+
import React from "react";
|
|
6
|
+
interface LocalizationProviderProps {
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
translations: Record<string, Record<string, unknown>>;
|
|
9
|
+
defaultLanguage?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const LocalizationManager: React.FC<LocalizationProviderProps>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Selection Screen
|
|
3
|
+
* Generic language selector with search functionality
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import type { LanguageSelectionScreenProps } from './LanguageSelectionScreen.types';
|
|
7
|
+
export declare const LanguageSelectionScreen: React.FC<LanguageSelectionScreenProps>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Selection Screen Types
|
|
3
|
+
*/
|
|
4
|
+
import type React from 'react';
|
|
5
|
+
import type { Language } from '../../infrastructure/storage/types/Language';
|
|
6
|
+
export interface LanguageSelectionScreenProps {
|
|
7
|
+
renderLanguageItem?: (item: Language, isSelected: boolean, onSelect: (code: string) => void) => React.ReactNode;
|
|
8
|
+
renderSearchInput?: (value: string, onChange: (value: string) => void, placeholder: string) => React.ReactNode;
|
|
9
|
+
headerTitle?: string;
|
|
10
|
+
onBackPress?: () => void;
|
|
11
|
+
styles?: {
|
|
12
|
+
container?: object;
|
|
13
|
+
searchContainer?: object;
|
|
14
|
+
languageItem?: object;
|
|
15
|
+
languageContent?: object;
|
|
16
|
+
languageText?: object;
|
|
17
|
+
flag?: object;
|
|
18
|
+
nativeName?: object;
|
|
19
|
+
searchInput?: object;
|
|
20
|
+
searchIcon?: object;
|
|
21
|
+
clearButton?: object;
|
|
22
|
+
listContent?: object;
|
|
23
|
+
};
|
|
24
|
+
searchPlaceholder?: string;
|
|
25
|
+
testID?: string;
|
|
26
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notifications Package - Public API
|
|
3
|
+
* Offline-first local notifications using expo-notifications
|
|
4
|
+
*/
|
|
5
|
+
export type { NotificationTrigger, ScheduleNotificationOptions, ScheduledNotification, TimePreset, ReminderFrequency, Reminder, CreateReminderInput, UpdateReminderInput, QuietHoursConfig, NotificationPreferences, ReminderTranslations, QuietHoursTranslations, NotificationSettingsTranslations, } from './infrastructure/services/types';
|
|
6
|
+
export { notificationsConfig } from './infrastructure/config/notificationsConfig';
|
|
7
|
+
export type { NotificationSetting, NotificationSection, NotificationsConfig, } from './infrastructure/config/notificationsConfig';
|
|
8
|
+
export { DEFAULT_TIME_PRESETS, FREQUENCY_OPTIONS, WEEKDAY_OPTIONS, getTimePresetById, formatTime, parseTime, } from './reminders/infrastructure/config/reminderPresets';
|
|
9
|
+
export type { FrequencyOption, WeekdayOption } from './reminders/infrastructure/config/reminderPresets';
|
|
10
|
+
export { NotificationService, notificationService } from './infrastructure/services/NotificationService';
|
|
11
|
+
export { NotificationManager } from './infrastructure/services/NotificationManager';
|
|
12
|
+
export { useNotificationStore, useNotificationPermissions, useNotificationInitialized, useNotificationPreferences, useQuietHours, useReminders, useEnabledReminders, useReminderById, useRemindersLoading, useRemindersInitialized, } from './infrastructure/storage/UnifiedNotificationStore';
|
|
13
|
+
export { useNotificationSettings } from './infrastructure/hooks/useNotificationSettings';
|
|
14
|
+
export { useReminderActions } from './reminders/infrastructure/hooks/useReminderActions';
|
|
15
|
+
export { useQuietHoursActions } from './quietHours/infrastructure/hooks/useQuietHoursActions';
|
|
16
|
+
export { useNotificationSettingsUI } from './presentation/hooks/useNotificationSettingsUI';
|
|
17
|
+
export { NotificationsScreen } from './presentation/screens/NotificationsScreen';
|
|
18
|
+
export type { NotificationsScreenProps } from './presentation/screens/NotificationsScreen';
|
|
19
|
+
export { NotificationSettingsScreen } from './presentation/screens/NotificationSettingsScreen';
|
|
20
|
+
export type { NotificationSettingsScreenProps } from './presentation/screens/NotificationSettingsScreen';
|
|
21
|
+
export { ReminderListScreen } from './reminders/presentation/screens/ReminderListScreen';
|
|
22
|
+
export type { ReminderListScreenProps } from './reminders/presentation/screens/ReminderListScreen';
|
|
23
|
+
export { NotificationsSection } from './presentation/components/NotificationsSection';
|
|
24
|
+
export type { NotificationsSectionProps, NotificationsSectionConfig } from './presentation/components/NotificationsSection';
|
|
25
|
+
export { TimePresetSelector } from './reminders/presentation/components/TimePresetSelector';
|
|
26
|
+
export type { TimePresetSelectorProps } from './reminders/presentation/components/TimePresetSelector';
|
|
27
|
+
export { FrequencySelector } from './reminders/presentation/components/FrequencySelector';
|
|
28
|
+
export type { FrequencySelectorProps } from './reminders/presentation/components/FrequencySelector';
|
|
29
|
+
export { WeekdaySelector } from './reminders/presentation/components/WeekdaySelector';
|
|
30
|
+
export type { WeekdaySelectorProps } from './reminders/presentation/components/WeekdaySelector';
|
|
31
|
+
export { ReminderItem } from './reminders/presentation/components/ReminderItem';
|
|
32
|
+
export type { ReminderItemProps, ReminderItemTranslations } from './reminders/presentation/components/ReminderItem';
|
|
33
|
+
export { ReminderForm } from './reminders/presentation/components/ReminderForm';
|
|
34
|
+
export type { ReminderFormProps, ReminderFormTranslations } from './reminders/presentation/components/ReminderForm.constants';
|
|
35
|
+
export { FormButton } from './reminders/presentation/components/FormButton';
|
|
36
|
+
export type { FormButtonProps } from './reminders/presentation/components/FormButton';
|
|
37
|
+
export { QuietHoursCard } from './quietHours/presentation/components/QuietHoursCard';
|
|
38
|
+
export type { QuietHoursCardProps } from './quietHours/presentation/components/QuietHoursCard';
|
|
39
|
+
export { RemindersNavRow } from './presentation/components/RemindersNavRow';
|
|
40
|
+
export type { RemindersNavRowProps } from './presentation/components/RemindersNavRow';
|
|
41
|
+
export { SettingRow } from './presentation/components/SettingRow';
|
|
42
|
+
export type { SettingRowProps } from './presentation/components/SettingRow';
|
|
43
|
+
export { generateId, generateReminderId } from './infrastructure/utils/idGenerator';
|
|
44
|
+
export { buildTrigger } from './infrastructure/utils/triggerBuilder';
|
|
45
|
+
export { useTimePicker } from './presentation/hooks/useTimePicker';
|
|
46
|
+
export type { PickerMode, UseTimePickerParams, TimePickerHandlers } from './presentation/hooks/useTimePicker';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notifications Configuration
|
|
3
|
+
* Defines notification settings structure
|
|
4
|
+
*/
|
|
5
|
+
export interface NotificationSetting {
|
|
6
|
+
id: string;
|
|
7
|
+
titleKey: string;
|
|
8
|
+
descKey: string;
|
|
9
|
+
icon: string;
|
|
10
|
+
}
|
|
11
|
+
export interface NotificationSection {
|
|
12
|
+
id: string;
|
|
13
|
+
titleKey: string;
|
|
14
|
+
settings: NotificationSetting[];
|
|
15
|
+
}
|
|
16
|
+
export interface NotificationsConfig {
|
|
17
|
+
sections: NotificationSection[];
|
|
18
|
+
}
|
|
19
|
+
export declare const notificationsConfig: NotificationsConfig;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NotificationManager - Core Notification Operations
|
|
3
|
+
*
|
|
4
|
+
* Offline-first notification system using expo-notifications.
|
|
5
|
+
* Works in ALL apps (offline, online, hybrid) - no backend required.
|
|
6
|
+
*/
|
|
7
|
+
import type { ScheduleNotificationOptions, ScheduledNotification } from './types';
|
|
8
|
+
export declare class NotificationManager {
|
|
9
|
+
private permissions;
|
|
10
|
+
private scheduler;
|
|
11
|
+
private badgeManager;
|
|
12
|
+
constructor();
|
|
13
|
+
static configure(): void;
|
|
14
|
+
requestPermissions(): Promise<boolean>;
|
|
15
|
+
hasPermissions(): Promise<boolean>;
|
|
16
|
+
scheduleNotification(options: ScheduleNotificationOptions): Promise<string>;
|
|
17
|
+
cancelNotification(notificationId: string): Promise<void>;
|
|
18
|
+
cancelAllNotifications(): Promise<void>;
|
|
19
|
+
getScheduledNotifications(): Promise<ScheduledNotification[]>;
|
|
20
|
+
dismissAllNotifications(): Promise<void>;
|
|
21
|
+
getBadgeCount(): Promise<number>;
|
|
22
|
+
setBadgeCount(count: number): Promise<void>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ScheduleNotificationOptions, ScheduledNotification } from './types';
|
|
2
|
+
export declare class NotificationScheduler {
|
|
3
|
+
scheduleNotification(options: ScheduleNotificationOptions): Promise<string>;
|
|
4
|
+
cancelNotification(notificationId: string): Promise<void>;
|
|
5
|
+
cancelAllNotifications(): Promise<void>;
|
|
6
|
+
getScheduledNotifications(): Promise<ScheduledNotification[]>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NotificationService
|
|
3
|
+
*
|
|
4
|
+
* Simple facade for offline notification system.
|
|
5
|
+
* Works in ALL apps - offline, online, hybrid - no backend required.
|
|
6
|
+
*
|
|
7
|
+
* @module NotificationService
|
|
8
|
+
*/
|
|
9
|
+
import { NotificationManager } from './NotificationManager';
|
|
10
|
+
export * from './types';
|
|
11
|
+
/**
|
|
12
|
+
* Notification service singleton
|
|
13
|
+
* Provides simple access to notification manager
|
|
14
|
+
*/
|
|
15
|
+
export declare class NotificationService {
|
|
16
|
+
private static instance;
|
|
17
|
+
private isConfigured;
|
|
18
|
+
readonly notifications: NotificationManager;
|
|
19
|
+
private constructor();
|
|
20
|
+
private ensureConfigured;
|
|
21
|
+
static getInstance(): NotificationService;
|
|
22
|
+
/**
|
|
23
|
+
* Request notification permissions
|
|
24
|
+
*/
|
|
25
|
+
requestPermissions(): Promise<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* Check if permissions are granted
|
|
28
|
+
*/
|
|
29
|
+
hasPermissions(): Promise<boolean>;
|
|
30
|
+
}
|
|
31
|
+
export declare const notificationService: NotificationService;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Offline-First Notification Types
|
|
3
|
+
* Uses expo-notifications for local device notifications
|
|
4
|
+
*/
|
|
5
|
+
import * as Notifications from 'expo-notifications';
|
|
6
|
+
export interface NotificationChannel {
|
|
7
|
+
id: string;
|
|
8
|
+
channel_type: 'push' | 'in_app';
|
|
9
|
+
channel_address: string;
|
|
10
|
+
preferences: Record<string, unknown>;
|
|
11
|
+
is_verified: boolean;
|
|
12
|
+
is_active: boolean;
|
|
13
|
+
created_at: string;
|
|
14
|
+
}
|
|
15
|
+
export type NotificationTrigger = {
|
|
16
|
+
type: 'date';
|
|
17
|
+
date: Date;
|
|
18
|
+
} | {
|
|
19
|
+
type: 'daily';
|
|
20
|
+
hour: number;
|
|
21
|
+
minute: number;
|
|
22
|
+
} | {
|
|
23
|
+
type: 'weekly';
|
|
24
|
+
weekday: number;
|
|
25
|
+
hour: number;
|
|
26
|
+
minute: number;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'monthly';
|
|
29
|
+
day: number;
|
|
30
|
+
hour: number;
|
|
31
|
+
minute: number;
|
|
32
|
+
};
|
|
33
|
+
export type NotificationData = Record<string, string | number | boolean | null>;
|
|
34
|
+
export interface ScheduleNotificationOptions {
|
|
35
|
+
title: string;
|
|
36
|
+
body: string;
|
|
37
|
+
data?: NotificationData;
|
|
38
|
+
trigger: NotificationTrigger;
|
|
39
|
+
sound?: boolean | string;
|
|
40
|
+
badge?: number;
|
|
41
|
+
categoryIdentifier?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface ScheduledNotification {
|
|
44
|
+
identifier: string;
|
|
45
|
+
content: {
|
|
46
|
+
title: string;
|
|
47
|
+
body: string;
|
|
48
|
+
data: NotificationData;
|
|
49
|
+
};
|
|
50
|
+
trigger: Notifications.NotificationTrigger;
|
|
51
|
+
}
|
|
52
|
+
export interface TimePreset {
|
|
53
|
+
id: string;
|
|
54
|
+
hour: number;
|
|
55
|
+
minute: number;
|
|
56
|
+
labelKey: string;
|
|
57
|
+
iconName: string;
|
|
58
|
+
}
|
|
59
|
+
export type ReminderFrequency = 'once' | 'daily' | 'weekly' | 'monthly';
|
|
60
|
+
export interface Reminder {
|
|
61
|
+
id: string;
|
|
62
|
+
title: string;
|
|
63
|
+
body: string;
|
|
64
|
+
frequency: ReminderFrequency;
|
|
65
|
+
timePresetId?: string;
|
|
66
|
+
hour: number;
|
|
67
|
+
minute: number;
|
|
68
|
+
weekday?: number;
|
|
69
|
+
dayOfMonth?: number;
|
|
70
|
+
enabled: boolean;
|
|
71
|
+
notificationId?: string;
|
|
72
|
+
createdAt: string;
|
|
73
|
+
updatedAt: string;
|
|
74
|
+
}
|
|
75
|
+
export interface CreateReminderInput {
|
|
76
|
+
title: string;
|
|
77
|
+
body: string;
|
|
78
|
+
frequency: ReminderFrequency;
|
|
79
|
+
timePresetId?: string;
|
|
80
|
+
hour: number;
|
|
81
|
+
minute: number;
|
|
82
|
+
weekday?: number;
|
|
83
|
+
dayOfMonth?: number;
|
|
84
|
+
}
|
|
85
|
+
export interface UpdateReminderInput {
|
|
86
|
+
title?: string;
|
|
87
|
+
body?: string;
|
|
88
|
+
frequency?: ReminderFrequency;
|
|
89
|
+
timePresetId?: string;
|
|
90
|
+
hour?: number;
|
|
91
|
+
minute?: number;
|
|
92
|
+
weekday?: number;
|
|
93
|
+
dayOfMonth?: number;
|
|
94
|
+
enabled?: boolean;
|
|
95
|
+
}
|
|
96
|
+
export interface QuietHoursConfig {
|
|
97
|
+
enabled: boolean;
|
|
98
|
+
startHour: number;
|
|
99
|
+
startMinute: number;
|
|
100
|
+
endHour: number;
|
|
101
|
+
endMinute: number;
|
|
102
|
+
}
|
|
103
|
+
export interface NotificationPreferences {
|
|
104
|
+
enabled: boolean;
|
|
105
|
+
sound: boolean;
|
|
106
|
+
vibration: boolean;
|
|
107
|
+
quietHours: QuietHoursConfig;
|
|
108
|
+
}
|
|
109
|
+
export interface ReminderTranslations {
|
|
110
|
+
screenTitle: string;
|
|
111
|
+
emptyTitle: string;
|
|
112
|
+
emptyDescription: string;
|
|
113
|
+
addButtonLabel: string;
|
|
114
|
+
editButtonLabel: string;
|
|
115
|
+
deleteButtonLabel: string;
|
|
116
|
+
enabledLabel: string;
|
|
117
|
+
disabledLabel: string;
|
|
118
|
+
frequencyOnce: string;
|
|
119
|
+
frequencyDaily: string;
|
|
120
|
+
frequencyWeekly: string;
|
|
121
|
+
frequencyMonthly: string;
|
|
122
|
+
timeLabel: string;
|
|
123
|
+
titlePlaceholder: string;
|
|
124
|
+
bodyPlaceholder: string;
|
|
125
|
+
saveButtonLabel: string;
|
|
126
|
+
cancelButtonLabel: string;
|
|
127
|
+
}
|
|
128
|
+
export interface QuietHoursTranslations {
|
|
129
|
+
title: string;
|
|
130
|
+
description: string;
|
|
131
|
+
startTimeLabel: string;
|
|
132
|
+
endTimeLabel: string;
|
|
133
|
+
enabledLabel: string;
|
|
134
|
+
}
|
|
135
|
+
export interface NotificationSettingsTranslations {
|
|
136
|
+
screenTitle: string;
|
|
137
|
+
masterToggleTitle: string;
|
|
138
|
+
masterToggleDescription: string;
|
|
139
|
+
soundTitle: string;
|
|
140
|
+
soundDescription: string;
|
|
141
|
+
vibrationTitle: string;
|
|
142
|
+
vibrationDescription: string;
|
|
143
|
+
remindersTitle: string;
|
|
144
|
+
remindersDescription: string;
|
|
145
|
+
quietHoursTitle: string;
|
|
146
|
+
quietHoursDescription: string;
|
|
147
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Notification Store
|
|
3
|
+
* Consolidates NotificationsStore, RemindersStore, and PreferencesStore
|
|
4
|
+
*
|
|
5
|
+
* Production-ready implementation with:
|
|
6
|
+
* - Single source of truth for all notification state
|
|
7
|
+
* - Proper state partializing (transient vs persistent)
|
|
8
|
+
* - Type-safe actions and selectors
|
|
9
|
+
* - Data migration support
|
|
10
|
+
*/
|
|
11
|
+
import type { Reminder, QuietHoursConfig, NotificationPreferences } from '../services/types';
|
|
12
|
+
interface NotificationState {
|
|
13
|
+
hasPermissions: boolean;
|
|
14
|
+
isInitialized: boolean;
|
|
15
|
+
isLoading: boolean;
|
|
16
|
+
preferences: NotificationPreferences;
|
|
17
|
+
reminders: Reminder[];
|
|
18
|
+
}
|
|
19
|
+
interface NotificationActions {
|
|
20
|
+
setPermissions: (granted: boolean) => void;
|
|
21
|
+
setInitialized: (initialized: boolean) => void;
|
|
22
|
+
initialize: () => void;
|
|
23
|
+
updatePreferences: (updates: Partial<NotificationPreferences>) => void;
|
|
24
|
+
updateQuietHours: (quietHours: QuietHoursConfig) => void;
|
|
25
|
+
addReminder: (reminder: Reminder) => void;
|
|
26
|
+
updateReminder: (id: string, updates: Partial<Reminder>) => void;
|
|
27
|
+
deleteReminder: (id: string) => void;
|
|
28
|
+
toggleReminder: (id: string) => void;
|
|
29
|
+
reset: () => void;
|
|
30
|
+
resetReminders: () => void;
|
|
31
|
+
}
|
|
32
|
+
export declare const useNotificationStore: import("zustand").UseBoundStore<import("zustand").StoreApi<NotificationState & NotificationActions>>;
|
|
33
|
+
export declare const useNotificationPermissions: () => boolean;
|
|
34
|
+
export declare const useNotificationInitialized: () => boolean;
|
|
35
|
+
export declare const useRemindersLoading: () => boolean;
|
|
36
|
+
export declare const useRemindersInitialized: () => boolean;
|
|
37
|
+
export declare const useNotificationPreferences: () => NotificationPreferences;
|
|
38
|
+
export declare const useQuietHours: () => QuietHoursConfig;
|
|
39
|
+
export declare const useReminders: () => Reminder[];
|
|
40
|
+
export declare const useEnabledReminders: () => Reminder[];
|
|
41
|
+
export declare const useReminderById: (id: string) => Reminder;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
export interface NotificationsSectionConfig {
|
|
4
|
+
route?: string;
|
|
5
|
+
onPress?: () => void;
|
|
6
|
+
title?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
sectionTitle?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface NotificationsSectionProps {
|
|
11
|
+
config?: NotificationsSectionConfig;
|
|
12
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
13
|
+
noBackground?: boolean;
|
|
14
|
+
hideMargin?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare const NotificationsSection: React.FC<NotificationsSectionProps>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RemindersNavRow Component
|
|
3
|
+
* Reusable navigation row for reminders section with badge
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export interface RemindersNavRowProps {
|
|
7
|
+
title: string;
|
|
8
|
+
description: string;
|
|
9
|
+
count: number;
|
|
10
|
+
onPress: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const RemindersNavRow: React.FC<RemindersNavRowProps>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RemindersNavRow Styles
|
|
3
|
+
*/
|
|
4
|
+
import type { DesignTokens } from '@umituz/react-native-design-system/theme';
|
|
5
|
+
export declare const createStyles: (tokens: DesignTokens) => {
|
|
6
|
+
navRow: {
|
|
7
|
+
flexDirection: "row";
|
|
8
|
+
alignItems: "center";
|
|
9
|
+
};
|
|
10
|
+
iconContainer: {
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
borderRadius: number;
|
|
14
|
+
backgroundColor: string;
|
|
15
|
+
justifyContent: "center";
|
|
16
|
+
alignItems: "center";
|
|
17
|
+
marginRight: number;
|
|
18
|
+
};
|
|
19
|
+
textContainer: {
|
|
20
|
+
flex: number;
|
|
21
|
+
marginRight: number;
|
|
22
|
+
};
|
|
23
|
+
badge: {
|
|
24
|
+
backgroundColor: string;
|
|
25
|
+
paddingHorizontal: number;
|
|
26
|
+
paddingVertical: number;
|
|
27
|
+
borderRadius: number;
|
|
28
|
+
marginRight: number;
|
|
29
|
+
};
|
|
30
|
+
badgeText: {
|
|
31
|
+
color: string;
|
|
32
|
+
fontWeight: "600";
|
|
33
|
+
};
|
|
34
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Setting Row Component
|
|
3
|
+
* Reusable toggle row for settings
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export interface SettingRowProps {
|
|
7
|
+
iconName: string;
|
|
8
|
+
title: string;
|
|
9
|
+
description: string;
|
|
10
|
+
value: boolean;
|
|
11
|
+
onToggle: (value: boolean) => void;
|
|
12
|
+
onHapticFeedback?: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare const SettingRow: React.FC<SettingRowProps>;
|