@umituz/react-native-settings 5.3.2 → 5.3.4
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/package.json +78 -18
- package/src/account.ts +4 -40
- package/src/domains/about/presentation/components/AboutContent.tsx +2 -1
- package/src/domains/about/presentation/components/AboutHeader.tsx +2 -1
- package/src/domains/about/presentation/components/AboutSettingItem.tsx +2 -1
- package/src/domains/about/presentation/screens/AboutScreen.tsx +4 -1
- package/src/domains/about/presentation/screens/AboutScreenContent.tsx +1 -1
- package/src/domains/appearance/hooks/useAppearance.ts +1 -1
- package/src/domains/appearance/hooks/useAppearanceActions.ts +1 -1
- package/src/domains/appearance/presentation/components/AppearanceHeader.tsx +2 -2
- package/src/domains/appearance/presentation/components/AppearancePreview.tsx +2 -2
- package/src/domains/appearance/presentation/components/ColorPicker.tsx +2 -5
- package/src/domains/appearance/presentation/components/CustomColorsSection.tsx +2 -2
- package/src/domains/appearance/presentation/components/ThemeModeSection.tsx +2 -2
- package/src/domains/appearance/presentation/components/ThemeOption.tsx +2 -2
- package/src/domains/appearance/presentation/screens/AppearanceScreen.tsx +3 -6
- package/src/domains/appearance/types/index.ts +1 -4
- package/src/domains/dev/presentation/components/DevSettingsSection.tsx +2 -1
- package/src/domains/dev/presentation/components/EnvViewerSetting.tsx +2 -1
- package/src/domains/dev/presentation/screens/EnvViewerScreen.tsx +4 -10
- package/src/domains/disclaimer/presentation/components/DisclaimerCard.tsx +2 -3
- package/src/domains/disclaimer/presentation/components/DisclaimerModal.tsx +3 -1
- package/src/domains/disclaimer/presentation/components/DisclaimerSetting.tsx +1 -1
- package/src/domains/disclaimer/presentation/screens/DisclaimerScreen.tsx +4 -9
- package/src/domains/faqs/presentation/components/FAQCategory.tsx +2 -1
- package/src/domains/faqs/presentation/components/FAQEmptyState.tsx +2 -1
- package/src/domains/faqs/presentation/components/FAQItem.tsx +2 -1
- package/src/domains/faqs/presentation/components/FAQSearchBar.tsx +2 -1
- package/src/domains/faqs/presentation/screens/FAQScreen.tsx +4 -1
- package/src/domains/feedback/presentation/components/FeedbackForm.styles.ts +1 -1
- package/src/domains/feedback/presentation/components/FeedbackForm.tsx +2 -2
- package/src/domains/feedback/presentation/components/FeedbackModal.tsx +4 -1
- package/src/domains/gamification/components/AchievementCard.tsx +3 -1
- package/src/domains/gamification/components/AchievementItem.tsx +2 -1
- package/src/domains/gamification/components/AchievementToast.tsx +2 -1
- package/src/domains/gamification/components/GamificationScreen/AchievementsList.tsx +1 -1
- package/src/domains/gamification/components/GamificationScreen/GamificationScreen.tsx +4 -1
- package/src/domains/gamification/components/GamificationScreen/StatsGrid.tsx +1 -1
- package/src/domains/gamification/components/LevelProgress.tsx +3 -1
- package/src/domains/gamification/components/PointsBadge.tsx +3 -1
- package/src/domains/gamification/components/StatsCard.tsx +3 -1
- package/src/domains/gamification/components/StreakDisplay.tsx +3 -1
- package/src/domains/gamification/store/gamificationStore.ts +1 -1
- package/src/domains/legal/domain/services/StyleCacheService.ts +1 -1
- package/src/domains/legal/presentation/components/LegalDocumentsList.tsx +2 -1
- package/src/domains/legal/presentation/components/LegalItem.tsx +1 -1
- package/src/domains/legal/presentation/components/LegalScreenHeader.tsx +2 -1
- package/src/domains/legal/presentation/screens/LegalContentScreen.tsx +4 -3
- package/src/domains/legal/presentation/screens/LegalScreen.tsx +2 -1
- package/src/domains/legal/presentation/screens/PrivacyPolicyScreen.tsx +1 -1
- package/src/domains/legal/presentation/screens/TermsOfServiceScreen.tsx +1 -1
- package/src/domains/localization/infrastructure/components/LanguageSwitcher.tsx +2 -1
- package/src/domains/localization/infrastructure/storage/LanguageInitializer.ts +1 -1
- package/src/domains/localization/infrastructure/storage/LanguageSwitcher.ts +1 -1
- package/src/domains/localization/infrastructure/storage/LocalizationStore.ts +1 -1
- package/src/domains/localization/presentation/components/LanguageItem.tsx +2 -1
- package/src/domains/localization/presentation/components/LanguageSection.tsx +3 -5
- package/src/domains/localization/presentation/screens/LanguageSelectionScreen.tsx +3 -7
- package/src/domains/notifications/infrastructure/hooks/useNotificationSettings.ts +1 -1
- package/src/domains/notifications/infrastructure/storage/UnifiedNotificationStore.ts +1 -1
- package/src/domains/notifications/presentation/components/RemindersNavRow.styles.ts +1 -1
- package/src/domains/notifications/presentation/components/RemindersNavRow.tsx +2 -2
- package/src/domains/notifications/presentation/components/SettingRow.tsx +2 -2
- package/src/domains/notifications/presentation/screens/NotificationSettingsScreen.styles.ts +1 -1
- package/src/domains/notifications/presentation/screens/NotificationSettingsScreen.tsx +4 -9
- package/src/domains/notifications/presentation/screens/NotificationsScreen.tsx +4 -13
- package/src/domains/notifications/quietHours/presentation/components/QuietHoursCard.tsx +2 -2
- package/src/domains/notifications/reminders/presentation/components/FormButton.tsx +2 -2
- package/src/domains/notifications/reminders/presentation/components/FrequencySelector.tsx +2 -2
- package/src/domains/notifications/reminders/presentation/components/ReminderForm.styles.ts +1 -1
- package/src/domains/notifications/reminders/presentation/components/ReminderForm.tsx +2 -2
- package/src/domains/notifications/reminders/presentation/components/ReminderItem.tsx +2 -2
- package/src/domains/notifications/reminders/presentation/components/TimePresetSelector.tsx +2 -2
- package/src/domains/notifications/reminders/presentation/components/WeekdaySelector.tsx +2 -2
- package/src/domains/notifications/reminders/presentation/screens/ReminderListScreen.tsx +4 -9
- package/src/domains/rating/infrastructure/storage/RatingStorage.ts +1 -1
- package/src/domains/rating/presentation/components/RatingPromptModal.tsx +3 -7
- package/src/domains/rating/presentation/components/StarRating.tsx +2 -1
- package/src/domains/video-tutorials/presentation/components/VideoTutorialCard.tsx +2 -1
- package/src/domains/video-tutorials/presentation/screens/VideoTutorialsScreen.tsx +4 -9
- package/src/index.ts +1 -3
- package/src/infrastructure/repositories/SettingsRepository.ts +1 -1
- package/src/presentation/components/SettingsFooter.tsx +1 -1
- package/src/presentation/components/SettingsItemCard.tsx +2 -5
- package/src/presentation/components/SettingsNavigationItem.tsx +1 -1
- package/src/presentation/components/SettingsSection.tsx +2 -1
- package/src/presentation/components/settings/SettingsItemCardContent.tsx +2 -1
- package/src/presentation/components/settings/SettingsItemCardRightElement.tsx +1 -1
- package/src/presentation/components/settings/SettingsItemCardSection.tsx +1 -1
- package/src/presentation/hooks/mutations/useSettingsMutations.ts +1 -1
- package/src/presentation/hooks/queries/useSettingsQuery.ts +1 -1
- package/src/presentation/hooks/useSettingsScreenConfig.ts +26 -51
- package/src/presentation/navigation/SettingsStackNavigator.tsx +1 -4
- package/src/presentation/navigation/hooks/useSettingsScreens.ts +4 -8
- package/src/presentation/navigation/types.ts +4 -38
- package/src/presentation/screens/SettingsScreen.tsx +1 -7
- package/src/presentation/screens/components/SettingsContent.tsx +2 -4
- package/src/presentation/screens/components/SettingsHeader.tsx +3 -1
- package/src/presentation/screens/components/sections/ProfileSectionLoader.tsx +6 -7
- package/src/presentation/screens/components/types/SettingsContentProps.ts +0 -2
- package/src/presentation/screens/hooks/useSettingsScreen.ts +1 -1
- package/src/presentation/screens/types/CustomSection.ts +1 -1
- package/src/presentation/utils/accountConfigUtils.ts +1 -1
- package/src/presentation/utils/screenFactory.ts +1 -1
package/package.json
CHANGED
|
@@ -1,26 +1,86 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umituz/react-native-settings",
|
|
3
|
-
"version": "5.3.
|
|
3
|
+
"version": "5.3.4",
|
|
4
4
|
"description": "Complete settings hub for React Native apps - consolidated package with settings, localization, about, legal, appearance, feedback, FAQs, rating, and gamification",
|
|
5
5
|
"main": "./src/index.ts",
|
|
6
6
|
"types": "./src/index.ts",
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"exports": {
|
|
9
|
-
".":
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"./
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"./
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
9
|
+
".": {
|
|
10
|
+
"react-native": "./src/index.ts",
|
|
11
|
+
"types": "./src/index.ts",
|
|
12
|
+
"default": "./src/index.ts"
|
|
13
|
+
},
|
|
14
|
+
"./localization": {
|
|
15
|
+
"react-native": "./src/domains/localization/index.ts",
|
|
16
|
+
"types": "./src/domains/localization/index.ts",
|
|
17
|
+
"default": "./src/domains/localization/index.ts"
|
|
18
|
+
},
|
|
19
|
+
"./appearance": {
|
|
20
|
+
"react-native": "./src/domains/appearance/index.ts",
|
|
21
|
+
"types": "./src/domains/appearance/index.ts",
|
|
22
|
+
"default": "./src/domains/appearance/index.ts"
|
|
23
|
+
},
|
|
24
|
+
"./feedback": {
|
|
25
|
+
"react-native": "./src/domains/feedback/index.ts",
|
|
26
|
+
"types": "./src/domains/feedback/index.ts",
|
|
27
|
+
"default": "./src/domains/feedback/index.ts"
|
|
28
|
+
},
|
|
29
|
+
"./rating": {
|
|
30
|
+
"react-native": "./src/domains/rating/index.ts",
|
|
31
|
+
"types": "./src/domains/rating/index.ts",
|
|
32
|
+
"default": "./src/domains/rating/index.ts"
|
|
33
|
+
},
|
|
34
|
+
"./gamification": {
|
|
35
|
+
"react-native": "./src/domains/gamification/index.ts",
|
|
36
|
+
"types": "./src/domains/gamification/index.ts",
|
|
37
|
+
"default": "./src/domains/gamification/index.ts"
|
|
38
|
+
},
|
|
39
|
+
"./notifications": {
|
|
40
|
+
"react-native": "./src/domains/notifications/index.ts",
|
|
41
|
+
"types": "./src/domains/notifications/index.ts",
|
|
42
|
+
"default": "./src/domains/notifications/index.ts"
|
|
43
|
+
},
|
|
44
|
+
"./about": {
|
|
45
|
+
"react-native": "./src/domains/about/index.ts",
|
|
46
|
+
"types": "./src/domains/about/index.ts",
|
|
47
|
+
"default": "./src/domains/about/index.ts"
|
|
48
|
+
},
|
|
49
|
+
"./legal": {
|
|
50
|
+
"react-native": "./src/domains/legal/index.ts",
|
|
51
|
+
"types": "./src/domains/legal/index.ts",
|
|
52
|
+
"default": "./src/domains/legal/index.ts"
|
|
53
|
+
},
|
|
54
|
+
"./faqs": {
|
|
55
|
+
"react-native": "./src/domains/faqs/index.ts",
|
|
56
|
+
"types": "./src/domains/faqs/index.ts",
|
|
57
|
+
"default": "./src/domains/faqs/index.ts"
|
|
58
|
+
},
|
|
59
|
+
"./disclaimer": {
|
|
60
|
+
"react-native": "./src/domains/disclaimer/index.ts",
|
|
61
|
+
"types": "./src/domains/disclaimer/index.ts",
|
|
62
|
+
"default": "./src/domains/disclaimer/index.ts"
|
|
63
|
+
},
|
|
64
|
+
"./cloud-sync": {
|
|
65
|
+
"react-native": "./src/domains/cloud-sync/index.ts",
|
|
66
|
+
"types": "./src/domains/cloud-sync/index.ts",
|
|
67
|
+
"default": "./src/domains/cloud-sync/index.ts"
|
|
68
|
+
},
|
|
69
|
+
"./dev": {
|
|
70
|
+
"react-native": "./src/domains/dev/index.ts",
|
|
71
|
+
"types": "./src/domains/dev/index.ts",
|
|
72
|
+
"default": "./src/domains/dev/index.ts"
|
|
73
|
+
},
|
|
74
|
+
"./video-tutorials": {
|
|
75
|
+
"react-native": "./src/domains/video-tutorials/index.ts",
|
|
76
|
+
"types": "./src/domains/video-tutorials/index.ts",
|
|
77
|
+
"default": "./src/domains/video-tutorials/index.ts"
|
|
78
|
+
},
|
|
79
|
+
"./account": {
|
|
80
|
+
"react-native": "./src/account.ts",
|
|
81
|
+
"types": "./src/account.ts",
|
|
82
|
+
"default": "./src/account.ts"
|
|
83
|
+
},
|
|
24
84
|
"./package.json": "./package.json"
|
|
25
85
|
},
|
|
26
86
|
"scripts": {
|
|
@@ -57,7 +117,6 @@
|
|
|
57
117
|
"url": "https://github.com/umituz/react-native-settings"
|
|
58
118
|
},
|
|
59
119
|
"peerDependencies": {
|
|
60
|
-
"firebase": ">=10.0.0",
|
|
61
120
|
"@expo/vector-icons": ">=14.0.0",
|
|
62
121
|
"@react-navigation/native": ">=6.0.0",
|
|
63
122
|
"@react-navigation/stack": ">=6.0.0",
|
|
@@ -69,6 +128,7 @@
|
|
|
69
128
|
"expo-localization": ">=16.0.0",
|
|
70
129
|
"expo-notifications": ">=0.28.0",
|
|
71
130
|
"expo-store-review": ">=8.0.0",
|
|
131
|
+
"firebase": ">=10.0.0",
|
|
72
132
|
"i18next": ">=23.0.0",
|
|
73
133
|
"react": ">=19.0.0",
|
|
74
134
|
"react-i18next": ">=15.0.0",
|
|
@@ -97,7 +157,7 @@
|
|
|
97
157
|
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
98
158
|
"@typescript-eslint/parser": "^7.18.0",
|
|
99
159
|
"@umituz/react-native-auth": "*",
|
|
100
|
-
"@umituz/react-native-design-system": "
|
|
160
|
+
"@umituz/react-native-design-system": "^4.25.34",
|
|
101
161
|
"@umituz/react-native-firebase": "^2.4.1",
|
|
102
162
|
"@umituz/react-native-sentry": "latest",
|
|
103
163
|
"eslint": "^8.57.0",
|
package/src/account.ts
CHANGED
|
@@ -19,12 +19,6 @@
|
|
|
19
19
|
* />
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
import { useMemo } from "react";
|
|
23
|
-
import { useAuth, useUserProfile, useAuthHandlers } from "@umituz/react-native-auth";
|
|
24
|
-
import { useSettingsScreenConfig } from './presentation/hooks/useSettingsScreenConfig';
|
|
25
|
-
import type { UseSettingsScreenConfigParams, SettingsScreenConfigResult } from './presentation/hooks/useSettingsScreenConfig';
|
|
26
|
-
import type { AppInfo } from './presentation/navigation/types';
|
|
27
|
-
|
|
28
22
|
// Auth components - inject these into SettingsStackNavigator props
|
|
29
23
|
export { AccountScreen, ProfileSection } from "@umituz/react-native-auth";
|
|
30
24
|
|
|
@@ -34,47 +28,17 @@ export { useAuth, useUserProfile, useAuthHandlers } from "@umituz/react-native-a
|
|
|
34
28
|
// Auth types
|
|
35
29
|
export type { AccountScreenConfig } from "@umituz/react-native-auth";
|
|
36
30
|
|
|
37
|
-
// Base hook (
|
|
31
|
+
// Base hook (already handles auth internally via useAuth/useUserProfile/useAuthHandlers)
|
|
38
32
|
export { useSettingsScreenConfig } from './presentation/hooks/useSettingsScreenConfig';
|
|
39
33
|
|
|
34
|
+
// Alias for clarity - useSettingsScreenConfig already includes auth
|
|
35
|
+
export { useSettingsScreenConfig as useSettingsScreenConfigWithAuth } from './presentation/hooks/useSettingsScreenConfig';
|
|
36
|
+
|
|
40
37
|
// Re-export types
|
|
41
38
|
export type {
|
|
42
39
|
UseSettingsScreenConfigParams,
|
|
43
40
|
SettingsScreenConfigResult,
|
|
44
41
|
SettingsFeatures,
|
|
45
|
-
AuthData,
|
|
46
42
|
} from './presentation/hooks/useSettingsScreenConfig';
|
|
47
43
|
|
|
48
44
|
export type { AccountConfig } from './presentation/navigation/types';
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Convenience wrapper that auto-injects auth data from @umituz/react-native-auth.
|
|
52
|
-
* Drop-in replacement for the old useSettingsScreenConfig that called auth hooks internally.
|
|
53
|
-
*
|
|
54
|
-
* Usage:
|
|
55
|
-
* const { settingsConfig, userProfile, accountConfig, ... } = useSettingsScreenConfigWithAuth({ appInfo, ... });
|
|
56
|
-
*/
|
|
57
|
-
export const useSettingsScreenConfigWithAuth = (
|
|
58
|
-
params: Omit<UseSettingsScreenConfigParams, 'authData'>
|
|
59
|
-
): SettingsScreenConfigResult => {
|
|
60
|
-
const { user, loading, isAuthReady } = useAuth();
|
|
61
|
-
const userProfileData = useUserProfile({});
|
|
62
|
-
const { handleRatePress, handleSignOut, handleDeleteAccount, handleSignIn } =
|
|
63
|
-
useAuthHandlers(params.appInfo as AppInfo, params.translations?.errors);
|
|
64
|
-
|
|
65
|
-
const authData = useMemo(() => ({
|
|
66
|
-
user,
|
|
67
|
-
loading,
|
|
68
|
-
isAuthReady,
|
|
69
|
-
userProfileData,
|
|
70
|
-
handleRatePress,
|
|
71
|
-
handleSignOut,
|
|
72
|
-
handleDeleteAccount,
|
|
73
|
-
handleSignIn,
|
|
74
|
-
}), [user, loading, isAuthReady, userProfileData, handleRatePress, handleSignOut, handleDeleteAccount, handleSignIn]);
|
|
75
|
-
|
|
76
|
-
return useSettingsScreenConfig({
|
|
77
|
-
...params,
|
|
78
|
-
authData,
|
|
79
|
-
});
|
|
80
|
-
};
|
|
@@ -7,7 +7,8 @@ import { View, StyleSheet } from 'react-native';
|
|
|
7
7
|
import { AboutSettingItem } from './AboutSettingItem';
|
|
8
8
|
import { AppInfo } from '../../domain/entities/AppInfo';
|
|
9
9
|
import { AboutConfig } from '../../domain/entities/AppInfo';
|
|
10
|
-
import {
|
|
10
|
+
import { AtomicText } from '@umituz/react-native-design-system/atoms';
|
|
11
|
+
import { useAppDesignTokens, type DesignTokens } from '@umituz/react-native-design-system/theme';
|
|
11
12
|
|
|
12
13
|
export interface AboutContentProps {
|
|
13
14
|
/** App information to display */
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { View, StyleSheet, ViewStyle, TextStyle } from 'react-native';
|
|
7
|
-
import {
|
|
7
|
+
import { AtomicText } from '@umituz/react-native-design-system/atoms';
|
|
8
|
+
import { useAppDesignTokens, type DesignTokens } from '@umituz/react-native-design-system/theme';
|
|
8
9
|
import { AppInfo } from '../../domain/entities/AppInfo';
|
|
9
10
|
|
|
10
11
|
export interface AboutHeaderProps {
|
|
@@ -12,7 +12,8 @@ import {
|
|
|
12
12
|
ViewStyle,
|
|
13
13
|
TextStyle,
|
|
14
14
|
} from 'react-native';
|
|
15
|
-
import {
|
|
15
|
+
import { AtomicText, AtomicIcon } from '@umituz/react-native-design-system/atoms';
|
|
16
|
+
import { useAppDesignTokens, type DesignTokens } from '@umituz/react-native-design-system/theme';
|
|
16
17
|
|
|
17
18
|
export interface AboutSettingItemProps {
|
|
18
19
|
/** Icon component (any React component) */
|
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
* Fully configurable and generic
|
|
5
5
|
* Optimized for performance and memory safety
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import { AtomicText, AtomicSpinner } from '@umituz/react-native-design-system/atoms';
|
|
8
|
+
import { ScreenLayout } from '@umituz/react-native-design-system/layouts';
|
|
9
|
+
import { NavigationHeader, useAppNavigation } from '@umituz/react-native-design-system/molecules';
|
|
10
|
+
import { useAppDesignTokens } from '@umituz/react-native-design-system/theme';
|
|
8
11
|
import { useAboutInfo } from '../hooks/useAboutInfo';
|
|
9
12
|
import { AboutScreenContent } from './AboutScreenContent';
|
|
10
13
|
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
import { AboutHeader } from '../components/AboutHeader';
|
|
12
12
|
import { AboutContent } from '../components/AboutContent';
|
|
13
13
|
import { AboutConfig, AppInfo } from '../../domain/entities/AppInfo';
|
|
14
|
-
import type { DesignTokens } from '@umituz/react-native-design-system';
|
|
14
|
+
import type { DesignTokens } from '@umituz/react-native-design-system/theme';
|
|
15
15
|
import type { AboutScreenProps } from './AboutScreen';
|
|
16
16
|
|
|
17
17
|
export interface AboutScreenContentProps extends Omit<AboutScreenProps, 'config'> {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useTheme, type ThemeMode as BaseThemeMode, type CustomThemeColors } from "@umituz/react-native-design-system";
|
|
1
|
+
import { useTheme, type ThemeMode as BaseThemeMode, type CustomThemeColors } from "@umituz/react-native-design-system/theme";
|
|
2
2
|
import type { ThemeMode } from "../types";
|
|
3
3
|
|
|
4
4
|
export const useAppearance = () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useState, useCallback, useEffect, useRef } from "react";
|
|
2
2
|
import { useAppearance } from "./useAppearance";
|
|
3
|
-
import type { CustomThemeColors } from "@umituz/react-native-design-system";
|
|
3
|
+
import type { CustomThemeColors } from "@umituz/react-native-design-system/theme";
|
|
4
4
|
import type { ThemeMode } from "../types";
|
|
5
5
|
|
|
6
6
|
export const useAppearanceActions = () => {
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
import React from "react";
|
|
7
7
|
import { View, StyleSheet, type StyleProp, type ViewStyle } from "react-native";
|
|
8
|
-
import { AtomicText } from "@umituz/react-native-design-system";
|
|
9
|
-
import type { DesignTokens } from "@umituz/react-native-design-system";
|
|
8
|
+
import { AtomicText } from "@umituz/react-native-design-system/atoms";
|
|
9
|
+
import type { DesignTokens } from "@umituz/react-native-design-system/theme";
|
|
10
10
|
|
|
11
11
|
export interface AppearanceHeaderProps {
|
|
12
12
|
tokens: DesignTokens;
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
import React from "react";
|
|
7
7
|
import { View, StyleSheet } from "react-native";
|
|
8
|
-
import { AtomicText } from "@umituz/react-native-design-system";
|
|
9
|
-
import type { DesignTokens } from "@umituz/react-native-design-system";
|
|
8
|
+
import { AtomicText } from "@umituz/react-native-design-system/atoms";
|
|
9
|
+
import type { DesignTokens } from "@umituz/react-native-design-system/theme";
|
|
10
10
|
import type { CustomThemeColors } from "../../types";
|
|
11
11
|
|
|
12
12
|
export interface PreviewColorItem {
|
|
@@ -7,11 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
import React, { useMemo, useCallback } from "react";
|
|
9
9
|
import { View, TouchableOpacity, StyleSheet } from "react-native";
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
AtomicText,
|
|
13
|
-
useAppDesignTokens,
|
|
14
|
-
} from "@umituz/react-native-design-system";
|
|
10
|
+
import { AtomicIcon, AtomicText } from "@umituz/react-native-design-system/atoms";
|
|
11
|
+
import { useAppDesignTokens } from "@umituz/react-native-design-system/theme";
|
|
15
12
|
import { isDev } from "../../../../utils/devUtils";
|
|
16
13
|
|
|
17
14
|
interface ColorPickerProps {
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
import React, { useMemo, useCallback } from "react";
|
|
7
7
|
import { View, StyleSheet } from "react-native";
|
|
8
|
-
import { AtomicText, AtomicButton } from "@umituz/react-native-design-system";
|
|
8
|
+
import { AtomicText, AtomicButton } from "@umituz/react-native-design-system/atoms";
|
|
9
|
+
import type { DesignTokens } from "@umituz/react-native-design-system/theme";
|
|
9
10
|
import { ColorPicker } from "./ColorPicker";
|
|
10
11
|
import {
|
|
11
12
|
DEFAULT_PRIMARY_COLORS,
|
|
12
13
|
DEFAULT_SECONDARY_COLORS,
|
|
13
14
|
DEFAULT_ACCENT_COLORS,
|
|
14
15
|
} from "../../data/colorPalettes";
|
|
15
|
-
import type { DesignTokens } from "@umituz/react-native-design-system";
|
|
16
16
|
import type { CustomThemeColors } from "../../types";
|
|
17
17
|
|
|
18
18
|
export interface ColorFieldConfig {
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
import React, { useMemo, useCallback } from "react";
|
|
7
7
|
import { View, StyleSheet } from "react-native";
|
|
8
|
-
import { AtomicText } from "@umituz/react-native-design-system";
|
|
8
|
+
import { AtomicText } from "@umituz/react-native-design-system/atoms";
|
|
9
|
+
import type { DesignTokens } from "@umituz/react-native-design-system/theme";
|
|
9
10
|
import { ThemeOption } from "./ThemeOption";
|
|
10
|
-
import type { DesignTokens } from "@umituz/react-native-design-system";
|
|
11
11
|
import type { ThemeMode } from "../../types";
|
|
12
12
|
|
|
13
13
|
export interface ThemeOptionConfig {
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
import React, { useMemo } from "react";
|
|
9
9
|
import { View, TouchableOpacity, StyleSheet } from "react-native";
|
|
10
|
-
import { AtomicText, AtomicIcon } from "@umituz/react-native-design-system";
|
|
11
|
-
import { useAppDesignTokens } from "@umituz/react-native-design-system";
|
|
10
|
+
import { AtomicText, AtomicIcon } from "@umituz/react-native-design-system/atoms";
|
|
11
|
+
import { useAppDesignTokens } from "@umituz/react-native-design-system/theme";
|
|
12
12
|
import type { ThemeMode } from "../../types";
|
|
13
13
|
|
|
14
14
|
interface ThemeOptionProps {
|
|
@@ -6,12 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import React, { useMemo, useCallback } from "react";
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
NavigationHeader,
|
|
13
|
-
useAppNavigation
|
|
14
|
-
} from "@umituz/react-native-design-system";
|
|
9
|
+
import { ScreenLayout } from "@umituz/react-native-design-system/layouts";
|
|
10
|
+
import { NavigationHeader, useAppNavigation } from "@umituz/react-native-design-system/molecules";
|
|
11
|
+
import { useAppDesignTokens } from "@umituz/react-native-design-system/theme";
|
|
15
12
|
import { useAppearance } from "../../hooks/useAppearance";
|
|
16
13
|
import { useAppearanceActions } from "../../hooks/useAppearanceActions";
|
|
17
14
|
import {
|
|
@@ -4,10 +4,7 @@
|
|
|
4
4
|
* Types for appearance settings including theme mode and custom colors
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type {
|
|
8
|
-
ThemeMode as BaseThemeMode,
|
|
9
|
-
CustomThemeColors,
|
|
10
|
-
} from "@umituz/react-native-design-system";
|
|
7
|
+
import type { ThemeMode as BaseThemeMode, CustomThemeColors } from "@umituz/react-native-design-system/theme";
|
|
11
8
|
|
|
12
9
|
// Extended theme mode to support 'auto' option
|
|
13
10
|
export type ThemeMode = BaseThemeMode | 'auto';
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
|
|
10
10
|
import React from "react";
|
|
11
11
|
import { Alert } from "react-native";
|
|
12
|
-
import {
|
|
12
|
+
import { storageRepository } from "@umituz/react-native-design-system/storage";
|
|
13
|
+
import { useAppDesignTokens } from "@umituz/react-native-design-system/theme";
|
|
13
14
|
import { SettingsSection } from "../../../../presentation/components/SettingsSection";
|
|
14
15
|
import { SettingsItemCard } from "../../../../presentation/components/SettingsItemCard";
|
|
15
16
|
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import React from "react";
|
|
8
|
-
import {
|
|
8
|
+
import { useAppNavigation } from "@umituz/react-native-design-system/molecules";
|
|
9
|
+
import { useAppDesignTokens } from "@umituz/react-native-design-system/theme";
|
|
9
10
|
import { SettingsItemCard } from "../../../../presentation/components/SettingsItemCard";
|
|
10
11
|
import type { EnvConfig } from "../../types";
|
|
11
12
|
|
|
@@ -6,16 +6,10 @@
|
|
|
6
6
|
|
|
7
7
|
import React, { useState, useMemo } from "react";
|
|
8
8
|
import { View, StyleSheet } from "react-native";
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
useAppDesignTokens,
|
|
14
|
-
useAppNavigation,
|
|
15
|
-
AlertService,
|
|
16
|
-
ScreenLayout,
|
|
17
|
-
NavigationHeader,
|
|
18
|
-
} from "@umituz/react-native-design-system";
|
|
9
|
+
import { AtomicText, AtomicIcon, AtomicTouchable } from "@umituz/react-native-design-system/atoms";
|
|
10
|
+
import { ScreenLayout } from "@umituz/react-native-design-system/layouts";
|
|
11
|
+
import { useAppNavigation, AlertService, NavigationHeader } from "@umituz/react-native-design-system/molecules";
|
|
12
|
+
import { useAppDesignTokens } from "@umituz/react-native-design-system/theme";
|
|
19
13
|
import * as Clipboard from "expo-clipboard";
|
|
20
14
|
import type { EnvConfig } from "../../types";
|
|
21
15
|
|
|
@@ -11,9 +11,8 @@ import {
|
|
|
11
11
|
type TextStyle,
|
|
12
12
|
} from 'react-native';
|
|
13
13
|
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import type { IconName } from '@umituz/react-native-design-system';
|
|
14
|
+
import { AtomicText, AtomicIcon, type IconName } from '@umituz/react-native-design-system/atoms';
|
|
15
|
+
import { useAppDesignTokens, withAlpha } from '@umituz/react-native-design-system/theme';
|
|
17
16
|
|
|
18
17
|
export interface DisclaimerCardProps {
|
|
19
18
|
title: string;
|
|
@@ -11,7 +11,9 @@ import {
|
|
|
11
11
|
ScrollView,
|
|
12
12
|
} from 'react-native';
|
|
13
13
|
|
|
14
|
-
import {
|
|
14
|
+
import { AtomicText, AtomicIcon } from '@umituz/react-native-design-system/atoms';
|
|
15
|
+
import { BaseModal } from '@umituz/react-native-design-system/molecules';
|
|
16
|
+
import { useAppDesignTokens } from '@umituz/react-native-design-system/theme';
|
|
15
17
|
|
|
16
18
|
export interface DisclaimerModalProps {
|
|
17
19
|
visible: boolean;
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
import React, { useState, useEffect, useCallback } from 'react';
|
|
21
21
|
import { Modal } from 'react-native';
|
|
22
22
|
|
|
23
|
-
import { useAppDesignTokens, withAlpha } from '@umituz/react-native-design-system';
|
|
23
|
+
import { useAppDesignTokens, withAlpha } from '@umituz/react-native-design-system/theme';
|
|
24
24
|
import { DisclaimerCard } from './DisclaimerCard';
|
|
25
25
|
import { DisclaimerModal } from './DisclaimerModal';
|
|
26
26
|
|
|
@@ -14,15 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
import React from 'react';
|
|
16
16
|
import { View, StyleSheet } from 'react-native';
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
useAppNavigation,
|
|
22
|
-
NavigationHeader
|
|
23
|
-
} from '@umituz/react-native-design-system';
|
|
24
|
-
import { AtomicText, AtomicIcon } from '@umituz/react-native-design-system';
|
|
25
|
-
import type { IconName } from '@umituz/react-native-design-system';
|
|
17
|
+
import { AtomicText, AtomicIcon, type IconName } from '@umituz/react-native-design-system/atoms';
|
|
18
|
+
import { ScreenLayout } from '@umituz/react-native-design-system/layouts';
|
|
19
|
+
import { useAppNavigation, NavigationHeader } from '@umituz/react-native-design-system/molecules';
|
|
20
|
+
import { useAppDesignTokens, withAlpha } from '@umituz/react-native-design-system/theme';
|
|
26
21
|
|
|
27
22
|
export interface DisclaimerScreenProps {
|
|
28
23
|
/** Custom title (overrides translation) */
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
import React, { useMemo } from 'react';
|
|
8
8
|
import { View, StyleSheet, ViewStyle } from 'react-native';
|
|
9
|
-
import {
|
|
9
|
+
import { AtomicText } from '@umituz/react-native-design-system/atoms';
|
|
10
|
+
import { useAppDesignTokens } from '@umituz/react-native-design-system/theme';
|
|
10
11
|
import { FAQCategory as FAQCategoryType } from '../../domain/entities/FAQEntity';
|
|
11
12
|
import { FAQItemComponent, FAQItemStyles } from './FAQItem';
|
|
12
13
|
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
import React, { useMemo } from 'react';
|
|
8
8
|
import { View, StyleSheet, ViewStyle, TextStyle } from 'react-native';
|
|
9
|
-
import {
|
|
9
|
+
import { AtomicText } from '@umituz/react-native-design-system/atoms';
|
|
10
|
+
import { useAppDesignTokens } from '@umituz/react-native-design-system/theme';
|
|
10
11
|
|
|
11
12
|
export interface FAQEmptyStateStyles {
|
|
12
13
|
container?: ViewStyle;
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
import React, { useMemo } from 'react';
|
|
8
8
|
import { View, TouchableOpacity, StyleSheet, ViewStyle } from 'react-native';
|
|
9
|
-
import {
|
|
9
|
+
import { AtomicText, AtomicIcon } from '@umituz/react-native-design-system/atoms';
|
|
10
|
+
import { useAppDesignTokens } from '@umituz/react-native-design-system/theme';
|
|
10
11
|
import { FAQItem as FAQItemType } from '../../domain/entities/FAQEntity';
|
|
11
12
|
|
|
12
13
|
export interface FAQItemStyles {
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
import React, { useMemo } from 'react';
|
|
8
8
|
import { View, TextInput, StyleSheet, ViewStyle, TextStyle } from 'react-native';
|
|
9
|
-
import {
|
|
9
|
+
import { AtomicIcon } from '@umituz/react-native-design-system/atoms';
|
|
10
|
+
import { useAppDesignTokens } from '@umituz/react-native-design-system/theme';
|
|
10
11
|
|
|
11
12
|
export interface FAQSearchBarStyles {
|
|
12
13
|
container?: ViewStyle;
|
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
|
|
7
7
|
import React, { useMemo, useCallback } from 'react';
|
|
8
8
|
import { View, FlatList, StyleSheet, ViewStyle, TextStyle, useWindowDimensions } from 'react-native';
|
|
9
|
-
import {
|
|
9
|
+
import { getContentMaxWidth } from '@umituz/react-native-design-system/device';
|
|
10
|
+
import { ScreenLayout } from '@umituz/react-native-design-system/layouts';
|
|
11
|
+
import { NavigationHeader, useAppNavigation } from '@umituz/react-native-design-system/molecules';
|
|
12
|
+
import { useAppDesignTokens } from '@umituz/react-native-design-system/theme';
|
|
10
13
|
import { FAQCategory } from '../../domain/entities/FAQEntity';
|
|
11
14
|
import { useFAQSearch } from '../hooks/useFAQSearch';
|
|
12
15
|
import { useFAQExpansion } from '../hooks/useFAQExpansion';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StyleSheet } from "react-native";
|
|
2
|
-
import type { useAppDesignTokens } from "@umituz/react-native-design-system";
|
|
2
|
+
import type { useAppDesignTokens } from "@umituz/react-native-design-system/theme";
|
|
3
3
|
|
|
4
4
|
export const getFeedbackFormStyles = (_tokens: ReturnType<typeof useAppDesignTokens>) =>
|
|
5
5
|
StyleSheet.create({
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
import React, { useReducer } from "react";
|
|
7
7
|
import { View, TouchableOpacity, ScrollView, TextInput } from "react-native";
|
|
8
|
-
import {
|
|
8
|
+
import { AtomicText, AtomicButton, AtomicIcon } from "@umituz/react-native-design-system/atoms";
|
|
9
|
+
import { useAppDesignTokens, type DesignTokens } from "@umituz/react-native-design-system/theme";
|
|
9
10
|
import type { FeedbackType, FeedbackRating } from "../../domain/entities/FeedbackEntity";
|
|
10
11
|
import { validateFeedbackForm } from "../../../../infrastructure/utils/validation";
|
|
11
12
|
import type { FeedbackFormProps } from "./FeedbackFormProps";
|
|
12
13
|
import { getFeedbackFormStyles as getStyles } from "./FeedbackForm.styles";
|
|
13
|
-
import type { DesignTokens } from "@umituz/react-native-design-system";
|
|
14
14
|
|
|
15
15
|
interface FeedbackFormState {
|
|
16
16
|
selectedType: FeedbackType;
|
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
import React from "react";
|
|
7
7
|
import { View, StyleSheet, TouchableOpacity } from "react-native";
|
|
8
|
-
import {
|
|
8
|
+
import { AtomicText, AtomicIcon } from "@umituz/react-native-design-system/atoms";
|
|
9
|
+
import { ScreenLayout } from "@umituz/react-native-design-system/layouts";
|
|
10
|
+
import { BaseModal } from "@umituz/react-native-design-system/molecules";
|
|
11
|
+
import { useAppDesignTokens } from "@umituz/react-native-design-system/theme";
|
|
9
12
|
import { FeedbackForm } from "./FeedbackForm";
|
|
10
13
|
import type { FeedbackType, FeedbackRating } from "../../domain/entities/FeedbackEntity";
|
|
11
14
|
import type { FeedbackFormProps } from "./FeedbackFormProps";
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
import React from "react";
|
|
7
7
|
import { View, StyleSheet, type ViewStyle, type TextStyle } from "react-native";
|
|
8
|
-
import {
|
|
8
|
+
import { AtomicText } from "@umituz/react-native-design-system/atoms";
|
|
9
|
+
import { useResponsive } from "@umituz/react-native-design-system/responsive";
|
|
10
|
+
import { useAppDesignTokens, withAlpha } from "@umituz/react-native-design-system/theme";
|
|
9
11
|
|
|
10
12
|
export interface AchievementCardProps {
|
|
11
13
|
title: string;
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
import React from "react";
|
|
7
7
|
import { View } from "react-native";
|
|
8
|
-
import {
|
|
8
|
+
import { AtomicText, AtomicIcon } from "@umituz/react-native-design-system/atoms";
|
|
9
|
+
import { useAppDesignTokens, withAlpha } from "@umituz/react-native-design-system/theme";
|
|
9
10
|
import type { AchievementItemProps } from "./types/AchievementItemProps";
|
|
10
11
|
import { achievementItemStyles as styles } from "./styles/achievementItemStyles";
|
|
11
12
|
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
import React, { useEffect, useRef } from "react";
|
|
7
7
|
import { View, StyleSheet, type ViewStyle, type TextStyle } from "react-native";
|
|
8
|
-
import {
|
|
8
|
+
import { AtomicText } from "@umituz/react-native-design-system/atoms";
|
|
9
|
+
import { useAppDesignTokens, withAlpha } from "@umituz/react-native-design-system/theme";
|
|
9
10
|
|
|
10
11
|
export interface AchievementToastProps {
|
|
11
12
|
visible: boolean;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import React, { useMemo } from "react";
|
|
6
6
|
import { View, type TextStyle } from "react-native";
|
|
7
|
-
import { AtomicText } from "@umituz/react-native-design-system";
|
|
7
|
+
import { AtomicText } from "@umituz/react-native-design-system/atoms";
|
|
8
8
|
import { AchievementItem } from "../AchievementItem";
|
|
9
9
|
import { styles } from "./styles";
|
|
10
10
|
import type { AchievementItemProps } from "../types/AchievementItemProps";
|