@umituz/react-native-settings 5.3.37 → 5.3.39
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 +62 -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/components/FeedbackForm.styles.ts +26 -12
- package/src/domains/feedback/presentation/components/FeedbackForm.tsx +1 -1
- package/src/domains/feedback/presentation/screens/FeatureRequestScreen.tsx +450 -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,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,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,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,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
|
+
}
|