@umituz/react-native-settings 5.3.37 → 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,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main Settings Configuration Type
|
|
3
|
+
* Combines all feature configurations
|
|
4
|
+
*/
|
|
5
|
+
import type { FeatureVisibility } from "./BaseTypes";
|
|
6
|
+
import type { AppearanceConfig, LanguageConfig, NotificationsConfig, AboutConfig, LegalConfig, DisclaimerConfig } from "./ContentConfig";
|
|
7
|
+
import type { UserProfileConfig, FeedbackConfig, RatingConfig, FAQConfig, CloudSyncConfig, SubscriptionConfig, WalletConfig, GamificationItemConfig, VideoTutorialConfig } from "./UserFeatureConfig";
|
|
8
|
+
import type { SettingsTranslations } from "./SettingsTranslations";
|
|
9
|
+
/**
|
|
10
|
+
* Main Settings Configuration
|
|
11
|
+
*
|
|
12
|
+
* Controls which settings features are visible in the SettingsScreen.
|
|
13
|
+
* Each feature can be configured with:
|
|
14
|
+
* - Simple: boolean | 'auto' (quick setup)
|
|
15
|
+
* - Advanced: Detailed config object (full control)
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Simple configuration
|
|
19
|
+
* const config: SettingsConfig = {
|
|
20
|
+
* appearance: true,
|
|
21
|
+
* notifications: 'auto',
|
|
22
|
+
* about: false,
|
|
23
|
+
* };
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* // Advanced configuration
|
|
27
|
+
* const config: SettingsConfig = {
|
|
28
|
+
* appearance: {
|
|
29
|
+
* enabled: true,
|
|
30
|
+
* route: 'CustomAppearance',
|
|
31
|
+
* showTheme: true,
|
|
32
|
+
* },
|
|
33
|
+
* notifications: {
|
|
34
|
+
* enabled: 'auto',
|
|
35
|
+
* showToggle: true,
|
|
36
|
+
* initialValue: false,
|
|
37
|
+
* },
|
|
38
|
+
* };
|
|
39
|
+
*/
|
|
40
|
+
export interface SettingsConfig {
|
|
41
|
+
/**
|
|
42
|
+
* Application-wide translations
|
|
43
|
+
*/
|
|
44
|
+
translations?: SettingsTranslations;
|
|
45
|
+
/**
|
|
46
|
+
* Appearance settings (Theme customization)
|
|
47
|
+
* @default 'auto'
|
|
48
|
+
*/
|
|
49
|
+
appearance?: FeatureVisibility | AppearanceConfig;
|
|
50
|
+
/**
|
|
51
|
+
* Language settings
|
|
52
|
+
* @default 'auto'
|
|
53
|
+
*/
|
|
54
|
+
language?: FeatureVisibility | LanguageConfig;
|
|
55
|
+
/**
|
|
56
|
+
* Notifications settings
|
|
57
|
+
* @default 'auto'
|
|
58
|
+
*/
|
|
59
|
+
notifications?: FeatureVisibility | NotificationsConfig;
|
|
60
|
+
/**
|
|
61
|
+
* About settings
|
|
62
|
+
* @default 'auto'
|
|
63
|
+
*/
|
|
64
|
+
about?: FeatureVisibility | AboutConfig;
|
|
65
|
+
/**
|
|
66
|
+
* Legal settings (Terms, Privacy Policy)
|
|
67
|
+
* @default 'auto'
|
|
68
|
+
*/
|
|
69
|
+
legal?: FeatureVisibility | LegalConfig;
|
|
70
|
+
/**
|
|
71
|
+
* Disclaimer settings (Important notices)
|
|
72
|
+
* @default false
|
|
73
|
+
*/
|
|
74
|
+
disclaimer?: FeatureVisibility | DisclaimerConfig;
|
|
75
|
+
/**
|
|
76
|
+
* User profile header settings
|
|
77
|
+
* @default false
|
|
78
|
+
*/
|
|
79
|
+
userProfile?: boolean | UserProfileConfig;
|
|
80
|
+
/**
|
|
81
|
+
* Feedback settings
|
|
82
|
+
* @default 'auto'
|
|
83
|
+
*/
|
|
84
|
+
feedback?: FeatureVisibility | FeedbackConfig;
|
|
85
|
+
/**
|
|
86
|
+
* Rating settings configuration
|
|
87
|
+
*/
|
|
88
|
+
rating?: FeatureVisibility | RatingConfig;
|
|
89
|
+
/**
|
|
90
|
+
* FAQ settings configuration
|
|
91
|
+
*/
|
|
92
|
+
faqs?: FeatureVisibility | FAQConfig;
|
|
93
|
+
/**
|
|
94
|
+
* Cloud sync settings configuration
|
|
95
|
+
* @default false
|
|
96
|
+
*/
|
|
97
|
+
cloudSync?: FeatureVisibility | CloudSyncConfig;
|
|
98
|
+
/**
|
|
99
|
+
* Subscription settings configuration
|
|
100
|
+
* @default false
|
|
101
|
+
*/
|
|
102
|
+
subscription?: FeatureVisibility | SubscriptionConfig;
|
|
103
|
+
/**
|
|
104
|
+
* Wallet settings configuration
|
|
105
|
+
* @default false
|
|
106
|
+
*/
|
|
107
|
+
wallet?: FeatureVisibility | WalletConfig;
|
|
108
|
+
/**
|
|
109
|
+
* Gamification settings configuration
|
|
110
|
+
* @default 'auto'
|
|
111
|
+
*/
|
|
112
|
+
gamification?: FeatureVisibility | GamificationItemConfig;
|
|
113
|
+
/**
|
|
114
|
+
* Video tutorial settings configuration
|
|
115
|
+
* @default 'auto'
|
|
116
|
+
*/
|
|
117
|
+
videoTutorial?: FeatureVisibility | VideoTutorialConfig;
|
|
118
|
+
/**
|
|
119
|
+
* Custom empty state text when no settings are available
|
|
120
|
+
*/
|
|
121
|
+
emptyStateText?: string;
|
|
122
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings Translations Type
|
|
3
|
+
* Defines all translation keys for the settings package
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Global Settings Translations
|
|
7
|
+
*/
|
|
8
|
+
export interface SettingsTranslations {
|
|
9
|
+
title?: string;
|
|
10
|
+
profile?: {
|
|
11
|
+
anonymousName?: string;
|
|
12
|
+
signIn?: string;
|
|
13
|
+
signInDescription?: string;
|
|
14
|
+
anonymousBenefits?: {
|
|
15
|
+
title?: string;
|
|
16
|
+
items?: string[];
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
account?: {
|
|
20
|
+
editProfile?: string;
|
|
21
|
+
logout?: string;
|
|
22
|
+
deleteAccount?: string;
|
|
23
|
+
logoutConfirmTitle?: string;
|
|
24
|
+
logoutConfirmMessage?: string;
|
|
25
|
+
deleteConfirmTitle?: string;
|
|
26
|
+
deleteConfirmMessage?: string;
|
|
27
|
+
deleteAccountTitle?: string;
|
|
28
|
+
deleteAccountMessage?: string;
|
|
29
|
+
deleteErrorTitle?: string;
|
|
30
|
+
deleteErrorMessage?: string;
|
|
31
|
+
cancel?: string;
|
|
32
|
+
delete?: string;
|
|
33
|
+
};
|
|
34
|
+
sections?: {
|
|
35
|
+
app?: string;
|
|
36
|
+
progress?: string;
|
|
37
|
+
about?: string;
|
|
38
|
+
support?: string;
|
|
39
|
+
subscription?: string;
|
|
40
|
+
};
|
|
41
|
+
features?: {
|
|
42
|
+
appearance?: {
|
|
43
|
+
title?: string;
|
|
44
|
+
description?: string;
|
|
45
|
+
themeModes?: {
|
|
46
|
+
light?: string;
|
|
47
|
+
dark?: string;
|
|
48
|
+
auto?: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
language?: {
|
|
52
|
+
title?: string;
|
|
53
|
+
description?: string;
|
|
54
|
+
searchPlaceholder?: string;
|
|
55
|
+
};
|
|
56
|
+
notifications?: {
|
|
57
|
+
title?: string;
|
|
58
|
+
description?: string;
|
|
59
|
+
masterToggleTitle?: string;
|
|
60
|
+
masterToggleDescription?: string;
|
|
61
|
+
soundTitle?: string;
|
|
62
|
+
soundDescription?: string;
|
|
63
|
+
vibrationTitle?: string;
|
|
64
|
+
vibrationDescription?: string;
|
|
65
|
+
remindersTitle?: string;
|
|
66
|
+
remindersDescription?: string;
|
|
67
|
+
quietHoursTitle?: string;
|
|
68
|
+
quietHoursDescription?: string;
|
|
69
|
+
quietHours?: {
|
|
70
|
+
title?: string;
|
|
71
|
+
description?: string;
|
|
72
|
+
startTimeLabel?: string;
|
|
73
|
+
endTimeLabel?: string;
|
|
74
|
+
enabledLabel?: string;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
about?: {
|
|
78
|
+
title?: string;
|
|
79
|
+
description?: string;
|
|
80
|
+
contact?: string;
|
|
81
|
+
more?: string;
|
|
82
|
+
developer?: string;
|
|
83
|
+
email?: string;
|
|
84
|
+
website?: string;
|
|
85
|
+
moreApps?: string;
|
|
86
|
+
versionPrefix?: string;
|
|
87
|
+
};
|
|
88
|
+
legal?: {
|
|
89
|
+
title?: string;
|
|
90
|
+
description?: string;
|
|
91
|
+
documentsHeader?: string;
|
|
92
|
+
privacyTitle?: string;
|
|
93
|
+
privacyDescription?: string;
|
|
94
|
+
termsTitle?: string;
|
|
95
|
+
termsDescription?: string;
|
|
96
|
+
eulaTitle?: string;
|
|
97
|
+
eulaDescription?: string;
|
|
98
|
+
};
|
|
99
|
+
feedback?: {
|
|
100
|
+
title?: string;
|
|
101
|
+
description?: string;
|
|
102
|
+
};
|
|
103
|
+
rating?: {
|
|
104
|
+
title?: string;
|
|
105
|
+
description?: string;
|
|
106
|
+
};
|
|
107
|
+
faqs?: {
|
|
108
|
+
title?: string;
|
|
109
|
+
description?: string;
|
|
110
|
+
searchPlaceholder?: string;
|
|
111
|
+
emptySearchTitle?: string;
|
|
112
|
+
emptySearchMessage?: string;
|
|
113
|
+
headerTitle?: string;
|
|
114
|
+
};
|
|
115
|
+
languageSelection?: {
|
|
116
|
+
searchPlaceholder?: string;
|
|
117
|
+
};
|
|
118
|
+
subscription?: {
|
|
119
|
+
title?: string;
|
|
120
|
+
description?: string;
|
|
121
|
+
};
|
|
122
|
+
videoTutorial?: {
|
|
123
|
+
title?: string;
|
|
124
|
+
description?: string;
|
|
125
|
+
};
|
|
126
|
+
gamification?: {
|
|
127
|
+
title?: string;
|
|
128
|
+
description?: string;
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
feedbackModal?: {
|
|
132
|
+
title?: string;
|
|
133
|
+
ratingLabel?: string;
|
|
134
|
+
descriptionPlaceholder?: string;
|
|
135
|
+
submitButton?: string;
|
|
136
|
+
submittingButton?: string;
|
|
137
|
+
types?: {
|
|
138
|
+
general?: string;
|
|
139
|
+
bugReport?: string;
|
|
140
|
+
featureRequest?: string;
|
|
141
|
+
improvement?: string;
|
|
142
|
+
other?: string;
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
noOptionsAvailable?: string;
|
|
146
|
+
footer?: {
|
|
147
|
+
version?: string;
|
|
148
|
+
};
|
|
149
|
+
errors?: {
|
|
150
|
+
common?: string;
|
|
151
|
+
unknown?: string;
|
|
152
|
+
unknownError?: string;
|
|
153
|
+
appStoreUrlMissing?: string;
|
|
154
|
+
appStoreUrlNotConfigured?: string;
|
|
155
|
+
unableToOpenAppStore?: string;
|
|
156
|
+
failedToOpenAppStore?: string;
|
|
157
|
+
deleteAccountError?: string;
|
|
158
|
+
};
|
|
159
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User Feature Configuration Types
|
|
3
|
+
* Types for user-related features (Profile, Feedback, FAQ, etc.)
|
|
4
|
+
*/
|
|
5
|
+
import type { FeatureVisibility } from "./BaseTypes";
|
|
6
|
+
import type { FeedbackType } from "../../../domains/feedback/domain/entities/FeedbackEntity";
|
|
7
|
+
import type { FAQCategory } from "../../../domains/faqs/domain/entities/FAQEntity";
|
|
8
|
+
import type { SettingsStackParamList } from "../../navigation/types";
|
|
9
|
+
/**
|
|
10
|
+
* User Profile Settings Configuration
|
|
11
|
+
*/
|
|
12
|
+
export interface UserProfileConfig {
|
|
13
|
+
/** Show user profile header */
|
|
14
|
+
enabled?: boolean;
|
|
15
|
+
/** Custom section title for grouping */
|
|
16
|
+
sectionTitle?: string;
|
|
17
|
+
/** Custom display name for anonymous users */
|
|
18
|
+
anonymousDisplayName?: string;
|
|
19
|
+
/** Custom avatar service URL */
|
|
20
|
+
avatarServiceUrl?: string;
|
|
21
|
+
/** Navigation route for account settings (shows chevron if set) */
|
|
22
|
+
accountSettingsRoute?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Feedback Settings Configuration
|
|
26
|
+
*/
|
|
27
|
+
export interface FeedbackConfig {
|
|
28
|
+
/** Enable feedback feature */
|
|
29
|
+
enabled?: FeatureVisibility;
|
|
30
|
+
/** Custom title for the feedback section */
|
|
31
|
+
title?: string;
|
|
32
|
+
/** Custom label for the feedback item */
|
|
33
|
+
description?: string;
|
|
34
|
+
/** Custom icon name (Ionicons) */
|
|
35
|
+
icon?: string;
|
|
36
|
+
/** Custom section title for grouping */
|
|
37
|
+
sectionTitle?: string;
|
|
38
|
+
/** Initial feedback type */
|
|
39
|
+
initialType?: FeedbackType;
|
|
40
|
+
/** Feedback submission handler */
|
|
41
|
+
onSubmit?: (data: {
|
|
42
|
+
type: FeedbackType;
|
|
43
|
+
rating: number;
|
|
44
|
+
description: string;
|
|
45
|
+
title: string;
|
|
46
|
+
}) => Promise<void>;
|
|
47
|
+
/** Custom handler to open feedback screen (overrides default modal) */
|
|
48
|
+
onPress?: () => void;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* FAQ Settings Configuration
|
|
52
|
+
*/
|
|
53
|
+
export interface FAQConfig {
|
|
54
|
+
/** Enable FAQ feature */
|
|
55
|
+
enabled?: FeatureVisibility;
|
|
56
|
+
/** Custom title for the FAQ section */
|
|
57
|
+
title?: string;
|
|
58
|
+
/** Custom label for the FAQ button */
|
|
59
|
+
description?: string;
|
|
60
|
+
/** Custom icon name (Ionicons) */
|
|
61
|
+
icon?: string;
|
|
62
|
+
/** Custom section title for grouping */
|
|
63
|
+
sectionTitle?: string;
|
|
64
|
+
/** FAQ items passed from app */
|
|
65
|
+
items?: FAQCategory[];
|
|
66
|
+
/** Handler to open FAQ screen */
|
|
67
|
+
onPress?: () => void;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Rating Settings Configuration
|
|
71
|
+
*/
|
|
72
|
+
export interface RatingConfig {
|
|
73
|
+
/** Enable rating feature */
|
|
74
|
+
enabled?: FeatureVisibility;
|
|
75
|
+
/** Custom title for the rating section */
|
|
76
|
+
title?: string;
|
|
77
|
+
/** Custom label for the rate app button */
|
|
78
|
+
description?: string;
|
|
79
|
+
/** Store URL for direct linking (optional) */
|
|
80
|
+
storeUrl?: string;
|
|
81
|
+
/** Custom handler for rating action (e.g. open store review) */
|
|
82
|
+
onRate?: () => void;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Cloud Sync Settings Configuration
|
|
86
|
+
*/
|
|
87
|
+
export interface CloudSyncConfig {
|
|
88
|
+
/** Enable cloud sync feature */
|
|
89
|
+
enabled?: FeatureVisibility;
|
|
90
|
+
/** Custom title for the sync section */
|
|
91
|
+
title?: string;
|
|
92
|
+
/** Custom description for the sync toggle */
|
|
93
|
+
description?: string;
|
|
94
|
+
/** Custom icon name (Ionicons) */
|
|
95
|
+
icon?: string;
|
|
96
|
+
/** Custom section title for grouping */
|
|
97
|
+
sectionTitle?: string;
|
|
98
|
+
/** Firestore collection name */
|
|
99
|
+
collectionName?: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Subscription Settings Configuration
|
|
103
|
+
*/
|
|
104
|
+
export interface SubscriptionConfig {
|
|
105
|
+
/** Show subscription section */
|
|
106
|
+
enabled?: FeatureVisibility;
|
|
107
|
+
/** Custom title for the subscription section */
|
|
108
|
+
title?: string;
|
|
109
|
+
/** Custom label for the subscription item */
|
|
110
|
+
description?: string;
|
|
111
|
+
/** Custom icon name (Ionicons) */
|
|
112
|
+
icon?: string;
|
|
113
|
+
/** Custom section title for grouping */
|
|
114
|
+
sectionTitle?: string;
|
|
115
|
+
/** Navigation route for subscription screen (preferred over onPress) */
|
|
116
|
+
route?: keyof SettingsStackParamList;
|
|
117
|
+
/** Handler to open subscription screen (use route instead for stack navigation) */
|
|
118
|
+
onPress?: () => void;
|
|
119
|
+
/** Whether user is premium (to show active status) */
|
|
120
|
+
isPremium?: boolean;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Wallet Settings Configuration
|
|
124
|
+
*/
|
|
125
|
+
export interface WalletConfig {
|
|
126
|
+
/** Show wallet section */
|
|
127
|
+
enabled?: FeatureVisibility;
|
|
128
|
+
/** Custom title for the wallet section */
|
|
129
|
+
title?: string;
|
|
130
|
+
/** Custom label for the wallet item */
|
|
131
|
+
description?: string;
|
|
132
|
+
/** Custom icon name (Ionicons) */
|
|
133
|
+
icon?: string;
|
|
134
|
+
/** Custom section title for grouping */
|
|
135
|
+
sectionTitle?: string;
|
|
136
|
+
/** Navigation route for wallet screen */
|
|
137
|
+
route?: keyof SettingsStackParamList;
|
|
138
|
+
/** Current balance to display */
|
|
139
|
+
balance?: number;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Gamification Settings Item Configuration
|
|
143
|
+
*/
|
|
144
|
+
export interface GamificationItemConfig {
|
|
145
|
+
/** Show gamification section */
|
|
146
|
+
enabled?: FeatureVisibility;
|
|
147
|
+
/** Custom title for the gamification section */
|
|
148
|
+
title?: string;
|
|
149
|
+
/** Custom label for the gamification item */
|
|
150
|
+
description?: string;
|
|
151
|
+
/** Custom icon name (Ionicons) */
|
|
152
|
+
icon?: string;
|
|
153
|
+
/** Custom section title for grouping */
|
|
154
|
+
sectionTitle?: string;
|
|
155
|
+
/** Navigation route for gamification screen */
|
|
156
|
+
route?: keyof SettingsStackParamList;
|
|
157
|
+
/** Achievements to display */
|
|
158
|
+
achievementsCount?: number;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Video Tutorial Settings Configuration
|
|
162
|
+
*/
|
|
163
|
+
export interface VideoTutorialConfig {
|
|
164
|
+
/** Enable video tutorial feature */
|
|
165
|
+
enabled?: FeatureVisibility;
|
|
166
|
+
/** Custom title for the video tutorial section */
|
|
167
|
+
title?: string;
|
|
168
|
+
/** Custom label for the video tutorial item */
|
|
169
|
+
description?: string;
|
|
170
|
+
/** Custom icon name (Ionicons) */
|
|
171
|
+
icon?: string;
|
|
172
|
+
/** Custom section title for grouping */
|
|
173
|
+
sectionTitle?: string;
|
|
174
|
+
/** Handler to open video tutorial screen */
|
|
175
|
+
onPress?: () => void;
|
|
176
|
+
/** Navigation route for video tutorial screen */
|
|
177
|
+
route?: keyof SettingsStackParamList;
|
|
178
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings Types - Public API
|
|
3
|
+
* Exports all settings-related types
|
|
4
|
+
*/
|
|
5
|
+
export type { FeatureVisibility } from "./BaseTypes";
|
|
6
|
+
export type { AboutConfig, LegalConfig, DisclaimerConfig, AppearanceConfig, LanguageConfig, NotificationsConfig, } from "./ContentConfig";
|
|
7
|
+
export type { UserProfileConfig, FeedbackConfig, FAQConfig, RatingConfig, CloudSyncConfig, SubscriptionConfig, WalletConfig, GamificationItemConfig, VideoTutorialConfig, } from "./UserFeatureConfig";
|
|
8
|
+
export type { GamificationSettingsConfig as GamificationConfig } from "../../../domains/gamification";
|
|
9
|
+
export type { SettingsConfig } from "./SettingsConfig";
|
|
10
|
+
export type { SettingsTranslations } from "./SettingsTranslations";
|
|
11
|
+
export type { CustomSettingsSection } from "./CustomSection";
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Normalization Utilities
|
|
3
|
+
* Single Responsibility: Normalize config values to consistent format
|
|
4
|
+
*/
|
|
5
|
+
import type { AppearanceConfig, LanguageConfig, NotificationsConfig, AboutConfig, LegalConfig, DisclaimerConfig, UserProfileConfig, FeedbackConfig, RatingConfig, FAQConfig, SubscriptionConfig, WalletConfig, GamificationItemConfig, VideoTutorialConfig, SettingsConfig } from "../types";
|
|
6
|
+
export interface NormalizedConfig {
|
|
7
|
+
appearance: {
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
config?: AppearanceConfig;
|
|
10
|
+
};
|
|
11
|
+
language: {
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
config?: LanguageConfig;
|
|
14
|
+
};
|
|
15
|
+
notifications: {
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
config?: NotificationsConfig;
|
|
18
|
+
};
|
|
19
|
+
about: {
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
config?: AboutConfig;
|
|
22
|
+
};
|
|
23
|
+
legal: {
|
|
24
|
+
enabled: boolean;
|
|
25
|
+
config?: LegalConfig;
|
|
26
|
+
};
|
|
27
|
+
disclaimer: {
|
|
28
|
+
enabled: boolean;
|
|
29
|
+
config?: DisclaimerConfig;
|
|
30
|
+
};
|
|
31
|
+
userProfile: {
|
|
32
|
+
enabled: boolean;
|
|
33
|
+
config?: UserProfileConfig;
|
|
34
|
+
};
|
|
35
|
+
feedback: {
|
|
36
|
+
enabled: boolean;
|
|
37
|
+
config?: FeedbackConfig;
|
|
38
|
+
};
|
|
39
|
+
rating: {
|
|
40
|
+
enabled: boolean;
|
|
41
|
+
config?: RatingConfig;
|
|
42
|
+
};
|
|
43
|
+
faqs: {
|
|
44
|
+
enabled: boolean;
|
|
45
|
+
config?: FAQConfig;
|
|
46
|
+
};
|
|
47
|
+
subscription: {
|
|
48
|
+
enabled: boolean;
|
|
49
|
+
config?: SubscriptionConfig;
|
|
50
|
+
};
|
|
51
|
+
wallet: {
|
|
52
|
+
enabled: boolean;
|
|
53
|
+
config?: WalletConfig;
|
|
54
|
+
};
|
|
55
|
+
gamification: {
|
|
56
|
+
enabled: boolean;
|
|
57
|
+
config?: GamificationItemConfig;
|
|
58
|
+
};
|
|
59
|
+
videoTutorial: {
|
|
60
|
+
enabled: boolean;
|
|
61
|
+
config?: VideoTutorialConfig;
|
|
62
|
+
};
|
|
63
|
+
translations?: import("../types").SettingsTranslations;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Normalize entire SettingsConfig to consistent format
|
|
67
|
+
*/
|
|
68
|
+
export declare function normalizeSettingsConfig(config: SettingsConfig | undefined): NormalizedConfig;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Account Configuration Utilities
|
|
3
|
+
*
|
|
4
|
+
* Helper functions for creating account screen configurations.
|
|
5
|
+
*/
|
|
6
|
+
import type { AccountConfig } from "../navigation/types";
|
|
7
|
+
export interface AccountTranslations {
|
|
8
|
+
editProfile?: string;
|
|
9
|
+
logout: string;
|
|
10
|
+
deleteAccount: string;
|
|
11
|
+
logoutConfirmTitle: string;
|
|
12
|
+
logoutConfirmMessage: string;
|
|
13
|
+
deleteConfirmTitle: string;
|
|
14
|
+
deleteConfirmMessage: string;
|
|
15
|
+
deleteErrorTitle?: string;
|
|
16
|
+
deleteErrorMessage?: string;
|
|
17
|
+
cancel: string;
|
|
18
|
+
}
|
|
19
|
+
export interface CreateAccountConfigParams {
|
|
20
|
+
displayName?: string;
|
|
21
|
+
userId?: string;
|
|
22
|
+
photoURL?: string;
|
|
23
|
+
isAnonymous?: boolean;
|
|
24
|
+
avatarUrl?: string;
|
|
25
|
+
onSignIn: () => void;
|
|
26
|
+
onLogout: () => Promise<void>;
|
|
27
|
+
onDeleteAccount: () => Promise<void>;
|
|
28
|
+
translations?: AccountTranslations;
|
|
29
|
+
PasswordPromptComponent?: React.ReactNode;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create account screen configuration
|
|
33
|
+
*/
|
|
34
|
+
export declare function createAccountConfig(params: CreateAccountConfigParams): AccountConfig;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Settings Config Creators
|
|
3
|
+
* Standard settings: appearance, language, notifications, about, legal
|
|
4
|
+
* Refactored to use configFactory pattern for consistency
|
|
5
|
+
*/
|
|
6
|
+
import type { AppearanceConfig, LanguageConfig, NotificationsConfig, AboutConfig, LegalConfig } from "../../screens/types";
|
|
7
|
+
/**
|
|
8
|
+
* Create appearance configuration
|
|
9
|
+
*/
|
|
10
|
+
export declare const createAppearanceConfig: (routeOrOnPress?: string | (() => void)) => AppearanceConfig;
|
|
11
|
+
/**
|
|
12
|
+
* Create language configuration
|
|
13
|
+
*/
|
|
14
|
+
export declare const createLanguageConfig: (routeOrOnPress?: string | (() => void)) => LanguageConfig;
|
|
15
|
+
/**
|
|
16
|
+
* Create notifications configuration
|
|
17
|
+
*/
|
|
18
|
+
export declare const createNotificationsConfig: (routeOrOnPress?: string | (() => void)) => NotificationsConfig;
|
|
19
|
+
/**
|
|
20
|
+
* Create about configuration
|
|
21
|
+
*/
|
|
22
|
+
export declare const createAboutConfig: (routeOrOnPress?: string | (() => void)) => AboutConfig;
|
|
23
|
+
/**
|
|
24
|
+
* Create legal configuration
|
|
25
|
+
*/
|
|
26
|
+
export declare const createLegalConfig: (routeOrOnPress?: string | (() => void)) => LegalConfig;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature Settings Config Creators
|
|
3
|
+
* Subscription, gamification
|
|
4
|
+
*/
|
|
5
|
+
import type { SubscriptionConfig } from "../../screens/types";
|
|
6
|
+
import type { GamificationConfig, AchievementDefinition, LevelDefinition } from "../../../domains/gamification/types";
|
|
7
|
+
import type { SettingsStackParamList } from "../../navigation/types";
|
|
8
|
+
/**
|
|
9
|
+
* Create subscription configuration
|
|
10
|
+
* @param route - Navigation route name (preferred for stack navigation)
|
|
11
|
+
* @param onPress - Callback function (use route instead when possible)
|
|
12
|
+
*/
|
|
13
|
+
export declare const createSubscriptionConfig: (isPremium: boolean, routeOrOnPress: keyof SettingsStackParamList | (() => void)) => SubscriptionConfig;
|
|
14
|
+
/**
|
|
15
|
+
* Create gamification configuration
|
|
16
|
+
*/
|
|
17
|
+
export declare const createGamificationConfig: (storageKey: string, achievements: AchievementDefinition[], levels: LevelDefinition[], enabled?: boolean) => GamificationConfig;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Creators - Barrel export
|
|
3
|
+
*/
|
|
4
|
+
export type { TranslationFunction, FeedbackFormData } from "./types";
|
|
5
|
+
export { createAppearanceConfig, createLanguageConfig, createNotificationsConfig, createAboutConfig, createLegalConfig, } from "./base-configs";
|
|
6
|
+
export { createFeedbackConfig, createRatingConfig, createFAQConfig, } from "./support-configs";
|
|
7
|
+
export { createSubscriptionConfig, createGamificationConfig, } from "./feature-configs";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Support Settings Config Creators
|
|
3
|
+
* Feedback, rating, FAQ
|
|
4
|
+
*/
|
|
5
|
+
import type { FeedbackConfig, RatingConfig, FAQConfig } from "../../screens/types";
|
|
6
|
+
import type { FeedbackFormData } from "./types";
|
|
7
|
+
/**
|
|
8
|
+
* Create feedback configuration
|
|
9
|
+
*/
|
|
10
|
+
export declare const createFeedbackConfig: (onSubmit: (data: FeedbackFormData) => Promise<void>) => FeedbackConfig;
|
|
11
|
+
/**
|
|
12
|
+
* Create rating configuration
|
|
13
|
+
*/
|
|
14
|
+
export declare const createRatingConfig: (onRate: () => void, storeUrl?: string) => RatingConfig;
|
|
15
|
+
/**
|
|
16
|
+
* Create FAQ configuration
|
|
17
|
+
* Navigation is handled internally by the package - no callback needed
|
|
18
|
+
*/
|
|
19
|
+
export declare const createFAQConfig: () => FAQConfig;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Creator Types
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Translation options for i18n parameters
|
|
6
|
+
*/
|
|
7
|
+
export type TranslationOptions = Record<string, string | number | boolean>;
|
|
8
|
+
/**
|
|
9
|
+
* Translation function type
|
|
10
|
+
*/
|
|
11
|
+
export type TranslationFunction = (key: string, options?: TranslationOptions) => string;
|
|
12
|
+
/**
|
|
13
|
+
* Feedback form data interface
|
|
14
|
+
*/
|
|
15
|
+
export interface FeedbackFormData {
|
|
16
|
+
type: string;
|
|
17
|
+
rating: number;
|
|
18
|
+
description: string;
|
|
19
|
+
title: string;
|
|
20
|
+
}
|