@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.
Files changed (251) hide show
  1. package/dist/account.d.ts +27 -0
  2. package/dist/application/ports/ISettingsRepository.d.ts +45 -0
  3. package/dist/domains/about/domain/entities/AppInfo.d.ts +76 -0
  4. package/dist/domains/about/domain/repositories/IAboutRepository.d.ts +19 -0
  5. package/dist/domains/about/index.d.ts +10 -0
  6. package/dist/domains/about/infrastructure/repositories/AboutRepository.d.ts +18 -0
  7. package/dist/domains/about/presentation/components/AboutContent.d.ts +14 -0
  8. package/dist/domains/about/presentation/components/AboutHeader.d.ts +21 -0
  9. package/dist/domains/about/presentation/components/AboutSection.d.ts +14 -0
  10. package/dist/domains/about/presentation/components/AboutSettingItem.d.ts +39 -0
  11. package/dist/domains/about/presentation/hooks/useAboutInfo.d.ts +2 -0
  12. package/dist/domains/about/presentation/hooks/useAboutInfo.types.d.ts +29 -0
  13. package/dist/domains/about/presentation/screens/AboutScreen.d.ts +21 -0
  14. package/dist/domains/about/presentation/screens/AboutScreenContent.d.ts +15 -0
  15. package/dist/domains/about/utils/AppInfoFactory.d.ts +9 -0
  16. package/dist/domains/appearance/data/colorPalettes.d.ts +25 -0
  17. package/dist/domains/appearance/hooks/useAppearance.d.ts +11 -0
  18. package/dist/domains/appearance/hooks/useAppearanceActions.d.ts +9 -0
  19. package/dist/domains/appearance/index.d.ts +9 -0
  20. package/dist/domains/appearance/presentation/components/AppearanceHeader.d.ts +18 -0
  21. package/dist/domains/appearance/presentation/components/AppearancePreview.d.ts +21 -0
  22. package/dist/domains/appearance/presentation/components/AppearanceSection.d.ts +16 -0
  23. package/dist/domains/appearance/presentation/components/ColorPicker.d.ts +15 -0
  24. package/dist/domains/appearance/presentation/components/CustomColorsSection.d.ts +25 -0
  25. package/dist/domains/appearance/presentation/components/ThemeModeSection.d.ts +24 -0
  26. package/dist/domains/appearance/presentation/components/ThemeOption.d.ts +20 -0
  27. package/dist/domains/appearance/presentation/components/index.d.ts +6 -0
  28. package/dist/domains/appearance/presentation/screens/AppearanceScreen.d.ts +16 -0
  29. package/dist/domains/appearance/types/index.d.ts +48 -0
  30. package/dist/domains/cloud-sync/index.d.ts +6 -0
  31. package/dist/domains/cloud-sync/presentation/components/CloudSyncSetting.d.ts +14 -0
  32. package/dist/domains/dev/index.d.ts +14 -0
  33. package/dist/domains/dev/presentation/components/DevSettingsSection.d.ts +34 -0
  34. package/dist/domains/dev/presentation/components/EnvViewerSetting.d.ts +20 -0
  35. package/dist/domains/dev/presentation/components/StorageClearSetting.d.ts +13 -0
  36. package/dist/domains/dev/presentation/screens/EnvViewerScreen.d.ts +12 -0
  37. package/dist/domains/dev/types.d.ts +22 -0
  38. package/dist/domains/disclaimer/index.d.ts +17 -0
  39. package/dist/domains/disclaimer/presentation/components/DisclaimerCard.d.ts +14 -0
  40. package/dist/domains/disclaimer/presentation/components/DisclaimerModal.d.ts +12 -0
  41. package/dist/domains/disclaimer/presentation/components/DisclaimerSetting.d.ts +34 -0
  42. package/dist/domains/disclaimer/presentation/screens/DisclaimerScreen.d.ts +27 -0
  43. package/dist/domains/faqs/domain/entities/FAQEntity.d.ts +21 -0
  44. package/dist/domains/faqs/domain/services/FAQSearchService.d.ts +12 -0
  45. package/dist/domains/faqs/index.d.ts +8 -0
  46. package/dist/domains/faqs/presentation/components/FAQCategory.d.ts +21 -0
  47. package/dist/domains/faqs/presentation/components/FAQEmptyState.d.ts +20 -0
  48. package/dist/domains/faqs/presentation/components/FAQItem.d.ts +24 -0
  49. package/dist/domains/faqs/presentation/components/FAQSearchBar.d.ts +18 -0
  50. package/dist/domains/faqs/presentation/components/index.d.ts +11 -0
  51. package/dist/domains/faqs/presentation/hooks/index.d.ts +5 -0
  52. package/dist/domains/faqs/presentation/hooks/useFAQExpansion.d.ts +12 -0
  53. package/dist/domains/faqs/presentation/hooks/useFAQSearch.d.ts +12 -0
  54. package/dist/domains/faqs/presentation/screens/FAQScreen.d.ts +33 -0
  55. package/dist/domains/feedback/domain/entities/FeedbackEntity.d.ts +25 -0
  56. package/dist/domains/feedback/domain/repositories/IFeedbackRepository.d.ts +20 -0
  57. package/dist/domains/feedback/index.d.ts +10 -0
  58. package/dist/domains/feedback/presentation/components/FeedbackForm.d.ts +7 -0
  59. package/dist/domains/feedback/presentation/components/FeedbackForm.styles.d.ts +48 -0
  60. package/dist/domains/feedback/presentation/components/FeedbackFormProps.d.ts +26 -0
  61. package/dist/domains/feedback/presentation/components/FeedbackModal.d.ts +23 -0
  62. package/dist/domains/feedback/presentation/components/SupportSection.d.ts +62 -0
  63. package/dist/domains/feedback/presentation/hooks/useFeedbackForm.d.ts +19 -0
  64. package/dist/domains/feedback/presentation/screens/FeatureRequestScreen.d.ts +2 -0
  65. package/dist/domains/gamification/components/AchievementCard.d.ts +23 -0
  66. package/dist/domains/gamification/components/AchievementItem.d.ts +7 -0
  67. package/dist/domains/gamification/components/AchievementToast.d.ts +21 -0
  68. package/dist/domains/gamification/components/GamificationScreen/AchievementsList.d.ts +17 -0
  69. package/dist/domains/gamification/components/GamificationScreen/GamificationScreen.d.ts +11 -0
  70. package/dist/domains/gamification/components/GamificationScreen/GamificationScreenWithConfig.d.ts +11 -0
  71. package/dist/domains/gamification/components/GamificationScreen/StatsGrid.d.ts +16 -0
  72. package/dist/domains/gamification/components/GamificationScreen/index.d.ts +17 -0
  73. package/dist/domains/gamification/components/GamificationScreen/styles.d.ts +40 -0
  74. package/dist/domains/gamification/components/GamificationScreen/types.d.ts +42 -0
  75. package/dist/domains/gamification/components/LevelProgress.d.ts +27 -0
  76. package/dist/domains/gamification/components/PointsBadge.d.ts +16 -0
  77. package/dist/domains/gamification/components/StatsCard.d.ts +20 -0
  78. package/dist/domains/gamification/components/StreakDisplay.d.ts +21 -0
  79. package/dist/domains/gamification/components/index.d.ts +14 -0
  80. package/dist/domains/gamification/components/styles/achievementItemStyles.d.ts +71 -0
  81. package/dist/domains/gamification/components/types/AchievementItemProps.d.ts +22 -0
  82. package/dist/domains/gamification/hooks/useGamification.d.ts +22 -0
  83. package/dist/domains/gamification/index.d.ts +13 -0
  84. package/dist/domains/gamification/store/gamificationStore.d.ts +6 -0
  85. package/dist/domains/gamification/types/index.d.ts +99 -0
  86. package/dist/domains/gamification/utils/calculations.d.ts +10 -0
  87. package/dist/domains/legal/domain/entities/LegalConfig.d.ts +28 -0
  88. package/dist/domains/legal/domain/services/ContentValidationService.d.ts +19 -0
  89. package/dist/domains/legal/domain/services/StyleCacheService.d.ts +38 -0
  90. package/dist/domains/legal/domain/services/UrlHandlerService.d.ts +32 -0
  91. package/dist/domains/legal/index.d.ts +8 -0
  92. package/dist/domains/legal/presentation/components/LegalDocumentsList.d.ts +21 -0
  93. package/dist/domains/legal/presentation/components/LegalItem.d.ts +35 -0
  94. package/dist/domains/legal/presentation/components/LegalScreenHeader.d.ts +12 -0
  95. package/dist/domains/legal/presentation/components/LegalSection.d.ts +14 -0
  96. package/dist/domains/legal/presentation/screens/LegalContentScreen.d.ts +19 -0
  97. package/dist/domains/legal/presentation/screens/LegalScreen.d.ts +24 -0
  98. package/dist/domains/legal/presentation/screens/PrivacyPolicyScreen.d.ts +15 -0
  99. package/dist/domains/legal/presentation/screens/TermsOfServiceScreen.d.ts +15 -0
  100. package/dist/domains/localization/domain/repositories/ILocalizationRepository.d.ts +16 -0
  101. package/dist/domains/localization/index.d.ts +16 -0
  102. package/dist/domains/localization/infrastructure/components/LanguageSwitcher.d.ts +19 -0
  103. package/dist/domains/localization/infrastructure/components/LanguageSwitcher.styles.d.ts +37 -0
  104. package/dist/domains/localization/infrastructure/components/useLanguageNavigation.d.ts +4 -0
  105. package/dist/domains/localization/infrastructure/components/useLanguageSwitcher.d.ts +13 -0
  106. package/dist/domains/localization/infrastructure/config/DeviceLocale.d.ts +10 -0
  107. package/dist/domains/localization/infrastructure/config/I18nInitializer.d.ts +14 -0
  108. package/dist/domains/localization/infrastructure/config/LanguageQuery.d.ts +10 -0
  109. package/dist/domains/localization/infrastructure/config/LocaleMapping.d.ts +5 -0
  110. package/dist/domains/localization/infrastructure/config/NamespaceResolver.d.ts +11 -0
  111. package/dist/domains/localization/infrastructure/config/ResourceBuilder.d.ts +10 -0
  112. package/dist/domains/localization/infrastructure/config/TranslationLoader.d.ts +16 -0
  113. package/dist/domains/localization/infrastructure/config/constants/defaultLanguages.d.ts +6 -0
  114. package/dist/domains/localization/infrastructure/config/i18n.d.ts +7 -0
  115. package/dist/domains/localization/infrastructure/config/languages.d.ts +7 -0
  116. package/dist/domains/localization/infrastructure/hooks/useLanguageSelection.d.ts +11 -0
  117. package/dist/domains/localization/infrastructure/hooks/useLocalization.d.ts +12 -0
  118. package/dist/domains/localization/infrastructure/hooks/useTranslation.d.ts +23 -0
  119. package/dist/domains/localization/infrastructure/repository/LanguageRepository.d.ts +18 -0
  120. package/dist/domains/localization/infrastructure/storage/LanguageInitializer.d.ts +20 -0
  121. package/dist/domains/localization/infrastructure/storage/LanguageSwitcher.d.ts +16 -0
  122. package/dist/domains/localization/infrastructure/storage/LocalizationStore.d.ts +6 -0
  123. package/dist/domains/localization/infrastructure/storage/localizationStoreUtils.d.ts +44 -0
  124. package/dist/domains/localization/infrastructure/storage/types/Language.d.ts +12 -0
  125. package/dist/domains/localization/infrastructure/storage/types/LocalizationState.d.ts +22 -0
  126. package/dist/domains/localization/presentation/components/LanguageItem.d.ts +23 -0
  127. package/dist/domains/localization/presentation/components/LanguageItem.styles.d.ts +30 -0
  128. package/dist/domains/localization/presentation/components/LanguageSection.d.ts +15 -0
  129. package/dist/domains/localization/presentation/providers/LocalizationManager.d.ts +12 -0
  130. package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.d.ts +7 -0
  131. package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.styles.d.ts +7 -0
  132. package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.types.d.ts +26 -0
  133. package/dist/domains/notifications/index.d.ts +46 -0
  134. package/dist/domains/notifications/infrastructure/config/notificationsConfig.d.ts +19 -0
  135. package/dist/domains/notifications/infrastructure/hooks/useNotificationSettings.d.ts +8 -0
  136. package/dist/domains/notifications/infrastructure/services/NotificationBadgeManager.d.ts +4 -0
  137. package/dist/domains/notifications/infrastructure/services/NotificationManager.d.ts +23 -0
  138. package/dist/domains/notifications/infrastructure/services/NotificationPermissions.d.ts +5 -0
  139. package/dist/domains/notifications/infrastructure/services/NotificationScheduler.d.ts +7 -0
  140. package/dist/domains/notifications/infrastructure/services/NotificationService.d.ts +31 -0
  141. package/dist/domains/notifications/infrastructure/services/types.d.ts +147 -0
  142. package/dist/domains/notifications/infrastructure/storage/UnifiedNotificationStore.d.ts +42 -0
  143. package/dist/domains/notifications/infrastructure/utils/idGenerator.d.ts +6 -0
  144. package/dist/domains/notifications/infrastructure/utils/triggerBuilder.d.ts +6 -0
  145. package/dist/domains/notifications/presentation/components/NotificationsSection.d.ts +16 -0
  146. package/dist/domains/notifications/presentation/components/RemindersNavRow.d.ts +12 -0
  147. package/dist/domains/notifications/presentation/components/RemindersNavRow.styles.d.ts +34 -0
  148. package/dist/domains/notifications/presentation/components/SettingRow.d.ts +14 -0
  149. package/dist/domains/notifications/presentation/hooks/useNotificationSettingsUI.d.ts +13 -0
  150. package/dist/domains/notifications/presentation/hooks/useTimePicker.d.ts +21 -0
  151. package/dist/domains/notifications/presentation/screens/NotificationSettingsScreen.d.ts +12 -0
  152. package/dist/domains/notifications/presentation/screens/NotificationSettingsScreen.styles.d.ts +26 -0
  153. package/dist/domains/notifications/presentation/screens/NotificationsScreen.d.ts +18 -0
  154. package/dist/domains/notifications/quietHours/infrastructure/hooks/useQuietHoursActions.d.ts +13 -0
  155. package/dist/domains/notifications/quietHours/presentation/components/QuietHoursCard.d.ts +14 -0
  156. package/dist/domains/notifications/reminders/infrastructure/config/reminderPresets.d.ts +24 -0
  157. package/dist/domains/notifications/reminders/infrastructure/hooks/useReminderActions.d.ts +11 -0
  158. package/dist/domains/notifications/reminders/presentation/components/FormButton.d.ts +12 -0
  159. package/dist/domains/notifications/reminders/presentation/components/FrequencySelector.d.ts +14 -0
  160. package/dist/domains/notifications/reminders/presentation/components/ReminderForm.constants.d.ts +28 -0
  161. package/dist/domains/notifications/reminders/presentation/components/ReminderForm.d.ts +7 -0
  162. package/dist/domains/notifications/reminders/presentation/components/ReminderForm.styles.d.ts +31 -0
  163. package/dist/domains/notifications/reminders/presentation/components/ReminderItem.d.ts +20 -0
  164. package/dist/domains/notifications/reminders/presentation/components/TimePresetSelector.d.ts +20 -0
  165. package/dist/domains/notifications/reminders/presentation/components/WeekdaySelector.d.ts +11 -0
  166. package/dist/domains/notifications/reminders/presentation/screens/ReminderListScreen.d.ts +13 -0
  167. package/dist/domains/rating/application/services/RatingService.d.ts +33 -0
  168. package/dist/domains/rating/domain/entities/Rating.d.ts +15 -0
  169. package/dist/domains/rating/domain/entities/RatingConfig.d.ts +120 -0
  170. package/dist/domains/rating/index.d.ts +12 -0
  171. package/dist/domains/rating/infrastructure/storage/RatingStorage.d.ts +50 -0
  172. package/dist/domains/rating/presentation/components/RatingPromptModal.d.ts +16 -0
  173. package/dist/domains/rating/presentation/components/StarRating.d.ts +13 -0
  174. package/dist/domains/rating/presentation/hooks/useAppRating.d.ts +9 -0
  175. package/dist/domains/video-tutorials/index.d.ts +18 -0
  176. package/dist/domains/video-tutorials/presentation/components/VideoTutorialCard.d.ts +13 -0
  177. package/dist/domains/video-tutorials/presentation/components/VideoTutorialSection.d.ts +25 -0
  178. package/dist/domains/video-tutorials/presentation/screens/VideoTutorialsScreen.d.ts +25 -0
  179. package/dist/domains/video-tutorials/types/index.d.ts +26 -0
  180. package/dist/index.d.ts +41 -0
  181. package/dist/infrastructure/repositories/SettingsRepository.d.ts +12 -0
  182. package/dist/infrastructure/services/SettingsService.d.ts +14 -0
  183. package/dist/infrastructure/utils/configFactory.d.ts +39 -0
  184. package/dist/infrastructure/utils/constants/textLimits.d.ts +16 -0
  185. package/dist/infrastructure/utils/sanitizers.d.ts +13 -0
  186. package/dist/infrastructure/utils/validation/core.d.ts +8 -0
  187. package/dist/infrastructure/utils/validation/formValidators.d.ts +26 -0
  188. package/dist/infrastructure/utils/validation/index.d.ts +5 -0
  189. package/dist/infrastructure/utils/validators.d.ts +21 -0
  190. package/dist/presentation/components/SettingsFooter.d.ts +7 -0
  191. package/dist/presentation/components/SettingsItemCard.d.ts +22 -0
  192. package/dist/presentation/components/SettingsNavigationItem.d.ts +67 -0
  193. package/dist/presentation/components/SettingsSection.d.ts +6 -0
  194. package/dist/presentation/components/settings/SettingsItemCardContent.d.ts +12 -0
  195. package/dist/presentation/components/settings/SettingsItemCardRightElement.d.ts +11 -0
  196. package/dist/presentation/components/settings/SettingsItemCardSection.d.ts +5 -0
  197. package/dist/presentation/hooks/mutations/useSettingsMutations.d.ts +20 -0
  198. package/dist/presentation/hooks/queries/useSettingsQuery.d.ts +7 -0
  199. package/dist/presentation/hooks/useSettings.d.ts +26 -0
  200. package/dist/presentation/hooks/useSettingsScreenConfig.d.ts +41 -0
  201. package/dist/presentation/navigation/SettingsStackNavigator.d.ts +9 -0
  202. package/dist/presentation/navigation/hooks/index.d.ts +5 -0
  203. package/dist/presentation/navigation/hooks/useNavigationHandlers.d.ts +14 -0
  204. package/dist/presentation/navigation/hooks/useSettingsNavigation.d.ts +22 -0
  205. package/dist/presentation/navigation/hooks/useSettingsScreens.d.ts +12 -0
  206. package/dist/presentation/navigation/types.d.ts +135 -0
  207. package/dist/presentation/navigation/utils/index.d.ts +5 -0
  208. package/dist/presentation/navigation/utils/navigationHelpers.d.ts +13 -0
  209. package/dist/presentation/navigation/utils/navigationTranslations.d.ts +35 -0
  210. package/dist/presentation/screens/AppearanceScreen.d.ts +6 -0
  211. package/dist/presentation/screens/SettingsScreen.d.ts +49 -0
  212. package/dist/presentation/screens/components/SettingsContent.d.ts +3 -0
  213. package/dist/presentation/screens/components/SettingsHeader.d.ts +8 -0
  214. package/dist/presentation/screens/components/sections/CustomSettingsList.d.ts +7 -0
  215. package/dist/presentation/screens/components/sections/FeatureSettingsSection.d.ts +13 -0
  216. package/dist/presentation/screens/components/sections/IdentitySettingsSection.d.ts +12 -0
  217. package/dist/presentation/screens/components/sections/ProfileSectionLoader.d.ts +17 -0
  218. package/dist/presentation/screens/components/sections/SupportSettingsSection.d.ts +13 -0
  219. package/dist/presentation/screens/components/types/SettingsContentProps.d.ts +47 -0
  220. package/dist/presentation/screens/components/utils/featureChecker.d.ts +10 -0
  221. package/dist/presentation/screens/hooks/useFeatureDetection.d.ts +28 -0
  222. package/dist/presentation/screens/hooks/useSettingsScreen.d.ts +36 -0
  223. package/dist/presentation/screens/types/BaseTypes.d.ts +11 -0
  224. package/dist/presentation/screens/types/ContentConfig.d.ts +76 -0
  225. package/dist/presentation/screens/types/CustomSection.d.ts +38 -0
  226. package/dist/presentation/screens/types/SettingsConfig.d.ts +122 -0
  227. package/dist/presentation/screens/types/SettingsTranslations.d.ts +159 -0
  228. package/dist/presentation/screens/types/UserFeatureConfig.d.ts +178 -0
  229. package/dist/presentation/screens/types/index.d.ts +11 -0
  230. package/dist/presentation/screens/utils/normalizeConfig.d.ts +68 -0
  231. package/dist/presentation/utils/accountConfigUtils.d.ts +34 -0
  232. package/dist/presentation/utils/config-creators/base-configs.d.ts +26 -0
  233. package/dist/presentation/utils/config-creators/feature-configs.d.ts +17 -0
  234. package/dist/presentation/utils/config-creators/index.d.ts +7 -0
  235. package/dist/presentation/utils/config-creators/support-configs.d.ts +19 -0
  236. package/dist/presentation/utils/config-creators/types.d.ts +20 -0
  237. package/dist/presentation/utils/faqTranslator.d.ts +3 -0
  238. package/dist/presentation/utils/index.d.ts +8 -0
  239. package/dist/presentation/utils/screenFactory.d.ts +26 -0
  240. package/dist/presentation/utils/settingsConfigFactory.d.ts +33 -0
  241. package/dist/presentation/utils/userProfileUtils.d.ts +20 -0
  242. package/dist/utils/appUtils.d.ts +4 -0
  243. package/dist/utils/devUtils.d.ts +31 -0
  244. package/dist/utils/errorUtils.d.ts +22 -0
  245. package/dist/utils/hooks/useAsyncStateUpdate.d.ts +35 -0
  246. package/dist/utils/hooks/useMountSafety.d.ts +1 -0
  247. package/package.json +1 -1
  248. package/src/domains/feedback/presentation/screens/FeatureRequestScreen.tsx +449 -0
  249. package/src/presentation/navigation/hooks/useSettingsScreens.ts +29 -9
  250. package/src/presentation/navigation/types.ts +1 -0
  251. package/src/presentation/screens/components/sections/SupportSettingsSection.tsx +1 -1
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Settings Navigation Types
3
+ */
4
+ import type React from 'react';
5
+ import type { SettingsConfig, CustomSettingsSection } from "../screens/types";
6
+ import type { DevSettingsProps } from "../../domains/dev";
7
+ import type { FAQCategory } from "../../domains/faqs";
8
+ /**
9
+ * App Info passed from main app (APP_INFO constant)
10
+ */
11
+ export interface AppInfo {
12
+ name: string;
13
+ appName?: string;
14
+ version: string;
15
+ description?: string;
16
+ developer?: string;
17
+ contactEmail?: string;
18
+ websiteUrl?: string;
19
+ websiteDisplay?: string;
20
+ moreAppsUrl?: string;
21
+ appStoreId?: string;
22
+ appStoreUrl?: string;
23
+ }
24
+ /**
25
+ * Legal URLs passed from main app (LEGAL_URLS constant)
26
+ */
27
+ export interface LegalUrls {
28
+ privacy: string;
29
+ terms: string;
30
+ eula?: string;
31
+ }
32
+ /**
33
+ * Navigation param list
34
+ */
35
+ export type SettingsStackParamList = {
36
+ SettingsMain: undefined;
37
+ Appearance: undefined;
38
+ About: undefined;
39
+ Legal: undefined;
40
+ Notifications: undefined;
41
+ FAQ: undefined;
42
+ LanguageSelection: undefined;
43
+ Gamification: undefined;
44
+ Account: undefined;
45
+ VideoTutorial: undefined;
46
+ FeatureRequest: undefined;
47
+ PasswordPrompt: {
48
+ onComplete: (password: string | null) => void;
49
+ title?: string;
50
+ message?: string;
51
+ confirmText?: string;
52
+ cancelText?: string;
53
+ };
54
+ };
55
+ /**
56
+ * User profile configuration
57
+ */
58
+ export interface UserProfileDisplay {
59
+ displayName?: string;
60
+ userId?: string;
61
+ isAnonymous?: boolean;
62
+ avatarUrl?: string;
63
+ accountSettingsRoute?: string;
64
+ onPress?: () => void;
65
+ anonymousDisplayName?: string;
66
+ avatarServiceUrl?: string;
67
+ }
68
+ /**
69
+ * Additional screen configuration
70
+ */
71
+ export interface AdditionalScreen {
72
+ name: string;
73
+ component?: React.ComponentType<unknown>;
74
+ children?: () => React.ReactElement;
75
+ options?: Record<string, unknown>;
76
+ }
77
+ /**
78
+ * FAQ Data passed from main app
79
+ */
80
+ export interface FAQData {
81
+ categories: FAQCategory[];
82
+ }
83
+ /**
84
+ * Account configuration — auth is an optional peer dependency.
85
+ * Defined locally so the main package does not require @umituz/react-native-auth.
86
+ */
87
+ export interface AccountConfig {
88
+ profile?: {
89
+ displayName?: string;
90
+ userId?: string;
91
+ isAnonymous?: boolean;
92
+ avatarUrl?: string;
93
+ accountSettingsRoute?: string;
94
+ benefits?: string[];
95
+ };
96
+ isAnonymous?: boolean;
97
+ editProfileText?: string;
98
+ onSignIn?: () => void;
99
+ PasswordPromptComponent?: React.ReactNode;
100
+ accountActions?: {
101
+ onLogout?: () => Promise<void>;
102
+ onDeleteAccount?: () => Promise<void>;
103
+ logoutText?: string;
104
+ logoutConfirmTitle?: string;
105
+ logoutConfirmMessage?: string;
106
+ cancelText?: string;
107
+ deleteAccountText?: string;
108
+ deleteConfirmTitle?: string;
109
+ deleteConfirmMessage?: string;
110
+ deleteErrorTitle?: string;
111
+ deleteErrorMessage?: string;
112
+ };
113
+ }
114
+ /**
115
+ * Settings Stack Navigator Props
116
+ */
117
+ export interface SettingsStackNavigatorProps {
118
+ appInfo: AppInfo;
119
+ legalUrls: LegalUrls;
120
+ faqData?: FAQData;
121
+ config?: SettingsConfig;
122
+ showUserProfile?: boolean;
123
+ userProfile?: UserProfileDisplay;
124
+ accountConfig?: AccountConfig;
125
+ additionalScreens?: AdditionalScreen[];
126
+ devSettings?: DevSettingsProps;
127
+ customSections?: CustomSettingsSection[];
128
+ showHeader?: boolean;
129
+ /** Show close button in header (useful for modal presentation) */
130
+ showCloseButton?: boolean;
131
+ /** Custom close handler */
132
+ onClose?: () => void;
133
+ gamificationConfig?: import("../../domains/gamification").GamificationSettingsConfig;
134
+ videoTutorialConfig?: import("../../domains/video-tutorials").VideoTutorialsScreenProps;
135
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Navigation Utilities
3
+ */
4
+ export { createRouteOrPressHandler } from './navigationHelpers';
5
+ export { createNotificationTranslations, createQuietHoursTranslations, createLegalScreenProps } from './navigationTranslations';
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Navigation Helper Utilities
3
+ * Type-safe navigation handling to eliminate type casting
4
+ */
5
+ import type { SettingsStackParamList } from '../types';
6
+ type NavigateFunction = <RouteName extends keyof SettingsStackParamList>(route: RouteName, params?: SettingsStackParamList[RouteName]) => void;
7
+ interface RouteOrPressConfig<T extends keyof SettingsStackParamList = keyof SettingsStackParamList> {
8
+ route?: T;
9
+ onPress?: () => void;
10
+ fallback?: T;
11
+ }
12
+ export declare const createRouteOrPressHandler: <T extends keyof SettingsStackParamList>(navigate: NavigateFunction, config: RouteOrPressConfig<T>) => () => void;
13
+ export {};
@@ -0,0 +1,35 @@
1
+ import type { SettingsTranslations } from "../../screens/types";
2
+ export declare const createNotificationTranslations: (translations?: SettingsTranslations["features"]) => {
3
+ screenTitle: string;
4
+ masterToggleTitle: string;
5
+ masterToggleDescription: string;
6
+ soundTitle: string;
7
+ soundDescription: string;
8
+ vibrationTitle: string;
9
+ vibrationDescription: string;
10
+ remindersTitle: string;
11
+ remindersDescription: string;
12
+ quietHoursTitle: string;
13
+ quietHoursDescription: string;
14
+ };
15
+ export declare const createQuietHoursTranslations: (translations?: SettingsTranslations["features"]) => {
16
+ title: string;
17
+ description: string;
18
+ startTimeLabel: string;
19
+ endTimeLabel: string;
20
+ enabledLabel: string;
21
+ };
22
+ export declare const createLegalScreenProps: (translations: SettingsTranslations["features"], handlePrivacyPress: () => void, handleTermsPress: () => void, handleEulaPress: () => void) => {
23
+ title: string;
24
+ description: string;
25
+ documentsHeader: string;
26
+ privacyTitle: string;
27
+ privacyDescription: string;
28
+ termsTitle: string;
29
+ termsDescription: string;
30
+ eulaTitle: string;
31
+ eulaDescription: string;
32
+ onPrivacyPress: () => void;
33
+ onTermsPress: () => void;
34
+ onEulaPress: () => void;
35
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Appearance Settings Screen
3
+ * Advanced appearance settings with theme customization and custom colors
4
+ * Now uses consolidated appearance domain
5
+ */
6
+ export { AppearanceScreen } from "../../domains/appearance/presentation/screens/AppearanceScreen";
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Settings Screen
3
+ * Presentation layer - Composition only, no business logic
4
+ */
5
+ import React from "react";
6
+ import type { SettingsConfig, CustomSettingsSection } from "./types";
7
+ import type { DevSettingsProps } from "../../domains/dev";
8
+ export interface SettingsScreenProps {
9
+ children?: React.ReactNode;
10
+ config?: SettingsConfig;
11
+ /** Show user profile header */
12
+ showUserProfile?: boolean;
13
+ /** User profile props */
14
+ userProfile?: {
15
+ displayName?: string;
16
+ userId?: string;
17
+ isAnonymous?: boolean;
18
+ avatarUrl?: string;
19
+ accountSettingsRoute?: string;
20
+ onPress?: () => void;
21
+ anonymousDisplayName?: string;
22
+ avatarServiceUrl?: string;
23
+ };
24
+ /** Show footer with version */
25
+ showFooter?: boolean;
26
+ /** Custom footer text (overrides appVersion) */
27
+ footerText?: string;
28
+ /** App version number from app config (e.g., "1.0.0") */
29
+ appVersion?: string;
30
+ /** Custom sections to render */
31
+ customSections?: CustomSettingsSection[];
32
+ /** Show close button in header */
33
+ showCloseButton?: boolean;
34
+ /** Custom close handler */
35
+ onClose?: () => void;
36
+ /** Feature detection options */
37
+ featureOptions?: {
38
+ notificationServiceAvailable?: boolean;
39
+ };
40
+ /** Dev settings (only shown in __DEV__ mode) */
41
+ devSettings?: DevSettingsProps;
42
+ /** Gamification configuration */
43
+ gamificationConfig?: import("../../domains/gamification").GamificationSettingsConfig;
44
+ /** Show header (default: true) */
45
+ showHeader?: boolean;
46
+ /** Password prompt modal component */
47
+ PasswordPromptComponent?: React.ReactNode;
48
+ }
49
+ export declare const SettingsScreen: React.FC<SettingsScreenProps>;
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ import type { SettingsContentProps } from "./types/SettingsContentProps";
3
+ export declare const SettingsContent: React.FC<SettingsContentProps>;
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ interface SettingsHeaderProps {
3
+ showCloseButton?: boolean;
4
+ onClose?: () => void;
5
+ title?: string;
6
+ }
7
+ export declare const SettingsHeader: React.FC<SettingsHeaderProps>;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import type { CustomSettingsSection } from "../../types";
3
+ interface CustomSettingsListProps {
4
+ customSections?: CustomSettingsSection[];
5
+ }
6
+ export declare const CustomSettingsList: React.FC<CustomSettingsListProps>;
7
+ export {};
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import type { NormalizedConfig } from "../../utils/normalizeConfig";
3
+ interface FeatureSettingsSectionProps {
4
+ normalizedConfig: NormalizedConfig;
5
+ features: {
6
+ appearance: boolean;
7
+ language: boolean;
8
+ notifications: boolean;
9
+ };
10
+ currentLanguage?: string;
11
+ }
12
+ export declare const FeatureSettingsSection: React.FC<FeatureSettingsSectionProps>;
13
+ export {};
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import type { NormalizedConfig } from "../../utils/normalizeConfig";
3
+ interface IdentitySettingsSectionProps {
4
+ normalizedConfig: NormalizedConfig;
5
+ features: {
6
+ about: boolean;
7
+ legal: boolean;
8
+ [key: string]: boolean;
9
+ };
10
+ }
11
+ export declare const IdentitySettingsSection: React.FC<IdentitySettingsSectionProps>;
12
+ export {};
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ export interface ProfileSectionLoaderProps {
3
+ userProfile?: {
4
+ displayName?: string;
5
+ userId?: string;
6
+ isAnonymous?: boolean;
7
+ avatarUrl?: string;
8
+ accountSettingsRoute?: string;
9
+ onPress?: () => void;
10
+ benefits?: string[];
11
+ };
12
+ translations?: {
13
+ anonymousName?: string;
14
+ signIn?: string;
15
+ };
16
+ }
17
+ export declare const ProfileSectionLoader: React.FC<ProfileSectionLoaderProps>;
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import type { NormalizedConfig } from "../../utils/normalizeConfig";
3
+ interface SupportSettingsSectionProps {
4
+ features: {
5
+ feedback: boolean;
6
+ rating: boolean;
7
+ faqs: boolean;
8
+ [key: string]: boolean;
9
+ };
10
+ normalizedConfig: NormalizedConfig;
11
+ }
12
+ export declare const SupportSettingsSection: React.FC<SupportSettingsSectionProps>;
13
+ export {};
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Settings Content Component Props
3
+ */
4
+ import type { NormalizedConfig } from "../../utils/normalizeConfig";
5
+ import type { CustomSettingsSection } from "../../types";
6
+ import type { DevSettingsProps } from "../../../../domains/dev";
7
+ import type { GamificationSettingsConfig } from "../../../../domains/gamification";
8
+ export interface SettingsContentFeatures {
9
+ [key: string]: boolean;
10
+ appearance: boolean;
11
+ language: boolean;
12
+ notifications: boolean;
13
+ about: boolean;
14
+ legal: boolean;
15
+ disclaimer: boolean;
16
+ userProfile: boolean;
17
+ feedback: boolean;
18
+ rating: boolean;
19
+ faqs: boolean;
20
+ subscription: boolean;
21
+ wallet: boolean;
22
+ gamification: boolean;
23
+ videoTutorial: boolean;
24
+ }
25
+ export interface SettingsContentUserProfile {
26
+ displayName?: string;
27
+ userId?: string;
28
+ isAnonymous?: boolean;
29
+ avatarUrl?: string;
30
+ accountSettingsRoute?: string;
31
+ onPress?: () => void;
32
+ anonymousDisplayName?: string;
33
+ avatarServiceUrl?: string;
34
+ }
35
+ export interface SettingsContentProps {
36
+ normalizedConfig: NormalizedConfig;
37
+ features: SettingsContentFeatures;
38
+ showUserProfile?: boolean;
39
+ userProfile?: SettingsContentUserProfile;
40
+ showFooter?: boolean;
41
+ footerText?: string;
42
+ appVersion?: string;
43
+ customSections?: CustomSettingsSection[];
44
+ emptyStateText?: string;
45
+ devSettings?: DevSettingsProps;
46
+ gamificationConfig?: GamificationSettingsConfig;
47
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Feature Checker Utilities
3
+ * Centralized logic for checking if features are enabled
4
+ */
5
+ import type { SettingsContentFeatures } from "../types/SettingsContentProps";
6
+ import type { CustomSettingsSection } from "../../types";
7
+ /**
8
+ * Check if any settings features are enabled
9
+ */
10
+ export declare function hasAnyFeaturesEnabled(features: SettingsContentFeatures, customSections: CustomSettingsSection[]): boolean;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Feature Detection Hook
3
+ * Single Responsibility: Detect which features should be shown
4
+ */
5
+ import type { NormalizedConfig } from "../utils/normalizeConfig";
6
+ /**
7
+ * Hook to detect which features should be shown
8
+ */
9
+ export declare function useFeatureDetection(normalizedConfig: NormalizedConfig, navigation: {
10
+ navigate: (route: string) => void;
11
+ } | null, options?: {
12
+ notificationServiceAvailable?: boolean;
13
+ }): {
14
+ appearance: boolean;
15
+ language: boolean;
16
+ notifications: boolean;
17
+ about: boolean;
18
+ legal: boolean;
19
+ disclaimer: boolean;
20
+ userProfile: boolean;
21
+ feedback: boolean;
22
+ rating: boolean;
23
+ faqs: boolean;
24
+ subscription: boolean;
25
+ wallet: boolean;
26
+ gamification: boolean;
27
+ videoTutorial: boolean;
28
+ };
@@ -0,0 +1,36 @@
1
+ /**
2
+ * useSettingsScreen Hook
3
+ * Refactored: Extracted business logic from SettingsScreen component
4
+ */
5
+ import type { SettingsConfig } from "../types";
6
+ export interface UseSettingsScreenParams {
7
+ config?: SettingsConfig;
8
+ showUserProfile?: boolean;
9
+ featureOptions?: {
10
+ notificationServiceAvailable?: boolean;
11
+ };
12
+ appVersion?: string;
13
+ onClose?: () => void;
14
+ }
15
+ export declare function useSettingsScreen({ config, showUserProfile, featureOptions, appVersion: providedVersion, onClose, }: UseSettingsScreenParams): {
16
+ normalizedConfig: import("../utils/normalizeConfig").NormalizedConfig;
17
+ features: {
18
+ appearance: boolean;
19
+ language: boolean;
20
+ notifications: boolean;
21
+ about: boolean;
22
+ legal: boolean;
23
+ disclaimer: boolean;
24
+ userProfile: boolean;
25
+ feedback: boolean;
26
+ rating: boolean;
27
+ faqs: boolean;
28
+ subscription: boolean;
29
+ wallet: boolean;
30
+ gamification: boolean;
31
+ videoTutorial: boolean;
32
+ };
33
+ shouldShowUserProfile: boolean;
34
+ appVersion: string;
35
+ handleClose: () => void;
36
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Base Feature Types
3
+ * Core types for feature visibility and configuration
4
+ */
5
+ /**
6
+ * Feature visibility configuration
7
+ * - true: Always show (if navigation screen exists)
8
+ * - false: Never show
9
+ * - 'auto': Automatically detect (check if navigation screen exists and package is available)
10
+ */
11
+ export type FeatureVisibility = boolean | "auto";
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Content Feature Configuration Types
3
+ * Types for content-related features (About, Legal, Disclaimer)
4
+ */
5
+ import type { FeatureVisibility } from "./BaseTypes";
6
+ import type { AppearanceTexts } from "../../../domains/appearance/types";
7
+ /**
8
+ * Base configuration interface for content features
9
+ */
10
+ interface BaseContentConfig {
11
+ /** Show section */
12
+ enabled?: FeatureVisibility;
13
+ /** Custom navigation route */
14
+ route?: string;
15
+ /** Custom navigation handler (overrides route) */
16
+ onPress?: () => void;
17
+ /** Custom title */
18
+ title?: string;
19
+ /** Custom description */
20
+ description?: string;
21
+ /** Custom icon name (Ionicons) */
22
+ icon?: string;
23
+ /** Custom section title for grouping */
24
+ sectionTitle?: string;
25
+ }
26
+ /**
27
+ * About Settings Configuration
28
+ */
29
+ export interface AboutConfig extends BaseContentConfig {
30
+ /** Default route name when no custom route provided */
31
+ defaultRoute?: string;
32
+ }
33
+ /**
34
+ * Legal Settings Configuration
35
+ */
36
+ export interface LegalConfig extends BaseContentConfig {
37
+ /** Default route name when no custom route provided */
38
+ defaultRoute?: string;
39
+ }
40
+ /**
41
+ * Disclaimer Settings Configuration
42
+ */
43
+ export interface DisclaimerConfig extends BaseContentConfig {
44
+ }
45
+ /**
46
+ * Appearance Settings Configuration
47
+ */
48
+ export interface AppearanceConfig extends BaseContentConfig {
49
+ /** Show theme toggle */
50
+ showTheme?: boolean;
51
+ /** Default route name when no custom route provided */
52
+ defaultRoute?: string;
53
+ /** Appearance screen texts (theme mode labels, descriptions, etc.) */
54
+ texts?: AppearanceTexts;
55
+ }
56
+ /**
57
+ * Language Settings Configuration
58
+ */
59
+ export interface LanguageConfig extends BaseContentConfig {
60
+ /** Default language display when no language is detected */
61
+ defaultLanguageDisplay?: string;
62
+ }
63
+ /**
64
+ * Notifications Settings Configuration
65
+ */
66
+ export interface NotificationsConfig extends BaseContentConfig {
67
+ /** Show notification toggle switch */
68
+ showToggle?: boolean;
69
+ /** Initial toggle value */
70
+ initialValue?: boolean;
71
+ /** Toggle change handler */
72
+ onToggleChange?: (value: boolean) => void;
73
+ /** Default route name when no custom route provided */
74
+ defaultRoute?: string;
75
+ }
76
+ export {};
@@ -0,0 +1,38 @@
1
+ import type { ReactNode } from "react";
2
+ import type { IconName } from "@umituz/react-native-design-system/atoms";
3
+ /**
4
+ * Custom Settings Item
5
+ */
6
+ export interface CustomSettingsItem {
7
+ /** Item unique ID */
8
+ id: string;
9
+ /** Item title */
10
+ title: string;
11
+ /** Optional subtitle or description */
12
+ subtitle?: string;
13
+ /** Icon name (Ionicons) */
14
+ icon: IconName;
15
+ /** Press handler */
16
+ onPress: () => void;
17
+ /** Optional right icon (Ionicons) */
18
+ rightIcon?: IconName;
19
+ /** Optional icon color */
20
+ iconColor?: string;
21
+ /** Optional icon background color */
22
+ iconBgColor?: string;
23
+ }
24
+ /**
25
+ * Custom Settings Section
26
+ */
27
+ export interface CustomSettingsSection {
28
+ /** Section title */
29
+ title: string;
30
+ /** Section content (React nodes) - takes priority over items */
31
+ content?: ReactNode;
32
+ /** List of settings items to render */
33
+ items?: CustomSettingsItem[];
34
+ /** Section order (lower = higher in list) */
35
+ order?: number;
36
+ /** Section ID for identification */
37
+ id?: string;
38
+ }