@umituz/react-native-settings 5.3.3 → 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 +3 -3
- 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,6 +1,6 @@
|
|
|
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",
|
|
@@ -117,7 +117,6 @@
|
|
|
117
117
|
"url": "https://github.com/umituz/react-native-settings"
|
|
118
118
|
},
|
|
119
119
|
"peerDependencies": {
|
|
120
|
-
"firebase": ">=10.0.0",
|
|
121
120
|
"@expo/vector-icons": ">=14.0.0",
|
|
122
121
|
"@react-navigation/native": ">=6.0.0",
|
|
123
122
|
"@react-navigation/stack": ">=6.0.0",
|
|
@@ -129,6 +128,7 @@
|
|
|
129
128
|
"expo-localization": ">=16.0.0",
|
|
130
129
|
"expo-notifications": ">=0.28.0",
|
|
131
130
|
"expo-store-review": ">=8.0.0",
|
|
131
|
+
"firebase": ">=10.0.0",
|
|
132
132
|
"i18next": ">=23.0.0",
|
|
133
133
|
"react": ">=19.0.0",
|
|
134
134
|
"react-i18next": ">=15.0.0",
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
158
158
|
"@typescript-eslint/parser": "^7.18.0",
|
|
159
159
|
"@umituz/react-native-auth": "*",
|
|
160
|
-
"@umituz/react-native-design-system": "
|
|
160
|
+
"@umituz/react-native-design-system": "^4.25.34",
|
|
161
161
|
"@umituz/react-native-firebase": "^2.4.1",
|
|
162
162
|
"@umituz/react-native-sentry": "latest",
|
|
163
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";
|
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
|
|
7
7
|
import React from "react";
|
|
8
8
|
import { View } from "react-native";
|
|
9
|
-
import {
|
|
9
|
+
import { AtomicText } from "@umituz/react-native-design-system/atoms";
|
|
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 { LevelProgress } from "../LevelProgress";
|
|
11
14
|
import { StreakDisplay } from "../StreakDisplay";
|
|
12
15
|
import { StatsGrid } from "./StatsGrid";
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import React 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 { StatsCard } from "../StatsCard";
|
|
9
9
|
import { styles } from "./styles";
|
|
10
10
|
import type { StatsCardProps } from "../StatsCard";
|
|
@@ -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 LevelProgressProps {
|
|
11
13
|
level: number;
|
|
@@ -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 PointsBadgeProps {
|
|
11
13
|
points: number;
|
|
@@ -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 StatsCardProps {
|
|
11
13
|
value: number;
|
|
@@ -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 StreakDisplayProps {
|
|
11
13
|
current: number;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Zustand store with persist middleware
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { createStore, storageService } from "@umituz/react-native-design-system";
|
|
6
|
+
import { createStore, storageService } from "@umituz/react-native-design-system/storage";
|
|
7
7
|
import type {
|
|
8
8
|
GamificationState,
|
|
9
9
|
GamificationActions,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Extracted from components to follow SOLID principles
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type { DesignTokens } from "@umituz/react-native-design-system";
|
|
7
|
+
import type { DesignTokens } from "@umituz/react-native-design-system/theme";
|
|
8
8
|
|
|
9
9
|
export interface StyleCacheOptions {
|
|
10
10
|
maxSize?: number;
|