@umituz/react-native-settings 4.19.6 → 4.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/package.json +14 -12
  2. package/src/domains/about/presentation/components/AboutContent.tsx +12 -9
  3. package/src/domains/about/presentation/components/AboutHeader.tsx +12 -11
  4. package/src/domains/about/presentation/components/AboutSettingItem.tsx +18 -17
  5. package/src/domains/about/presentation/screens/AboutScreen.tsx +13 -12
  6. package/src/domains/appearance/presentation/components/AppearanceHeader.tsx +2 -2
  7. package/src/domains/appearance/presentation/components/AppearancePreview.tsx +11 -11
  8. package/src/domains/appearance/presentation/components/ColorPicker.tsx +3 -3
  9. package/src/domains/appearance/presentation/components/CustomColorsSection.tsx +4 -4
  10. package/src/domains/appearance/presentation/components/ThemeModeSection.tsx +3 -3
  11. package/src/domains/appearance/presentation/components/ThemeOption.tsx +20 -20
  12. package/src/domains/appearance/presentation/screens/AppearanceScreen.tsx +5 -5
  13. package/src/domains/disclaimer/presentation/components/DisclaimerCard.tsx +15 -15
  14. package/src/domains/disclaimer/presentation/components/DisclaimerModal.tsx +5 -5
  15. package/src/domains/disclaimer/presentation/screens/DisclaimerScreen.tsx +9 -9
  16. package/src/domains/faqs/presentation/components/FAQCategory.tsx +17 -8
  17. package/src/domains/faqs/presentation/components/FAQEmptyState.tsx +2 -2
  18. package/src/domains/faqs/presentation/components/FAQItem.tsx +37 -22
  19. package/src/domains/faqs/presentation/components/FAQSearchBar.tsx +13 -12
  20. package/src/domains/faqs/presentation/screens/FAQScreen.tsx +38 -28
  21. package/src/domains/feedback/presentation/components/FeedbackForm.tsx +21 -19
  22. package/src/domains/feedback/presentation/components/FeedbackModal.tsx +11 -9
  23. package/src/domains/legal/presentation/screens/LegalScreen.tsx +8 -8
  24. package/src/domains/legal/presentation/screens/PrivacyPolicyScreen.tsx +15 -12
  25. package/src/domains/legal/presentation/screens/TermsOfServiceScreen.tsx +15 -12
  26. package/src/domains/rating/presentation/components/StarRating.tsx +9 -4
  27. package/src/domains/video-tutorials/index.ts +1 -0
  28. package/src/domains/video-tutorials/infrastructure/services/video-tutorial.service.ts +2 -2
  29. package/src/domains/video-tutorials/presentation/components/VideoTutorialCard.tsx +35 -31
  30. package/src/domains/video-tutorials/presentation/screens/VideoTutorialsScreen.tsx +11 -9
  31. package/src/presentation/components/DevSettingsSection.tsx +2 -2
  32. package/src/presentation/components/SettingItem.tsx +2 -2
  33. package/src/presentation/components/SettingsErrorBoundary.tsx +2 -2
  34. package/src/presentation/components/SettingsFooter.tsx +2 -2
  35. package/src/presentation/components/SettingsItemCard.tsx +2 -2
  36. package/src/presentation/components/SettingsSection.tsx +2 -2
  37. package/src/presentation/navigation/SettingsStackNavigator.tsx +2 -2
  38. package/src/presentation/screens/SettingsScreen.tsx +2 -2
  39. package/src/presentation/screens/components/SettingsContent.tsx +2 -2
  40. package/src/presentation/screens/components/SettingsHeader.tsx +2 -2
@@ -9,7 +9,7 @@
9
9
 
10
10
  import React from "react";
11
11
  import { View, StyleSheet } from "react-native";
12
- import { useResponsiveDesignTokens, type DesignTokens } from "@umituz/react-native-design-system";
12
+ import { useAppDesignTokens, type DesignTokens } from "@umituz/react-native-design-system";
13
13
  import { AtomicText } from "@umituz/react-native-design-system";
14
14
  import { ScreenLayout } from "@umituz/react-native-design-system";
15
15
  import { LegalItem } from "../components/LegalItem";
@@ -93,7 +93,7 @@ export const LegalScreen: React.FC<LegalScreenProps> = React.memo(({
93
93
  eulaUrl,
94
94
  testID = "legal-screen",
95
95
  }) => {
96
- const tokens = useResponsiveDesignTokens();
96
+ const tokens = useAppDesignTokens();
97
97
 
98
98
  // Memoize styles to prevent recreation on every render
99
99
  const styles = React.useMemo(() => {
@@ -220,18 +220,18 @@ export const LegalScreen: React.FC<LegalScreenProps> = React.memo(({
220
220
  const createLegalScreenStyles = (tokens: DesignTokens) => {
221
221
  return StyleSheet.create({
222
222
  header: {
223
- paddingBottom: tokens.spacing.lg,
224
- paddingTop: tokens.spacing.md,
223
+ paddingBottom: tokens.spacing.lg * tokens.spacingMultiplier,
224
+ paddingTop: tokens.spacing.md * tokens.spacingMultiplier,
225
225
  },
226
226
  headerSubtitle: {
227
- marginTop: tokens.spacing.xs,
227
+ marginTop: tokens.spacing.xs * tokens.spacingMultiplier,
228
228
  },
229
229
  section: {
230
- marginTop: tokens.spacing.md,
230
+ marginTop: tokens.spacing.md * tokens.spacingMultiplier,
231
231
  },
232
232
  sectionHeader: {
233
- marginBottom: tokens.spacing.sm,
234
- paddingHorizontal: tokens.spacing.md,
233
+ marginBottom: tokens.spacing.sm * tokens.spacingMultiplier,
234
+ paddingHorizontal: tokens.spacing.md * tokens.spacingMultiplier,
235
235
  },
236
236
  });
237
237
  };
@@ -6,7 +6,7 @@
6
6
  import React from "react";
7
7
  import { View, ScrollView, StyleSheet } from "react-native";
8
8
  import { useSafeAreaInsets } from "react-native-safe-area-context";
9
- import { useResponsiveDesignTokens } from "@umituz/react-native-design-system";
9
+ import { useAppDesignTokens } from "@umituz/react-native-design-system";
10
10
  import { AtomicText, AtomicButton } from "@umituz/react-native-design-system";
11
11
  import { UrlHandlerService } from "../../domain/services/UrlHandlerService";
12
12
  import { ContentValidationService } from "../../domain/services/ContentValidationService";
@@ -54,7 +54,7 @@ export const PrivacyPolicyScreen: React.FC<PrivacyPolicyScreenProps> = React.mem
54
54
  onUrlPress,
55
55
  testID = "privacy-policy-screen",
56
56
  }) => {
57
- const tokens = useResponsiveDesignTokens();
57
+ const tokens = useAppDesignTokens();
58
58
  const insets = useSafeAreaInsets();
59
59
 
60
60
  // Validate required props
@@ -71,12 +71,13 @@ export const PrivacyPolicyScreen: React.FC<PrivacyPolicyScreenProps> = React.mem
71
71
 
72
72
  // Use cached styles
73
73
  const styles = React.useMemo(() => {
74
+ const cacheKey = StyleCacheService.createTokenCacheKey(tokens);
74
75
  return StyleCacheService.getCachedStyles(
75
76
  'PrivacyPolicyScreen',
76
- 'privacy-policy-styles',
77
- createPrivacyPolicyStyles
77
+ cacheKey,
78
+ () => createPrivacyPolicyStyles(tokens)
78
79
  );
79
- }, []);
80
+ }, [tokens]);
80
81
 
81
82
  // Memoize URL press handler to prevent child re-renders
82
83
  const handleUrlPress = React.useCallback(async () => {
@@ -170,34 +171,36 @@ export const PrivacyPolicyScreen: React.FC<PrivacyPolicyScreenProps> = React.mem
170
171
  );
171
172
  });
172
173
 
173
- const createPrivacyPolicyStyles = () => {
174
+ const createPrivacyPolicyStyles = (tokens: any) => {
174
175
  return StyleSheet.create({
175
176
  container: {
176
177
  flex: 1,
177
178
  },
178
179
  scrollContent: {
179
180
  flexGrow: 1,
180
- padding: 20,
181
+ padding: 20 * tokens.spacingMultiplier,
181
182
  },
182
183
  content: {
183
184
  flex: 1,
184
185
  },
185
186
  title: {
186
- marginBottom: 24,
187
+ marginBottom: 24 * tokens.spacingMultiplier,
187
188
  },
188
189
  text: {
189
- lineHeight: 24,
190
+ lineHeight: 24 * tokens.spacingMultiplier,
191
+ fontSize: tokens.typography.bodyMedium.responsiveFontSize,
190
192
  },
191
193
  urlContainer: {
192
- marginTop: 32,
194
+ marginTop: 32 * tokens.spacingMultiplier,
193
195
  alignItems: "center",
194
196
  },
195
197
  urlText: {
196
- marginBottom: 16,
198
+ marginBottom: 16 * tokens.spacingMultiplier,
197
199
  textAlign: "center",
200
+ fontSize: tokens.typography.bodyMedium.responsiveFontSize,
198
201
  },
199
202
  urlButton: {
200
- marginTop: 8,
203
+ marginTop: 8 * tokens.spacingMultiplier,
201
204
  },
202
205
  });
203
206
  };
@@ -6,7 +6,7 @@
6
6
  import React from "react";
7
7
  import { View, ScrollView, StyleSheet } from "react-native";
8
8
  import { useSafeAreaInsets } from "react-native-safe-area-context";
9
- import { useResponsiveDesignTokens } from "@umituz/react-native-design-system";
9
+ import { useAppDesignTokens } from "@umituz/react-native-design-system";
10
10
  import { AtomicText, AtomicButton } from "@umituz/react-native-design-system";
11
11
  import { UrlHandlerService } from "../../domain/services/UrlHandlerService";
12
12
  import { ContentValidationService } from "../../domain/services/ContentValidationService";
@@ -54,7 +54,7 @@ export const TermsOfServiceScreen: React.FC<TermsOfServiceScreenProps> = React.m
54
54
  onUrlPress,
55
55
  testID = "terms-of-service-screen",
56
56
  }) => {
57
- const tokens = useResponsiveDesignTokens();
57
+ const tokens = useAppDesignTokens();
58
58
  const insets = useSafeAreaInsets();
59
59
 
60
60
  // Validate required props
@@ -71,12 +71,13 @@ export const TermsOfServiceScreen: React.FC<TermsOfServiceScreenProps> = React.m
71
71
 
72
72
  // Use cached styles
73
73
  const styles = React.useMemo(() => {
74
+ const cacheKey = StyleCacheService.createTokenCacheKey(tokens);
74
75
  return StyleCacheService.getCachedStyles(
75
76
  'TermsOfServiceScreen',
76
- 'terms-of-service-styles',
77
- createTermsOfServiceStyles
77
+ cacheKey,
78
+ () => createTermsOfServiceStyles(tokens)
78
79
  );
79
- }, []);
80
+ }, [tokens]);
80
81
 
81
82
  // Memoize URL press handler to prevent child re-renders
82
83
  const handleUrlPress = React.useCallback(async () => {
@@ -170,34 +171,36 @@ export const TermsOfServiceScreen: React.FC<TermsOfServiceScreenProps> = React.m
170
171
  );
171
172
  });
172
173
 
173
- const createTermsOfServiceStyles = () => {
174
+ const createTermsOfServiceStyles = (tokens: any) => {
174
175
  return StyleSheet.create({
175
176
  container: {
176
177
  flex: 1,
177
178
  },
178
179
  scrollContent: {
179
180
  flexGrow: 1,
180
- padding: 20,
181
+ padding: 20 * tokens.spacingMultiplier,
181
182
  },
182
183
  content: {
183
184
  flex: 1,
184
185
  },
185
186
  title: {
186
- marginBottom: 24,
187
+ marginBottom: 24 * tokens.spacingMultiplier,
187
188
  },
188
189
  text: {
189
- lineHeight: 24,
190
+ lineHeight: 24 * tokens.spacingMultiplier,
191
+ fontSize: tokens.typography.bodyMedium.responsiveFontSize,
190
192
  },
191
193
  urlContainer: {
192
- marginTop: 32,
194
+ marginTop: 32 * tokens.spacingMultiplier,
193
195
  alignItems: "center",
194
196
  },
195
197
  urlText: {
196
- marginBottom: 16,
198
+ marginBottom: 16 * tokens.spacingMultiplier,
197
199
  textAlign: "center",
200
+ fontSize: tokens.typography.bodyMedium.responsiveFontSize,
198
201
  },
199
202
  urlButton: {
200
- marginTop: 8,
203
+ marginTop: 8 * tokens.spacingMultiplier,
201
204
  },
202
205
  });
203
206
  };
@@ -24,10 +24,14 @@ export const StarRating: React.FC<StarRatingProps> = ({
24
24
  style,
25
25
  }) => {
26
26
  const tokens = useAppDesignTokens();
27
+ const styles = getStyles(tokens);
27
28
  const [internalRating, setInternalRating] = useState(rating);
28
29
 
29
30
  const filledColor = activeColor || tokens.colors.warning || "#FFD700";
30
31
  const emptyColor = inactiveColor || tokens.colors.border || "#E0E0E0";
32
+
33
+ // Scale the size
34
+ const responsiveSize = size * tokens.spacingMultiplier;
31
35
 
32
36
  const handlePress = (index: number) => {
33
37
  if (disabled) return;
@@ -48,7 +52,7 @@ export const StarRating: React.FC<StarRatingProps> = ({
48
52
  >
49
53
  <AtomicIcon
50
54
  name={index < (onRatingChange ? internalRating : rating) ? "star" : "star-outline"}
51
- customSize={size}
55
+ customSize={responsiveSize}
52
56
  customColor={index < (onRatingChange ? internalRating : rating) ? filledColor : emptyColor}
53
57
  />
54
58
  </TouchableOpacity>
@@ -57,13 +61,14 @@ export const StarRating: React.FC<StarRatingProps> = ({
57
61
  );
58
62
  };
59
63
 
60
- const styles = StyleSheet.create({
64
+ const getStyles = (tokens: ReturnType<typeof useAppDesignTokens>) =>
65
+ StyleSheet.create({
61
66
  container: {
62
67
  flexDirection: "row",
63
68
  alignItems: "center",
64
- gap: 4,
69
+ gap: 4 * tokens.spacingMultiplier,
65
70
  },
66
71
  starContainer: {
67
- padding: 4,
72
+ padding: 4 * tokens.spacingMultiplier,
68
73
  },
69
74
  });
@@ -4,5 +4,6 @@
4
4
 
5
5
  export * from "./types";
6
6
  export * from "./presentation/screens/VideoTutorialsScreen";
7
+ export * from "./presentation/components/VideoTutorialCard";
7
8
  export * from "./presentation/hooks";
8
9
  export * from "./infrastructure/services/video-tutorial.service";
@@ -11,7 +11,7 @@ import {
11
11
  where,
12
12
  limit,
13
13
  } from "firebase/firestore";
14
- import type { Firestore } from "firebase/firestore";
14
+ import type { Firestore, QueryConstraint } from "firebase/firestore";
15
15
  import type {
16
16
  VideoTutorial,
17
17
  VideoTutorialCategory,
@@ -46,7 +46,7 @@ class VideoTutorialService {
46
46
  async getAllTutorials(
47
47
  filters?: VideoTutorialFilters,
48
48
  ): Promise<VideoTutorial[]> {
49
- const constraints = [];
49
+ const constraints: QueryConstraint[] = [];
50
50
 
51
51
  if (filters?.category) {
52
52
  constraints.push(where("category", "==", filters.category));
@@ -20,6 +20,7 @@ export const VideoTutorialCard: React.FC<VideoTutorialCardProps> = ({
20
20
  horizontal = false,
21
21
  }) => {
22
22
  const tokens = useAppDesignTokens();
23
+ const styles = getStyles(tokens);
23
24
 
24
25
  const formatDuration = (seconds: number): string => {
25
26
  const minutes = Math.floor(seconds / 60);
@@ -107,16 +108,17 @@ export const VideoTutorialCard: React.FC<VideoTutorialCardProps> = ({
107
108
  );
108
109
  };
109
110
 
110
- const styles = StyleSheet.create({
111
+ const getStyles = (tokens: ReturnType<typeof useAppDesignTokens>) =>
112
+ StyleSheet.create({
111
113
  container: {
112
- borderRadius: 12,
114
+ borderRadius: 12 * tokens.spacingMultiplier,
113
115
  borderWidth: 1,
114
- marginBottom: 12,
116
+ marginBottom: 12 * tokens.spacingMultiplier,
115
117
  overflow: "hidden",
116
118
  },
117
119
  horizontalContainer: {
118
- width: 280,
119
- marginRight: 12,
120
+ width: 280 * tokens.spacingMultiplier,
121
+ marginRight: 12 * tokens.spacingMultiplier,
120
122
  marginBottom: 0,
121
123
  },
122
124
  imageContainer: {
@@ -124,56 +126,56 @@ const styles = StyleSheet.create({
124
126
  },
125
127
  thumbnail: {
126
128
  width: "100%",
127
- height: 180,
129
+ height: 180 * tokens.spacingMultiplier,
128
130
  },
129
131
  horizontalThumbnail: {
130
- height: 140,
132
+ height: 140 * tokens.spacingMultiplier,
131
133
  },
132
134
  durationBadge: {
133
135
  position: "absolute",
134
- bottom: 8,
135
- right: 8,
136
- paddingHorizontal: 6,
137
- paddingVertical: 2,
138
- borderRadius: 4,
136
+ bottom: 8 * tokens.spacingMultiplier,
137
+ right: 8 * tokens.spacingMultiplier,
138
+ paddingHorizontal: 6 * tokens.spacingMultiplier,
139
+ paddingVertical: 2 * tokens.spacingMultiplier,
140
+ borderRadius: 4 * tokens.spacingMultiplier,
139
141
  },
140
142
  durationText: {
141
143
  color: "white",
142
- fontSize: 12,
144
+ fontSize: 12 * tokens.spacingMultiplier,
143
145
  fontWeight: "500",
144
146
  },
145
147
  featuredBadge: {
146
148
  position: "absolute",
147
- top: 8,
148
- left: 8,
149
- paddingHorizontal: 8,
150
- paddingVertical: 4,
151
- borderRadius: 4,
149
+ top: 8 * tokens.spacingMultiplier,
150
+ left: 8 * tokens.spacingMultiplier,
151
+ paddingHorizontal: 8 * tokens.spacingMultiplier,
152
+ paddingVertical: 4 * tokens.spacingMultiplier,
153
+ borderRadius: 4 * tokens.spacingMultiplier,
152
154
  },
153
155
  featuredText: {
154
- fontSize: 11,
156
+ fontSize: 11 * tokens.spacingMultiplier,
155
157
  fontWeight: "600",
156
158
  },
157
159
  content: {
158
- padding: 12,
160
+ padding: 12 * tokens.spacingMultiplier,
159
161
  },
160
162
  title: {
161
- fontSize: 16,
163
+ fontSize: tokens.typography.titleMedium.responsiveFontSize,
162
164
  fontWeight: "600",
163
- marginBottom: 6,
165
+ marginBottom: 6 * tokens.spacingMultiplier,
164
166
  },
165
167
  horizontalTitle: {
166
- fontSize: 14,
168
+ fontSize: tokens.typography.bodyLarge.responsiveFontSize,
167
169
  },
168
170
  description: {
169
- fontSize: 14,
170
- lineHeight: 20,
171
- marginBottom: 8,
171
+ fontSize: tokens.typography.bodyMedium.responsiveFontSize,
172
+ lineHeight: 20 * tokens.spacingMultiplier,
173
+ marginBottom: 8 * tokens.spacingMultiplier,
172
174
  },
173
175
  horizontalDescription: {
174
- fontSize: 12,
175
- lineHeight: 16,
176
- marginBottom: 6,
176
+ fontSize: tokens.typography.bodySmall.responsiveFontSize,
177
+ lineHeight: 16 * tokens.spacingMultiplier,
178
+ marginBottom: 6 * tokens.spacingMultiplier,
177
179
  },
178
180
  metadata: {
179
181
  flexDirection: "row",
@@ -181,11 +183,13 @@ const styles = StyleSheet.create({
181
183
  alignItems: "center",
182
184
  },
183
185
  category: {
184
- fontSize: 12,
186
+ fontSize: 12 * tokens.spacingMultiplier,
185
187
  textTransform: "capitalize",
188
+ fontWeight: "500",
186
189
  },
187
190
  difficulty: {
188
- fontSize: 12,
191
+ fontSize: 12 * tokens.spacingMultiplier,
189
192
  textTransform: "capitalize",
193
+ fontWeight: "500",
190
194
  },
191
195
  });
@@ -68,6 +68,7 @@ export const VideoTutorialsScreen: React.FC<VideoTutorialsScreenProps> =
68
68
  customFeaturedTutorials,
69
69
  }) => {
70
70
  const tokens = useAppDesignTokens();
71
+ const styles = getStyles(tokens);
71
72
 
72
73
  const featuredQuery = useFeaturedTutorials(maxFeaturedCount);
73
74
  const allQuery = useVideoTutorials();
@@ -169,30 +170,31 @@ export const VideoTutorialsScreen: React.FC<VideoTutorialsScreenProps> =
169
170
  },
170
171
  );
171
172
 
172
- const styles = StyleSheet.create({
173
+ const getStyles = (tokens: ReturnType<typeof useAppDesignTokens>) =>
174
+ StyleSheet.create({
173
175
  title: {
174
- fontSize: 24,
176
+ fontSize: tokens.typography.headlineLarge.responsiveFontSize,
175
177
  fontWeight: "600",
176
- marginBottom: 24,
178
+ marginBottom: 24 * tokens.spacingMultiplier,
177
179
  },
178
180
  section: {
179
- marginBottom: 24,
181
+ marginBottom: 24 * tokens.spacingMultiplier,
180
182
  },
181
183
  sectionTitle: {
182
- fontSize: 18,
184
+ fontSize: tokens.typography.titleLarge.responsiveFontSize,
183
185
  fontWeight: "500",
184
- marginBottom: 12,
186
+ marginBottom: 12 * tokens.spacingMultiplier,
185
187
  },
186
188
  horizontalList: {
187
- paddingRight: 16,
189
+ paddingRight: 16 * tokens.spacingMultiplier,
188
190
  },
189
191
  verticalList: {
190
- paddingBottom: 16,
192
+ paddingBottom: 16 * tokens.spacingMultiplier,
191
193
  },
192
194
  errorContainer: {
193
195
  flex: 1,
194
196
  justifyContent: "center",
195
197
  alignItems: "center",
196
- padding: 20,
198
+ padding: 20 * tokens.spacingMultiplier,
197
199
  },
198
200
  });
@@ -9,7 +9,7 @@
9
9
 
10
10
  import React from "react";
11
11
  import { Alert } from "react-native";
12
- import { useResponsiveDesignTokens } from "@umituz/react-native-design-system";
12
+ import { useAppDesignTokens } from "@umituz/react-native-design-system";
13
13
  import { storageRepository } from "@umituz/react-native-storage";
14
14
  import { SettingsSection } from "./SettingsSection";
15
15
  import { SettingItem } from "./SettingItem";
@@ -46,7 +46,7 @@ export const DevSettingsSection: React.FC<DevSettingsProps> = ({
46
46
  texts = {},
47
47
  customDevComponents = [],
48
48
  }) => {
49
- const tokens = useResponsiveDesignTokens();
49
+ const tokens = useAppDesignTokens();
50
50
 
51
51
  // Merge custom texts with defaults
52
52
  const t = { ...DEFAULT_TEXTS, ...texts };
@@ -3,7 +3,7 @@ import { View, StyleSheet, Switch } from "react-native";
3
3
  import {
4
4
  AtomicIcon,
5
5
  AtomicText,
6
- useResponsiveDesignTokens,
6
+ useAppDesignTokens,
7
7
  } from "@umituz/react-native-design-system";
8
8
  import { SettingsItemCard } from "./SettingsItemCard";
9
9
 
@@ -40,7 +40,7 @@ export const SettingItem: React.FC<SettingItemProps> = ({
40
40
  testID,
41
41
  disabled = false,
42
42
  }) => {
43
- const tokens = useResponsiveDesignTokens();
43
+ const tokens = useAppDesignTokens();
44
44
 
45
45
  // For switch items, we need custom rendering
46
46
  if (showSwitch) {
@@ -5,7 +5,7 @@
5
5
 
6
6
  import React, { Component, ReactNode } from 'react';
7
7
  import { View, StyleSheet } from 'react-native';
8
- import { useResponsiveDesignTokens } from '@umituz/react-native-design-system';
8
+ import { useAppDesignTokens } from '@umituz/react-native-design-system';
9
9
  import { AtomicText, AtomicIcon } from '@umituz/react-native-design-system';
10
10
  import { useLocalization } from '@umituz/react-native-localization';
11
11
 
@@ -67,7 +67,7 @@ const ErrorBoundaryFallback: React.FC<ErrorBoundaryFallbackProps> = ({
67
67
  fallbackTitle,
68
68
  fallbackMessage
69
69
  }) => {
70
- const tokens = useResponsiveDesignTokens();
70
+ const tokens = useAppDesignTokens();
71
71
  const { t } = useLocalization();
72
72
 
73
73
  const title = __DEV__ && error?.message
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { View, StyleSheet } from "react-native";
3
- import { useResponsiveDesignTokens, AtomicText } from "@umituz/react-native-design-system";
3
+ import { useAppDesignTokens, AtomicText } from "@umituz/react-native-design-system";
4
4
 
5
5
  export interface SettingsFooterProps {
6
6
  versionText?: string;
@@ -13,7 +13,7 @@ export const SettingsFooter: React.FC<SettingsFooterProps> = ({
13
13
  appVersion,
14
14
  versionLabel,
15
15
  }) => {
16
- const tokens = useResponsiveDesignTokens();
16
+ const tokens = useAppDesignTokens();
17
17
  const colors = tokens.colors;
18
18
 
19
19
  const displayText = versionText || (appVersion && versionLabel
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { View, Pressable, StyleSheet, ViewStyle } from "react-native";
3
3
  import {
4
- useResponsiveDesignTokens,
4
+ useAppDesignTokens,
5
5
  AtomicIcon,
6
6
  AtomicText,
7
7
  type IconName,
@@ -45,7 +45,7 @@ export const SettingsItemCard: React.FC<SettingsItemCardProps> = ({
45
45
  iconBgColor,
46
46
  iconColor,
47
47
  }) => {
48
- const tokens = useResponsiveDesignTokens();
48
+ const tokens = useAppDesignTokens();
49
49
  const colors = tokens.colors;
50
50
 
51
51
  const defaultIconBg = iconBgColor || `${colors.primary}15`;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { View, StyleSheet } from "react-native";
3
- import { useResponsiveDesignTokens, AtomicText } from "@umituz/react-native-design-system";
3
+ import { useAppDesignTokens, AtomicText } from "@umituz/react-native-design-system";
4
4
 
5
5
  export interface SettingsSectionProps {
6
6
  title: string;
@@ -11,7 +11,7 @@ export const SettingsSection: React.FC<SettingsSectionProps> = ({
11
11
  title,
12
12
  children,
13
13
  }) => {
14
- const tokens = useResponsiveDesignTokens();
14
+ const tokens = useAppDesignTokens();
15
15
  const colors = tokens.colors;
16
16
 
17
17
  return (
@@ -7,7 +7,7 @@
7
7
 
8
8
  import React from "react";
9
9
  import { createStackNavigator } from "@react-navigation/stack";
10
- import { useResponsiveDesignTokens } from "@umituz/react-native-design-system";
10
+ import { useAppDesignTokens } from "@umituz/react-native-design-system";
11
11
  import { SettingsScreen } from "../screens/SettingsScreen";
12
12
  import { AppearanceScreen } from "../screens/AppearanceScreen";
13
13
  import type { SettingsConfig, CustomSettingsSection } from "../screens/types";
@@ -83,7 +83,7 @@ export const SettingsStackNavigator: React.FC<SettingsStackNavigatorProps> = ({
83
83
  devSettings,
84
84
  customSections = [],
85
85
  }) => {
86
- const tokens = useResponsiveDesignTokens();
86
+ const tokens = useAppDesignTokens();
87
87
 
88
88
  const screenOptions = {
89
89
  headerStyle: {
@@ -8,7 +8,7 @@ import { View, StatusBar, StyleSheet } from "react-native";
8
8
  import { useNavigation } from "@react-navigation/native";
9
9
  import {
10
10
  useDesignSystemTheme,
11
- useResponsiveDesignTokens,
11
+ useAppDesignTokens,
12
12
  } from "@umituz/react-native-design-system";
13
13
  import { SettingsHeader } from "./components/SettingsHeader";
14
14
  import { SettingsContent } from "./components/SettingsContent";
@@ -68,7 +68,7 @@ export const SettingsScreen: React.FC<SettingsScreenProps> = ({
68
68
  }) => {
69
69
  const navigation = useNavigation();
70
70
  const { themeMode } = useDesignSystemTheme();
71
- const tokens = useResponsiveDesignTokens();
71
+ const tokens = useAppDesignTokens();
72
72
 
73
73
  const isDark = themeMode === "dark";
74
74
  const colors = tokens.colors;
@@ -1,7 +1,7 @@
1
1
  import React, { useMemo } from "react";
2
2
  import { View, ScrollView, StyleSheet } from "react-native";
3
3
  import { useSafeAreaInsets } from "react-native-safe-area-context";
4
- import { useResponsiveDesignTokens } from "@umituz/react-native-design-system";
4
+ import { useAppDesignTokens } from "@umituz/react-native-design-system";
5
5
  import { useLocalization } from "@umituz/react-native-localization";
6
6
  import { SettingsFooter } from "../../components/SettingsFooter";
7
7
  import { SettingsSection } from "../../components/SettingsSection";
@@ -53,7 +53,7 @@ export const SettingsContent: React.FC<SettingsContentProps> = ({
53
53
  showCloseButton = false,
54
54
  devSettings,
55
55
  }) => {
56
- const tokens = useResponsiveDesignTokens();
56
+ const tokens = useAppDesignTokens();
57
57
  const insets = useSafeAreaInsets();
58
58
  const { t } = useLocalization();
59
59
 
@@ -7,7 +7,7 @@ import React from "react";
7
7
  import { View, TouchableOpacity, StyleSheet } from "react-native";
8
8
  import { useSafeAreaInsets } from "react-native-safe-area-context";
9
9
  import { useNavigation } from "@react-navigation/native";
10
- import { useResponsiveDesignTokens } from "@umituz/react-native-design-system";
10
+ import { useAppDesignTokens } from "@umituz/react-native-design-system";
11
11
  import { AtomicIcon } from "@umituz/react-native-design-system";
12
12
 
13
13
  interface SettingsHeaderProps {
@@ -20,7 +20,7 @@ export const SettingsHeader: React.FC<SettingsHeaderProps> = ({
20
20
  onClose,
21
21
  }) => {
22
22
  const navigation = useNavigation();
23
- const tokens = useResponsiveDesignTokens();
23
+ const tokens = useAppDesignTokens();
24
24
  const insets = useSafeAreaInsets();
25
25
 
26
26
  const handleClose = () => {