@umituz/react-native-settings 5.3.36 → 5.3.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account.d.ts +27 -0
- package/dist/application/ports/ISettingsRepository.d.ts +45 -0
- package/dist/domains/about/domain/entities/AppInfo.d.ts +76 -0
- package/dist/domains/about/domain/repositories/IAboutRepository.d.ts +19 -0
- package/dist/domains/about/index.d.ts +10 -0
- package/dist/domains/about/infrastructure/repositories/AboutRepository.d.ts +18 -0
- package/dist/domains/about/presentation/components/AboutContent.d.ts +14 -0
- package/dist/domains/about/presentation/components/AboutHeader.d.ts +21 -0
- package/dist/domains/about/presentation/components/AboutSection.d.ts +14 -0
- package/dist/domains/about/presentation/components/AboutSettingItem.d.ts +39 -0
- package/dist/domains/about/presentation/hooks/useAboutInfo.d.ts +2 -0
- package/dist/domains/about/presentation/hooks/useAboutInfo.types.d.ts +29 -0
- package/dist/domains/about/presentation/screens/AboutScreen.d.ts +21 -0
- package/dist/domains/about/presentation/screens/AboutScreenContent.d.ts +15 -0
- package/dist/domains/about/utils/AppInfoFactory.d.ts +9 -0
- package/dist/domains/appearance/data/colorPalettes.d.ts +25 -0
- package/dist/domains/appearance/hooks/useAppearance.d.ts +11 -0
- package/dist/domains/appearance/hooks/useAppearanceActions.d.ts +9 -0
- package/dist/domains/appearance/index.d.ts +9 -0
- package/dist/domains/appearance/presentation/components/AppearanceHeader.d.ts +18 -0
- package/dist/domains/appearance/presentation/components/AppearancePreview.d.ts +21 -0
- package/dist/domains/appearance/presentation/components/AppearanceSection.d.ts +16 -0
- package/dist/domains/appearance/presentation/components/ColorPicker.d.ts +15 -0
- package/dist/domains/appearance/presentation/components/CustomColorsSection.d.ts +25 -0
- package/dist/domains/appearance/presentation/components/ThemeModeSection.d.ts +24 -0
- package/dist/domains/appearance/presentation/components/ThemeOption.d.ts +20 -0
- package/dist/domains/appearance/presentation/components/index.d.ts +6 -0
- package/dist/domains/appearance/presentation/screens/AppearanceScreen.d.ts +16 -0
- package/dist/domains/appearance/types/index.d.ts +48 -0
- package/dist/domains/cloud-sync/index.d.ts +6 -0
- package/dist/domains/cloud-sync/presentation/components/CloudSyncSetting.d.ts +14 -0
- package/dist/domains/dev/index.d.ts +14 -0
- package/dist/domains/dev/presentation/components/DevSettingsSection.d.ts +34 -0
- package/dist/domains/dev/presentation/components/EnvViewerSetting.d.ts +20 -0
- package/dist/domains/dev/presentation/components/StorageClearSetting.d.ts +13 -0
- package/dist/domains/dev/presentation/screens/EnvViewerScreen.d.ts +12 -0
- package/dist/domains/dev/types.d.ts +22 -0
- package/dist/domains/disclaimer/index.d.ts +17 -0
- package/dist/domains/disclaimer/presentation/components/DisclaimerCard.d.ts +14 -0
- package/dist/domains/disclaimer/presentation/components/DisclaimerModal.d.ts +12 -0
- package/dist/domains/disclaimer/presentation/components/DisclaimerSetting.d.ts +34 -0
- package/dist/domains/disclaimer/presentation/screens/DisclaimerScreen.d.ts +27 -0
- package/dist/domains/faqs/domain/entities/FAQEntity.d.ts +21 -0
- package/dist/domains/faqs/domain/services/FAQSearchService.d.ts +12 -0
- package/dist/domains/faqs/index.d.ts +8 -0
- package/dist/domains/faqs/presentation/components/FAQCategory.d.ts +21 -0
- package/dist/domains/faqs/presentation/components/FAQEmptyState.d.ts +20 -0
- package/dist/domains/faqs/presentation/components/FAQItem.d.ts +24 -0
- package/dist/domains/faqs/presentation/components/FAQSearchBar.d.ts +18 -0
- package/dist/domains/faqs/presentation/components/index.d.ts +11 -0
- package/dist/domains/faqs/presentation/hooks/index.d.ts +5 -0
- package/dist/domains/faqs/presentation/hooks/useFAQExpansion.d.ts +12 -0
- package/dist/domains/faqs/presentation/hooks/useFAQSearch.d.ts +12 -0
- package/dist/domains/faqs/presentation/screens/FAQScreen.d.ts +33 -0
- package/dist/domains/feedback/domain/entities/FeedbackEntity.d.ts +25 -0
- package/dist/domains/feedback/domain/repositories/IFeedbackRepository.d.ts +20 -0
- package/dist/domains/feedback/index.d.ts +10 -0
- package/dist/domains/feedback/presentation/components/FeedbackForm.d.ts +7 -0
- package/dist/domains/feedback/presentation/components/FeedbackForm.styles.d.ts +48 -0
- package/dist/domains/feedback/presentation/components/FeedbackFormProps.d.ts +26 -0
- package/dist/domains/feedback/presentation/components/FeedbackModal.d.ts +23 -0
- package/dist/domains/feedback/presentation/components/SupportSection.d.ts +62 -0
- package/dist/domains/feedback/presentation/hooks/useFeedbackForm.d.ts +19 -0
- package/dist/domains/feedback/presentation/screens/FeatureRequestScreen.d.ts +2 -0
- package/dist/domains/gamification/components/AchievementCard.d.ts +23 -0
- package/dist/domains/gamification/components/AchievementItem.d.ts +7 -0
- package/dist/domains/gamification/components/AchievementToast.d.ts +21 -0
- package/dist/domains/gamification/components/GamificationScreen/AchievementsList.d.ts +17 -0
- package/dist/domains/gamification/components/GamificationScreen/GamificationScreen.d.ts +11 -0
- package/dist/domains/gamification/components/GamificationScreen/GamificationScreenWithConfig.d.ts +11 -0
- package/dist/domains/gamification/components/GamificationScreen/StatsGrid.d.ts +16 -0
- package/dist/domains/gamification/components/GamificationScreen/index.d.ts +17 -0
- package/dist/domains/gamification/components/GamificationScreen/styles.d.ts +40 -0
- package/dist/domains/gamification/components/GamificationScreen/types.d.ts +42 -0
- package/dist/domains/gamification/components/LevelProgress.d.ts +27 -0
- package/dist/domains/gamification/components/PointsBadge.d.ts +16 -0
- package/dist/domains/gamification/components/StatsCard.d.ts +20 -0
- package/dist/domains/gamification/components/StreakDisplay.d.ts +21 -0
- package/dist/domains/gamification/components/index.d.ts +14 -0
- package/dist/domains/gamification/components/styles/achievementItemStyles.d.ts +71 -0
- package/dist/domains/gamification/components/types/AchievementItemProps.d.ts +22 -0
- package/dist/domains/gamification/hooks/useGamification.d.ts +22 -0
- package/dist/domains/gamification/index.d.ts +13 -0
- package/dist/domains/gamification/store/gamificationStore.d.ts +6 -0
- package/dist/domains/gamification/types/index.d.ts +99 -0
- package/dist/domains/gamification/utils/calculations.d.ts +10 -0
- package/dist/domains/legal/domain/entities/LegalConfig.d.ts +28 -0
- package/dist/domains/legal/domain/services/ContentValidationService.d.ts +19 -0
- package/dist/domains/legal/domain/services/StyleCacheService.d.ts +38 -0
- package/dist/domains/legal/domain/services/UrlHandlerService.d.ts +32 -0
- package/dist/domains/legal/index.d.ts +8 -0
- package/dist/domains/legal/presentation/components/LegalDocumentsList.d.ts +21 -0
- package/dist/domains/legal/presentation/components/LegalItem.d.ts +35 -0
- package/dist/domains/legal/presentation/components/LegalScreenHeader.d.ts +12 -0
- package/dist/domains/legal/presentation/components/LegalSection.d.ts +14 -0
- package/dist/domains/legal/presentation/screens/LegalContentScreen.d.ts +19 -0
- package/dist/domains/legal/presentation/screens/LegalScreen.d.ts +24 -0
- package/dist/domains/legal/presentation/screens/PrivacyPolicyScreen.d.ts +15 -0
- package/dist/domains/legal/presentation/screens/TermsOfServiceScreen.d.ts +15 -0
- package/dist/domains/localization/domain/repositories/ILocalizationRepository.d.ts +16 -0
- package/dist/domains/localization/index.d.ts +16 -0
- package/dist/domains/localization/infrastructure/components/LanguageSwitcher.d.ts +19 -0
- package/dist/domains/localization/infrastructure/components/LanguageSwitcher.styles.d.ts +37 -0
- package/dist/domains/localization/infrastructure/components/useLanguageNavigation.d.ts +4 -0
- package/dist/domains/localization/infrastructure/components/useLanguageSwitcher.d.ts +13 -0
- package/dist/domains/localization/infrastructure/config/DeviceLocale.d.ts +10 -0
- package/dist/domains/localization/infrastructure/config/I18nInitializer.d.ts +14 -0
- package/dist/domains/localization/infrastructure/config/LanguageQuery.d.ts +10 -0
- package/dist/domains/localization/infrastructure/config/LocaleMapping.d.ts +5 -0
- package/dist/domains/localization/infrastructure/config/NamespaceResolver.d.ts +11 -0
- package/dist/domains/localization/infrastructure/config/ResourceBuilder.d.ts +10 -0
- package/dist/domains/localization/infrastructure/config/TranslationLoader.d.ts +16 -0
- package/dist/domains/localization/infrastructure/config/constants/defaultLanguages.d.ts +6 -0
- package/dist/domains/localization/infrastructure/config/i18n.d.ts +7 -0
- package/dist/domains/localization/infrastructure/config/languages.d.ts +7 -0
- package/dist/domains/localization/infrastructure/hooks/useLanguageSelection.d.ts +11 -0
- package/dist/domains/localization/infrastructure/hooks/useLocalization.d.ts +12 -0
- package/dist/domains/localization/infrastructure/hooks/useTranslation.d.ts +23 -0
- package/dist/domains/localization/infrastructure/repository/LanguageRepository.d.ts +18 -0
- package/dist/domains/localization/infrastructure/storage/LanguageInitializer.d.ts +20 -0
- package/dist/domains/localization/infrastructure/storage/LanguageSwitcher.d.ts +16 -0
- package/dist/domains/localization/infrastructure/storage/LocalizationStore.d.ts +6 -0
- package/dist/domains/localization/infrastructure/storage/localizationStoreUtils.d.ts +44 -0
- package/dist/domains/localization/infrastructure/storage/types/Language.d.ts +12 -0
- package/dist/domains/localization/infrastructure/storage/types/LocalizationState.d.ts +22 -0
- package/dist/domains/localization/presentation/components/LanguageItem.d.ts +23 -0
- package/dist/domains/localization/presentation/components/LanguageItem.styles.d.ts +30 -0
- package/dist/domains/localization/presentation/components/LanguageSection.d.ts +15 -0
- package/dist/domains/localization/presentation/providers/LocalizationManager.d.ts +12 -0
- package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.d.ts +7 -0
- package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.styles.d.ts +7 -0
- package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.types.d.ts +26 -0
- package/dist/domains/notifications/index.d.ts +46 -0
- package/dist/domains/notifications/infrastructure/config/notificationsConfig.d.ts +19 -0
- package/dist/domains/notifications/infrastructure/hooks/useNotificationSettings.d.ts +8 -0
- package/dist/domains/notifications/infrastructure/services/NotificationBadgeManager.d.ts +4 -0
- package/dist/domains/notifications/infrastructure/services/NotificationManager.d.ts +23 -0
- package/dist/domains/notifications/infrastructure/services/NotificationPermissions.d.ts +5 -0
- package/dist/domains/notifications/infrastructure/services/NotificationScheduler.d.ts +7 -0
- package/dist/domains/notifications/infrastructure/services/NotificationService.d.ts +31 -0
- package/dist/domains/notifications/infrastructure/services/types.d.ts +147 -0
- package/dist/domains/notifications/infrastructure/storage/UnifiedNotificationStore.d.ts +42 -0
- package/dist/domains/notifications/infrastructure/utils/idGenerator.d.ts +6 -0
- package/dist/domains/notifications/infrastructure/utils/triggerBuilder.d.ts +6 -0
- package/dist/domains/notifications/presentation/components/NotificationsSection.d.ts +16 -0
- package/dist/domains/notifications/presentation/components/RemindersNavRow.d.ts +12 -0
- package/dist/domains/notifications/presentation/components/RemindersNavRow.styles.d.ts +34 -0
- package/dist/domains/notifications/presentation/components/SettingRow.d.ts +14 -0
- package/dist/domains/notifications/presentation/hooks/useNotificationSettingsUI.d.ts +13 -0
- package/dist/domains/notifications/presentation/hooks/useTimePicker.d.ts +21 -0
- package/dist/domains/notifications/presentation/screens/NotificationSettingsScreen.d.ts +12 -0
- package/dist/domains/notifications/presentation/screens/NotificationSettingsScreen.styles.d.ts +26 -0
- package/dist/domains/notifications/presentation/screens/NotificationsScreen.d.ts +18 -0
- package/dist/domains/notifications/quietHours/infrastructure/hooks/useQuietHoursActions.d.ts +13 -0
- package/dist/domains/notifications/quietHours/presentation/components/QuietHoursCard.d.ts +14 -0
- package/dist/domains/notifications/reminders/infrastructure/config/reminderPresets.d.ts +24 -0
- package/dist/domains/notifications/reminders/infrastructure/hooks/useReminderActions.d.ts +11 -0
- package/dist/domains/notifications/reminders/presentation/components/FormButton.d.ts +12 -0
- package/dist/domains/notifications/reminders/presentation/components/FrequencySelector.d.ts +14 -0
- package/dist/domains/notifications/reminders/presentation/components/ReminderForm.constants.d.ts +28 -0
- package/dist/domains/notifications/reminders/presentation/components/ReminderForm.d.ts +7 -0
- package/dist/domains/notifications/reminders/presentation/components/ReminderForm.styles.d.ts +31 -0
- package/dist/domains/notifications/reminders/presentation/components/ReminderItem.d.ts +20 -0
- package/dist/domains/notifications/reminders/presentation/components/TimePresetSelector.d.ts +20 -0
- package/dist/domains/notifications/reminders/presentation/components/WeekdaySelector.d.ts +11 -0
- package/dist/domains/notifications/reminders/presentation/screens/ReminderListScreen.d.ts +13 -0
- package/dist/domains/rating/application/services/RatingService.d.ts +33 -0
- package/dist/domains/rating/domain/entities/Rating.d.ts +15 -0
- package/dist/domains/rating/domain/entities/RatingConfig.d.ts +120 -0
- package/dist/domains/rating/index.d.ts +12 -0
- package/dist/domains/rating/infrastructure/storage/RatingStorage.d.ts +50 -0
- package/dist/domains/rating/presentation/components/RatingPromptModal.d.ts +16 -0
- package/dist/domains/rating/presentation/components/StarRating.d.ts +13 -0
- package/dist/domains/rating/presentation/hooks/useAppRating.d.ts +9 -0
- package/dist/domains/video-tutorials/index.d.ts +18 -0
- package/dist/domains/video-tutorials/presentation/components/VideoTutorialCard.d.ts +13 -0
- package/dist/domains/video-tutorials/presentation/components/VideoTutorialSection.d.ts +25 -0
- package/dist/domains/video-tutorials/presentation/screens/VideoTutorialsScreen.d.ts +25 -0
- package/dist/domains/video-tutorials/types/index.d.ts +26 -0
- package/dist/index.d.ts +41 -0
- package/dist/infrastructure/repositories/SettingsRepository.d.ts +12 -0
- package/dist/infrastructure/services/SettingsService.d.ts +14 -0
- package/dist/infrastructure/utils/configFactory.d.ts +39 -0
- package/dist/infrastructure/utils/constants/textLimits.d.ts +16 -0
- package/dist/infrastructure/utils/sanitizers.d.ts +13 -0
- package/dist/infrastructure/utils/validation/core.d.ts +8 -0
- package/dist/infrastructure/utils/validation/formValidators.d.ts +26 -0
- package/dist/infrastructure/utils/validation/index.d.ts +5 -0
- package/dist/infrastructure/utils/validators.d.ts +21 -0
- package/dist/presentation/components/SettingsFooter.d.ts +7 -0
- package/dist/presentation/components/SettingsItemCard.d.ts +22 -0
- package/dist/presentation/components/SettingsNavigationItem.d.ts +67 -0
- package/dist/presentation/components/SettingsSection.d.ts +6 -0
- package/dist/presentation/components/settings/SettingsItemCardContent.d.ts +12 -0
- package/dist/presentation/components/settings/SettingsItemCardRightElement.d.ts +11 -0
- package/dist/presentation/components/settings/SettingsItemCardSection.d.ts +5 -0
- package/dist/presentation/hooks/mutations/useSettingsMutations.d.ts +20 -0
- package/dist/presentation/hooks/queries/useSettingsQuery.d.ts +7 -0
- package/dist/presentation/hooks/useSettings.d.ts +26 -0
- package/dist/presentation/hooks/useSettingsScreenConfig.d.ts +41 -0
- package/dist/presentation/navigation/SettingsStackNavigator.d.ts +9 -0
- package/dist/presentation/navigation/hooks/index.d.ts +5 -0
- package/dist/presentation/navigation/hooks/useNavigationHandlers.d.ts +14 -0
- package/dist/presentation/navigation/hooks/useSettingsNavigation.d.ts +22 -0
- package/dist/presentation/navigation/hooks/useSettingsScreens.d.ts +12 -0
- package/dist/presentation/navigation/types.d.ts +135 -0
- package/dist/presentation/navigation/utils/index.d.ts +5 -0
- package/dist/presentation/navigation/utils/navigationHelpers.d.ts +13 -0
- package/dist/presentation/navigation/utils/navigationTranslations.d.ts +35 -0
- package/dist/presentation/screens/AppearanceScreen.d.ts +6 -0
- package/dist/presentation/screens/SettingsScreen.d.ts +49 -0
- package/dist/presentation/screens/components/SettingsContent.d.ts +3 -0
- package/dist/presentation/screens/components/SettingsHeader.d.ts +8 -0
- package/dist/presentation/screens/components/sections/CustomSettingsList.d.ts +7 -0
- package/dist/presentation/screens/components/sections/FeatureSettingsSection.d.ts +13 -0
- package/dist/presentation/screens/components/sections/IdentitySettingsSection.d.ts +12 -0
- package/dist/presentation/screens/components/sections/ProfileSectionLoader.d.ts +17 -0
- package/dist/presentation/screens/components/sections/SupportSettingsSection.d.ts +13 -0
- package/dist/presentation/screens/components/types/SettingsContentProps.d.ts +47 -0
- package/dist/presentation/screens/components/utils/featureChecker.d.ts +10 -0
- package/dist/presentation/screens/hooks/useFeatureDetection.d.ts +28 -0
- package/dist/presentation/screens/hooks/useSettingsScreen.d.ts +36 -0
- package/dist/presentation/screens/types/BaseTypes.d.ts +11 -0
- package/dist/presentation/screens/types/ContentConfig.d.ts +76 -0
- package/dist/presentation/screens/types/CustomSection.d.ts +38 -0
- package/dist/presentation/screens/types/SettingsConfig.d.ts +122 -0
- package/dist/presentation/screens/types/SettingsTranslations.d.ts +159 -0
- package/dist/presentation/screens/types/UserFeatureConfig.d.ts +178 -0
- package/dist/presentation/screens/types/index.d.ts +11 -0
- package/dist/presentation/screens/utils/normalizeConfig.d.ts +68 -0
- package/dist/presentation/utils/accountConfigUtils.d.ts +34 -0
- package/dist/presentation/utils/config-creators/base-configs.d.ts +26 -0
- package/dist/presentation/utils/config-creators/feature-configs.d.ts +17 -0
- package/dist/presentation/utils/config-creators/index.d.ts +7 -0
- package/dist/presentation/utils/config-creators/support-configs.d.ts +19 -0
- package/dist/presentation/utils/config-creators/types.d.ts +20 -0
- package/dist/presentation/utils/faqTranslator.d.ts +3 -0
- package/dist/presentation/utils/index.d.ts +8 -0
- package/dist/presentation/utils/screenFactory.d.ts +26 -0
- package/dist/presentation/utils/settingsConfigFactory.d.ts +33 -0
- package/dist/presentation/utils/userProfileUtils.d.ts +20 -0
- package/dist/utils/appUtils.d.ts +4 -0
- package/dist/utils/devUtils.d.ts +31 -0
- package/dist/utils/errorUtils.d.ts +22 -0
- package/dist/utils/hooks/useAsyncStateUpdate.d.ts +35 -0
- package/dist/utils/hooks/useMountSafety.d.ts +1 -0
- package/package.json +1 -1
- package/src/domains/feedback/presentation/screens/FeatureRequestScreen.tsx +449 -0
- package/src/presentation/navigation/hooks/useSettingsScreens.ts +29 -9
- package/src/presentation/navigation/types.ts +1 -0
- package/src/presentation/screens/components/sections/SupportSettingsSection.tsx +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useNotificationSettingsUI Hook
|
|
3
|
+
* Handles all business logic for notification settings screen
|
|
4
|
+
*/
|
|
5
|
+
export declare const useNotificationSettingsUI: () => {
|
|
6
|
+
preferences: import("../..").NotificationPreferences;
|
|
7
|
+
quietHours: import("../..").QuietHoursConfig;
|
|
8
|
+
isLoading: boolean;
|
|
9
|
+
handleMasterToggle: (value: boolean) => Promise<void>;
|
|
10
|
+
handleSoundToggle: (value: boolean) => Promise<void>;
|
|
11
|
+
handleVibrationToggle: (value: boolean) => Promise<void>;
|
|
12
|
+
handleQuietHoursToggle: (value: boolean) => Promise<void>;
|
|
13
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useTimePicker Hook
|
|
3
|
+
* Encapsulates DateTimePicker logic for notification settings
|
|
4
|
+
*/
|
|
5
|
+
import type { QuietHoursConfig } from '../../infrastructure/services/types';
|
|
6
|
+
export type PickerMode = 'start' | 'end' | null;
|
|
7
|
+
export interface UseTimePickerParams {
|
|
8
|
+
quietHours: QuietHoursConfig;
|
|
9
|
+
onStartTimeChange: (hours: number, minutes: number) => void;
|
|
10
|
+
onEndTimeChange: (hours: number, minutes: number) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface TimePickerHandlers {
|
|
13
|
+
pickerMode: PickerMode;
|
|
14
|
+
handleStartTimePress: () => void;
|
|
15
|
+
handleEndTimePress: () => void;
|
|
16
|
+
handleTimeChange: (event: {
|
|
17
|
+
type: string;
|
|
18
|
+
}, selectedDate?: Date) => void;
|
|
19
|
+
getPickerDate: () => Date;
|
|
20
|
+
}
|
|
21
|
+
export declare const useTimePicker: ({ quietHours, onStartTimeChange, onEndTimeChange, }: UseTimePickerParams) => TimePickerHandlers;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NotificationSettingsScreen
|
|
3
|
+
* Clean presentation-only screen for notification settings
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import type { NotificationSettingsTranslations, QuietHoursTranslations } from '../../infrastructure/services/types';
|
|
7
|
+
export interface NotificationSettingsScreenProps {
|
|
8
|
+
translations: NotificationSettingsTranslations;
|
|
9
|
+
quietHoursTranslations: QuietHoursTranslations;
|
|
10
|
+
onHapticFeedback?: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const NotificationSettingsScreen: React.FC<NotificationSettingsScreenProps>;
|
package/dist/domains/notifications/presentation/screens/NotificationSettingsScreen.styles.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NotificationSettingsScreen Styles
|
|
3
|
+
* Extracted styles for better organization and maintainability
|
|
4
|
+
*/
|
|
5
|
+
import type { DesignTokens } from '@umituz/react-native-design-system/theme';
|
|
6
|
+
export declare const createStyles: (tokens: DesignTokens) => {
|
|
7
|
+
container: {
|
|
8
|
+
flex: number;
|
|
9
|
+
padding: number;
|
|
10
|
+
};
|
|
11
|
+
loadingContainer: {
|
|
12
|
+
flex: number;
|
|
13
|
+
justifyContent: "center";
|
|
14
|
+
alignItems: "center";
|
|
15
|
+
};
|
|
16
|
+
card: {
|
|
17
|
+
marginBottom: number;
|
|
18
|
+
padding: number;
|
|
19
|
+
backgroundColor: string;
|
|
20
|
+
};
|
|
21
|
+
divider: {
|
|
22
|
+
height: number;
|
|
23
|
+
backgroundColor: string;
|
|
24
|
+
marginVertical: number;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notifications Screen - Dynamic and Reusable
|
|
3
|
+
*
|
|
4
|
+
* A clean notification settings screen that accepts all text and configuration
|
|
5
|
+
* as props to make it completely reusable across different applications.
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
export interface NotificationsScreenProps {
|
|
9
|
+
translations: {
|
|
10
|
+
title: string;
|
|
11
|
+
description: string;
|
|
12
|
+
loadingText?: string;
|
|
13
|
+
};
|
|
14
|
+
iconName?: string;
|
|
15
|
+
iconColor?: string;
|
|
16
|
+
testID?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const NotificationsScreen: React.FC<NotificationsScreenProps>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useQuietHoursActions Hook
|
|
3
|
+
* Manages quiet hours configuration
|
|
4
|
+
*/
|
|
5
|
+
import type { QuietHoursConfig } from '../../../infrastructure/services/types';
|
|
6
|
+
export declare const useQuietHoursActions: () => {
|
|
7
|
+
quietHours: QuietHoursConfig;
|
|
8
|
+
setQuietHoursEnabled: (enabled: boolean) => Promise<void>;
|
|
9
|
+
setStartTime: (hour: number, minute: number) => Promise<void>;
|
|
10
|
+
setEndTime: (hour: number, minute: number) => Promise<void>;
|
|
11
|
+
setQuietHours: (config: QuietHoursConfig) => Promise<void>;
|
|
12
|
+
isInQuietHours: () => boolean;
|
|
13
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QuietHoursCard Component
|
|
3
|
+
* Displays and manages quiet hours settings
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import type { QuietHoursConfig, QuietHoursTranslations } from '../../../infrastructure/services/types';
|
|
7
|
+
export interface QuietHoursCardProps {
|
|
8
|
+
config: QuietHoursConfig;
|
|
9
|
+
translations: QuietHoursTranslations;
|
|
10
|
+
onToggle: (enabled: boolean) => void;
|
|
11
|
+
onStartTimePress: () => void;
|
|
12
|
+
onEndTimePress: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare const QuietHoursCard: React.FC<QuietHoursCardProps>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reminder Presets Configuration
|
|
3
|
+
* Default time presets and frequency options for reminders
|
|
4
|
+
*/
|
|
5
|
+
import type { TimePreset, ReminderFrequency } from '../../../infrastructure/services/types';
|
|
6
|
+
export declare const DEFAULT_TIME_PRESETS: TimePreset[];
|
|
7
|
+
export interface FrequencyOption {
|
|
8
|
+
id: ReminderFrequency;
|
|
9
|
+
labelKey: string;
|
|
10
|
+
iconName: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const FREQUENCY_OPTIONS: FrequencyOption[];
|
|
13
|
+
export interface WeekdayOption {
|
|
14
|
+
id: number;
|
|
15
|
+
labelKey: string;
|
|
16
|
+
shortLabelKey: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const WEEKDAY_OPTIONS: WeekdayOption[];
|
|
19
|
+
export declare const getTimePresetById: (id: string) => TimePreset | undefined;
|
|
20
|
+
export declare const formatTime: (hour: number, minute: number) => string;
|
|
21
|
+
export declare const parseTime: (timeString: string) => {
|
|
22
|
+
hour: number;
|
|
23
|
+
minute: number;
|
|
24
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useReminderActions Hook
|
|
3
|
+
* Handles reminder CRUD operations with notification scheduling
|
|
4
|
+
*/
|
|
5
|
+
import type { Reminder, CreateReminderInput, UpdateReminderInput } from '../../../infrastructure/services/types';
|
|
6
|
+
export declare const useReminderActions: () => {
|
|
7
|
+
createReminder: (input: CreateReminderInput) => Promise<Reminder>;
|
|
8
|
+
editReminder: (id: string, input: UpdateReminderInput) => Promise<void>;
|
|
9
|
+
removeReminder: (id: string) => Promise<void>;
|
|
10
|
+
toggleReminderEnabled: (id: string) => Promise<void>;
|
|
11
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FormButton Component
|
|
3
|
+
* Simple button for forms
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export interface FormButtonProps {
|
|
7
|
+
label: string;
|
|
8
|
+
onPress: () => void;
|
|
9
|
+
variant?: 'primary' | 'secondary';
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const FormButton: React.FC<FormButtonProps>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FrequencySelector Component
|
|
3
|
+
* Allows selection of reminder frequency
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import type { ReminderFrequency } from '../../../infrastructure/services/types';
|
|
7
|
+
import type { FrequencyOption } from '../../infrastructure/config/reminderPresets';
|
|
8
|
+
export interface FrequencySelectorProps {
|
|
9
|
+
options: FrequencyOption[];
|
|
10
|
+
selectedFrequency: ReminderFrequency;
|
|
11
|
+
onSelect: (frequency: ReminderFrequency) => void;
|
|
12
|
+
getLabel: (labelKey: string) => string;
|
|
13
|
+
}
|
|
14
|
+
export declare const FrequencySelector: React.FC<FrequencySelectorProps>;
|
package/dist/domains/notifications/reminders/presentation/components/ReminderForm.constants.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Reminder, CreateReminderInput, TimePreset } from '../../../infrastructure/services/types';
|
|
2
|
+
export declare const DEFAULT_HOUR = 9;
|
|
3
|
+
export declare const DEFAULT_MINUTE = 0;
|
|
4
|
+
export declare const DEFAULT_WEEKDAY = 2;
|
|
5
|
+
export declare const MAX_TITLE_LENGTH = 100;
|
|
6
|
+
export declare const MAX_BODY_LENGTH = 500;
|
|
7
|
+
export interface ReminderFormTranslations {
|
|
8
|
+
titleLabel: string;
|
|
9
|
+
titlePlaceholder: string;
|
|
10
|
+
bodyLabel: string;
|
|
11
|
+
bodyPlaceholder: string;
|
|
12
|
+
timeLabel: string;
|
|
13
|
+
frequencyLabel: string;
|
|
14
|
+
weekdayLabel: string;
|
|
15
|
+
saveButton: string;
|
|
16
|
+
cancelButton: string;
|
|
17
|
+
customTimeLabel: string;
|
|
18
|
+
getPresetLabel: (key: string) => string;
|
|
19
|
+
getFrequencyLabel: (key: string) => string;
|
|
20
|
+
getWeekdayLabel: (key: string) => string;
|
|
21
|
+
}
|
|
22
|
+
export interface ReminderFormProps {
|
|
23
|
+
initialData?: Reminder;
|
|
24
|
+
translations: ReminderFormTranslations;
|
|
25
|
+
onSave: (data: CreateReminderInput) => void;
|
|
26
|
+
onCancel: () => void;
|
|
27
|
+
timePresets?: TimePreset[];
|
|
28
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { useAppDesignTokens } from '@umituz/react-native-design-system/theme';
|
|
2
|
+
export declare const createReminderFormStyles: (tokens: ReturnType<typeof useAppDesignTokens>) => {
|
|
3
|
+
container: {
|
|
4
|
+
flex: number;
|
|
5
|
+
padding: number;
|
|
6
|
+
backgroundColor: string;
|
|
7
|
+
};
|
|
8
|
+
section: {
|
|
9
|
+
marginBottom: number;
|
|
10
|
+
};
|
|
11
|
+
label: {
|
|
12
|
+
color: string;
|
|
13
|
+
marginBottom: number;
|
|
14
|
+
};
|
|
15
|
+
input: {
|
|
16
|
+
backgroundColor: string;
|
|
17
|
+
borderRadius: number;
|
|
18
|
+
padding: number;
|
|
19
|
+
fontSize: number;
|
|
20
|
+
color: string;
|
|
21
|
+
};
|
|
22
|
+
multilineInput: {
|
|
23
|
+
minHeight: number;
|
|
24
|
+
textAlignVertical: "top";
|
|
25
|
+
};
|
|
26
|
+
buttonRow: {
|
|
27
|
+
flexDirection: "row";
|
|
28
|
+
gap: number;
|
|
29
|
+
marginTop: number;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReminderItem Component
|
|
3
|
+
* Displays a single reminder with toggle and actions
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import type { Reminder } from '../../../infrastructure/services/types';
|
|
7
|
+
export interface ReminderItemTranslations {
|
|
8
|
+
frequencyOnce: string;
|
|
9
|
+
frequencyDaily: string;
|
|
10
|
+
frequencyWeekly: string;
|
|
11
|
+
frequencyMonthly: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ReminderItemProps {
|
|
14
|
+
reminder: Reminder;
|
|
15
|
+
translations: ReminderItemTranslations;
|
|
16
|
+
onToggle: (id: string) => void;
|
|
17
|
+
onEdit: (reminder: Reminder) => void;
|
|
18
|
+
onDelete: (id: string) => void;
|
|
19
|
+
}
|
|
20
|
+
export declare const ReminderItem: React.FC<ReminderItemProps>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TimePresetSelector Component
|
|
3
|
+
* Allows selection of preset times or custom time
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import type { TimePreset } from '../../../infrastructure/services/types';
|
|
7
|
+
export interface TimePresetSelectorProps {
|
|
8
|
+
presets: TimePreset[];
|
|
9
|
+
selectedPresetId?: string;
|
|
10
|
+
customTime?: {
|
|
11
|
+
hour: number;
|
|
12
|
+
minute: number;
|
|
13
|
+
};
|
|
14
|
+
onSelectPreset: (preset: TimePreset) => void;
|
|
15
|
+
onSelectCustom: () => void;
|
|
16
|
+
getPresetLabel: (labelKey: string) => string;
|
|
17
|
+
customLabel: string;
|
|
18
|
+
isCustomSelected: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare const TimePresetSelector: React.FC<TimePresetSelectorProps>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WeekdaySelector Component
|
|
3
|
+
* Allows selection of a weekday for weekly reminders
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export interface WeekdaySelectorProps {
|
|
7
|
+
selectedWeekday: number;
|
|
8
|
+
onSelect: (weekday: number) => void;
|
|
9
|
+
getLabel: (key: string) => string;
|
|
10
|
+
}
|
|
11
|
+
export declare const WeekdaySelector: React.FC<WeekdaySelectorProps>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReminderListScreen
|
|
3
|
+
* Displays list of reminders with add, edit, delete functionality
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import type { Reminder, ReminderTranslations } from '../../../infrastructure/services/types';
|
|
7
|
+
export interface ReminderListScreenProps {
|
|
8
|
+
translations: ReminderTranslations;
|
|
9
|
+
onAddPress: () => void;
|
|
10
|
+
onEditPress: (reminder: Reminder) => void;
|
|
11
|
+
maxReminders?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare const ReminderListScreen: React.FC<ReminderListScreenProps>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rating Service
|
|
3
|
+
* Core business logic for app rating system
|
|
4
|
+
*/
|
|
5
|
+
import type { RatingConfig, RatingState } from "../../domain/entities/RatingConfig";
|
|
6
|
+
/**
|
|
7
|
+
* Track an event occurrence
|
|
8
|
+
*/
|
|
9
|
+
export declare function trackEvent(eventType: string): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Check if prompt should be shown based on criteria
|
|
12
|
+
*/
|
|
13
|
+
export declare function shouldShowPrompt(config: RatingConfig): Promise<boolean>;
|
|
14
|
+
/**
|
|
15
|
+
* Mark that prompt was shown to user
|
|
16
|
+
*/
|
|
17
|
+
export declare function markPromptShown(eventType: string): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Mark that user has rated the app
|
|
20
|
+
*/
|
|
21
|
+
export declare function markRated(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Mark that user permanently dismissed the prompt
|
|
24
|
+
*/
|
|
25
|
+
export declare function markDismissed(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Get current rating state for event type
|
|
28
|
+
*/
|
|
29
|
+
export declare function getState(eventType: string): Promise<RatingState>;
|
|
30
|
+
/**
|
|
31
|
+
* Reset rating data (for testing or specific event type)
|
|
32
|
+
*/
|
|
33
|
+
export declare function reset(eventType?: string): Promise<void>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type RatingValue = 0 | 1 | 2 | 3 | 4 | 5;
|
|
2
|
+
export interface Rating {
|
|
3
|
+
id: string;
|
|
4
|
+
userId: string;
|
|
5
|
+
entityId: string;
|
|
6
|
+
entityType: string;
|
|
7
|
+
value: RatingValue;
|
|
8
|
+
createdAt: string;
|
|
9
|
+
updatedAt: string;
|
|
10
|
+
}
|
|
11
|
+
export interface RatingStats {
|
|
12
|
+
average: number;
|
|
13
|
+
count: number;
|
|
14
|
+
distribution: Record<RatingValue, number>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rating Configuration
|
|
3
|
+
* Types and interfaces for app rating system
|
|
4
|
+
*/
|
|
5
|
+
import type React from "react";
|
|
6
|
+
/**
|
|
7
|
+
* Rating prompt configuration
|
|
8
|
+
*/
|
|
9
|
+
export interface RatingConfig {
|
|
10
|
+
/**
|
|
11
|
+
* Type of event to track (e.g., "ai_generation", "onboarding_completed")
|
|
12
|
+
*/
|
|
13
|
+
eventType: string;
|
|
14
|
+
/**
|
|
15
|
+
* Minimum number of events before showing prompt
|
|
16
|
+
* @default 3
|
|
17
|
+
*/
|
|
18
|
+
minEventCount?: number;
|
|
19
|
+
/**
|
|
20
|
+
* Cooldown period in days before showing prompt again
|
|
21
|
+
* @default 90
|
|
22
|
+
*/
|
|
23
|
+
cooldownDays?: number;
|
|
24
|
+
/**
|
|
25
|
+
* App name to display in prompt
|
|
26
|
+
*/
|
|
27
|
+
appName?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Custom translations for the prompt
|
|
30
|
+
*/
|
|
31
|
+
translations?: RatingTranslations;
|
|
32
|
+
/**
|
|
33
|
+
* Callback when user gives positive feedback
|
|
34
|
+
*/
|
|
35
|
+
onPositiveFeedback?: () => void | Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Callback when user gives negative feedback
|
|
38
|
+
*/
|
|
39
|
+
onNegativeFeedback?: () => void | Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Callback after prompt is shown
|
|
42
|
+
*/
|
|
43
|
+
onPromptShown?: () => void | Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Callback when prompt is dismissed
|
|
46
|
+
*/
|
|
47
|
+
onPromptDismissed?: () => void | Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Custom translations for rating prompt
|
|
51
|
+
*/
|
|
52
|
+
export interface RatingTranslations {
|
|
53
|
+
title: string;
|
|
54
|
+
message: string;
|
|
55
|
+
positiveButton: string;
|
|
56
|
+
negativeButton: string;
|
|
57
|
+
laterButton?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Rating state stored in AsyncStorage
|
|
61
|
+
*/
|
|
62
|
+
export interface RatingState {
|
|
63
|
+
/**
|
|
64
|
+
* Event count for specific event type
|
|
65
|
+
*/
|
|
66
|
+
eventCount: number;
|
|
67
|
+
/**
|
|
68
|
+
* Last time prompt was shown (ISO date string)
|
|
69
|
+
*/
|
|
70
|
+
lastPromptDate: string | null;
|
|
71
|
+
/**
|
|
72
|
+
* Whether user has rated the app
|
|
73
|
+
*/
|
|
74
|
+
hasRated: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Whether user permanently dismissed the prompt
|
|
77
|
+
*/
|
|
78
|
+
dismissed: boolean;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Result of useAppRating hook
|
|
82
|
+
*/
|
|
83
|
+
export interface UseAppRatingResult {
|
|
84
|
+
/**
|
|
85
|
+
* Track an event (e.g., generation completed)
|
|
86
|
+
*/
|
|
87
|
+
trackEvent: () => Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Check if should show prompt and show it automatically
|
|
90
|
+
*/
|
|
91
|
+
checkAndShow: () => Promise<boolean>;
|
|
92
|
+
/**
|
|
93
|
+
* Manually check if criteria is met (without showing)
|
|
94
|
+
*/
|
|
95
|
+
shouldShow: () => Promise<boolean>;
|
|
96
|
+
/**
|
|
97
|
+
* Manually show the rating prompt
|
|
98
|
+
*/
|
|
99
|
+
showPrompt: () => Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Reset all rating data (for testing)
|
|
102
|
+
*/
|
|
103
|
+
reset: () => Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Get current rating state
|
|
106
|
+
*/
|
|
107
|
+
getState: () => Promise<RatingState>;
|
|
108
|
+
/**
|
|
109
|
+
* Whether prompt is currently visible
|
|
110
|
+
*/
|
|
111
|
+
isVisible: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Modal component to render in your screen
|
|
114
|
+
*/
|
|
115
|
+
modal: React.ReactNode;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Default rating configuration
|
|
119
|
+
*/
|
|
120
|
+
export declare const DEFAULT_RATING_CONFIG: Required<Omit<RatingConfig, "onPositiveFeedback" | "onNegativeFeedback" | "onPromptShown" | "onPromptDismissed">>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rating Domain
|
|
3
|
+
* Star ratings, user reviews, statistics, and app store rating prompts
|
|
4
|
+
*/
|
|
5
|
+
export type { RatingValue, Rating, RatingStats, } from './domain/entities/Rating';
|
|
6
|
+
export type { RatingConfig, RatingState, RatingTranslations, UseAppRatingResult, } from './domain/entities/RatingConfig';
|
|
7
|
+
export { DEFAULT_RATING_CONFIG } from './domain/entities/RatingConfig';
|
|
8
|
+
export { StarRating } from './presentation/components/StarRating';
|
|
9
|
+
export type { StarRatingProps } from './presentation/components/StarRating';
|
|
10
|
+
export { RatingPromptModal } from './presentation/components/RatingPromptModal';
|
|
11
|
+
export type { RatingPromptModalProps } from './presentation/components/RatingPromptModal';
|
|
12
|
+
export { useAppRating } from './presentation/hooks/useAppRating';
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rating Storage Repository
|
|
3
|
+
* Storage layer for rating system using design system storageRepository
|
|
4
|
+
*/
|
|
5
|
+
import type { RatingState } from "../../domain/entities/RatingConfig";
|
|
6
|
+
/**
|
|
7
|
+
* Get event count for specific event type
|
|
8
|
+
*/
|
|
9
|
+
export declare function getEventCount(eventType: string): Promise<number>;
|
|
10
|
+
/**
|
|
11
|
+
* Set event count for specific event type
|
|
12
|
+
*/
|
|
13
|
+
export declare function setEventCount(eventType: string, count: number): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Increment event count for specific event type.
|
|
16
|
+
* Chains operations per-key to prevent concurrent read-modify-write races.
|
|
17
|
+
*/
|
|
18
|
+
export declare function incrementEventCount(eventType: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Get last prompt date for specific event type
|
|
21
|
+
*/
|
|
22
|
+
export declare function getLastPromptDate(eventType: string): Promise<string | null>;
|
|
23
|
+
/**
|
|
24
|
+
* Set last prompt date for specific event type
|
|
25
|
+
*/
|
|
26
|
+
export declare function setLastPromptDate(eventType: string, date: string): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Check if user has rated the app
|
|
29
|
+
*/
|
|
30
|
+
export declare function getHasRated(): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Set whether user has rated the app
|
|
33
|
+
*/
|
|
34
|
+
export declare function setHasRated(value: boolean): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Check if user permanently dismissed the prompt
|
|
37
|
+
*/
|
|
38
|
+
export declare function getDismissed(): Promise<boolean>;
|
|
39
|
+
/**
|
|
40
|
+
* Set whether user permanently dismissed the prompt
|
|
41
|
+
*/
|
|
42
|
+
export declare function setDismissed(value: boolean): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Get complete rating state for specific event type
|
|
45
|
+
*/
|
|
46
|
+
export declare function getRatingState(eventType: string): Promise<RatingState>;
|
|
47
|
+
/**
|
|
48
|
+
* Reset rating data for specific event type or all data
|
|
49
|
+
*/
|
|
50
|
+
export declare function reset(eventType?: string): Promise<void>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rating Prompt Modal
|
|
3
|
+
* 2-step rating prompt: Custom modal → Native review prompt
|
|
4
|
+
*/
|
|
5
|
+
import React from "react";
|
|
6
|
+
import type { RatingTranslations } from "../../domain/entities/RatingConfig";
|
|
7
|
+
export interface RatingPromptModalProps {
|
|
8
|
+
visible: boolean;
|
|
9
|
+
onPositive: () => void;
|
|
10
|
+
onNegative: () => void;
|
|
11
|
+
onLater: () => void;
|
|
12
|
+
onDismiss: () => void;
|
|
13
|
+
translations?: RatingTranslations;
|
|
14
|
+
appName?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const RatingPromptModal: React.FC<RatingPromptModalProps>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ViewStyle } from "react-native";
|
|
3
|
+
export interface StarRatingProps {
|
|
4
|
+
rating: number;
|
|
5
|
+
maxRating?: number;
|
|
6
|
+
onRatingChange?: (rating: number) => void;
|
|
7
|
+
size?: number;
|
|
8
|
+
activeColor?: string;
|
|
9
|
+
inactiveColor?: string;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
style?: ViewStyle;
|
|
12
|
+
}
|
|
13
|
+
export declare const StarRating: React.FC<StarRatingProps>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useAppRating Hook
|
|
3
|
+
* React hook for app rating system
|
|
4
|
+
*/
|
|
5
|
+
import type { RatingConfig, UseAppRatingResult } from "../../domain/entities/RatingConfig";
|
|
6
|
+
/**
|
|
7
|
+
* App rating hook with 2-step prompt flow
|
|
8
|
+
*/
|
|
9
|
+
export declare function useAppRating(config: RatingConfig): UseAppRatingResult;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Video Tutorials Domain
|
|
3
|
+
*
|
|
4
|
+
* Props-based component - pass tutorials data from app config
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* import { VideoTutorialsScreen, VideoTutorialCard, VideoTutorial } from '@umituz/react-native-settings';
|
|
8
|
+
*
|
|
9
|
+
* <VideoTutorialsScreen
|
|
10
|
+
* tutorials={myTutorials}
|
|
11
|
+
* featuredTutorials={myFeaturedTutorials}
|
|
12
|
+
* onTutorialPress={(tutorial) => Linking.openURL(tutorial.videoUrl)}
|
|
13
|
+
* />
|
|
14
|
+
*/
|
|
15
|
+
export * from "./types";
|
|
16
|
+
export * from "./presentation/screens/VideoTutorialsScreen";
|
|
17
|
+
export * from "./presentation/components/VideoTutorialCard";
|
|
18
|
+
export * from "./presentation/components/VideoTutorialSection";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Video Tutorial Card Component
|
|
3
|
+
* Single Responsibility: Display individual video tutorial card
|
|
4
|
+
*/
|
|
5
|
+
import React from "react";
|
|
6
|
+
import type { VideoTutorial } from "../../types";
|
|
7
|
+
interface VideoTutorialCardProps {
|
|
8
|
+
readonly tutorial: VideoTutorial;
|
|
9
|
+
readonly onPress: () => void;
|
|
10
|
+
readonly horizontal?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const VideoTutorialCard: React.FC<VideoTutorialCardProps>;
|
|
13
|
+
export {};
|