@umituz/react-native-settings 2.4.1 → 3.0.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 (129) hide show
  1. package/package.json +5 -13
  2. package/src/presentation/components/CloudSyncSetting.tsx +2 -2
  3. package/src/presentation/components/SettingItem.tsx +4 -4
  4. package/src/presentation/components/StorageClearSetting.tsx +2 -2
  5. package/src/presentation/components/UserProfileHeader.tsx +3 -3
  6. package/src/presentation/screens/components/AboutLegalSection.tsx +3 -3
  7. package/src/presentation/screens/components/AppearanceSection.tsx +2 -2
  8. package/src/presentation/screens/components/LanguageSection.tsx +2 -2
  9. package/src/presentation/screens/components/NotificationsSection.tsx +3 -3
  10. package/lib/__tests__/setup.d.ts +0 -5
  11. package/lib/__tests__/setup.d.ts.map +0 -1
  12. package/lib/__tests__/setup.js +0 -143
  13. package/lib/__tests__/setup.js.map +0 -1
  14. package/lib/domain/repositories/ISettingsRepository.d.ts +0 -51
  15. package/lib/domain/repositories/ISettingsRepository.d.ts.map +0 -1
  16. package/lib/domain/repositories/ISettingsRepository.js +0 -8
  17. package/lib/domain/repositories/ISettingsRepository.js.map +0 -1
  18. package/lib/index.d.ts +0 -35
  19. package/lib/index.d.ts.map +0 -1
  20. package/lib/index.js +0 -32
  21. package/lib/index.js.map +0 -1
  22. package/lib/infrastructure/storage/SettingsStore.d.ts +0 -36
  23. package/lib/infrastructure/storage/SettingsStore.d.ts.map +0 -1
  24. package/lib/infrastructure/storage/SettingsStore.js +0 -144
  25. package/lib/infrastructure/storage/SettingsStore.js.map +0 -1
  26. package/lib/presentation/components/CloudSyncSetting.d.ts +0 -16
  27. package/lib/presentation/components/CloudSyncSetting.d.ts.map +0 -1
  28. package/lib/presentation/components/CloudSyncSetting.js +0 -30
  29. package/lib/presentation/components/CloudSyncSetting.js.map +0 -1
  30. package/lib/presentation/components/DisclaimerCard.d.ts +0 -15
  31. package/lib/presentation/components/DisclaimerCard.d.ts.map +0 -1
  32. package/lib/presentation/components/DisclaimerCard.js +0 -73
  33. package/lib/presentation/components/DisclaimerCard.js.map +0 -1
  34. package/lib/presentation/components/DisclaimerModal.d.ts +0 -13
  35. package/lib/presentation/components/DisclaimerModal.d.ts.map +0 -1
  36. package/lib/presentation/components/DisclaimerModal.js +0 -62
  37. package/lib/presentation/components/DisclaimerModal.js.map +0 -1
  38. package/lib/presentation/components/DisclaimerSetting.d.ts +0 -39
  39. package/lib/presentation/components/DisclaimerSetting.d.ts.map +0 -1
  40. package/lib/presentation/components/DisclaimerSetting.js +0 -59
  41. package/lib/presentation/components/DisclaimerSetting.js.map +0 -1
  42. package/lib/presentation/components/SettingItem.d.ts +0 -45
  43. package/lib/presentation/components/SettingItem.d.ts.map +0 -1
  44. package/lib/presentation/components/SettingItem.js +0 -113
  45. package/lib/presentation/components/SettingItem.js.map +0 -1
  46. package/lib/presentation/components/SettingsErrorBoundary.d.ts +0 -23
  47. package/lib/presentation/components/SettingsErrorBoundary.d.ts.map +0 -1
  48. package/lib/presentation/components/SettingsErrorBoundary.js +0 -73
  49. package/lib/presentation/components/SettingsErrorBoundary.js.map +0 -1
  50. package/lib/presentation/components/SettingsFooter.d.ts +0 -11
  51. package/lib/presentation/components/SettingsFooter.d.ts.map +0 -1
  52. package/lib/presentation/components/SettingsFooter.js +0 -31
  53. package/lib/presentation/components/SettingsFooter.js.map +0 -1
  54. package/lib/presentation/components/SettingsSection.d.ts +0 -13
  55. package/lib/presentation/components/SettingsSection.d.ts.map +0 -1
  56. package/lib/presentation/components/SettingsSection.js +0 -37
  57. package/lib/presentation/components/SettingsSection.js.map +0 -1
  58. package/lib/presentation/components/StorageClearSetting.d.ts +0 -16
  59. package/lib/presentation/components/StorageClearSetting.d.ts.map +0 -1
  60. package/lib/presentation/components/StorageClearSetting.js +0 -21
  61. package/lib/presentation/components/StorageClearSetting.js.map +0 -1
  62. package/lib/presentation/components/UserProfileHeader.d.ts +0 -30
  63. package/lib/presentation/components/UserProfileHeader.d.ts.map +0 -1
  64. package/lib/presentation/components/UserProfileHeader.js +0 -119
  65. package/lib/presentation/components/UserProfileHeader.js.map +0 -1
  66. package/lib/presentation/screens/AppearanceScreen.d.ts +0 -8
  67. package/lib/presentation/screens/AppearanceScreen.d.ts.map +0 -1
  68. package/lib/presentation/screens/AppearanceScreen.js +0 -8
  69. package/lib/presentation/screens/AppearanceScreen.js.map +0 -1
  70. package/lib/presentation/screens/SettingsScreen.d.ts +0 -38
  71. package/lib/presentation/screens/SettingsScreen.d.ts.map +0 -1
  72. package/lib/presentation/screens/SettingsScreen.js +0 -37
  73. package/lib/presentation/screens/SettingsScreen.js.map +0 -1
  74. package/lib/presentation/screens/components/AboutLegalSection.d.ts +0 -15
  75. package/lib/presentation/screens/components/AboutLegalSection.d.ts.map +0 -1
  76. package/lib/presentation/screens/components/AboutLegalSection.js +0 -28
  77. package/lib/presentation/screens/components/AboutLegalSection.js.map +0 -1
  78. package/lib/presentation/screens/components/AppearanceSection.d.ts +0 -12
  79. package/lib/presentation/screens/components/AppearanceSection.d.ts.map +0 -1
  80. package/lib/presentation/screens/components/AppearanceSection.js +0 -21
  81. package/lib/presentation/screens/components/AppearanceSection.js.map +0 -1
  82. package/lib/presentation/screens/components/LanguageSection.d.ts +0 -12
  83. package/lib/presentation/screens/components/LanguageSection.d.ts.map +0 -1
  84. package/lib/presentation/screens/components/LanguageSection.js +0 -26
  85. package/lib/presentation/screens/components/LanguageSection.js.map +0 -1
  86. package/lib/presentation/screens/components/NotificationsSection.d.ts +0 -12
  87. package/lib/presentation/screens/components/NotificationsSection.d.ts.map +0 -1
  88. package/lib/presentation/screens/components/NotificationsSection.js +0 -58
  89. package/lib/presentation/screens/components/NotificationsSection.js.map +0 -1
  90. package/lib/presentation/screens/components/SettingsContent.d.ts +0 -36
  91. package/lib/presentation/screens/components/SettingsContent.d.ts.map +0 -1
  92. package/lib/presentation/screens/components/SettingsContent.js +0 -81
  93. package/lib/presentation/screens/components/SettingsContent.js.map +0 -1
  94. package/lib/presentation/screens/components/SettingsHeader.d.ts +0 -12
  95. package/lib/presentation/screens/components/SettingsHeader.d.ts.map +0 -1
  96. package/lib/presentation/screens/components/SettingsHeader.js +0 -59
  97. package/lib/presentation/screens/components/SettingsHeader.js.map +0 -1
  98. package/lib/presentation/screens/components/index.d.ts +0 -9
  99. package/lib/presentation/screens/components/index.d.ts.map +0 -1
  100. package/lib/presentation/screens/components/index.js +0 -9
  101. package/lib/presentation/screens/components/index.js.map +0 -1
  102. package/lib/presentation/screens/hooks/useFeatureDetection.d.ts +0 -21
  103. package/lib/presentation/screens/hooks/useFeatureDetection.d.ts.map +0 -1
  104. package/lib/presentation/screens/hooks/useFeatureDetection.js +0 -82
  105. package/lib/presentation/screens/hooks/useFeatureDetection.js.map +0 -1
  106. package/lib/presentation/screens/types/CustomSection.d.ts +0 -19
  107. package/lib/presentation/screens/types/CustomSection.d.ts.map +0 -1
  108. package/lib/presentation/screens/types/CustomSection.js +0 -6
  109. package/lib/presentation/screens/types/CustomSection.js.map +0 -1
  110. package/lib/presentation/screens/types/ExtendedConfig.d.ts +0 -68
  111. package/lib/presentation/screens/types/ExtendedConfig.d.ts.map +0 -1
  112. package/lib/presentation/screens/types/ExtendedConfig.js +0 -6
  113. package/lib/presentation/screens/types/ExtendedConfig.js.map +0 -1
  114. package/lib/presentation/screens/types/FeatureConfig.d.ts +0 -95
  115. package/lib/presentation/screens/types/FeatureConfig.d.ts.map +0 -1
  116. package/lib/presentation/screens/types/FeatureConfig.js +0 -6
  117. package/lib/presentation/screens/types/FeatureConfig.js.map +0 -1
  118. package/lib/presentation/screens/types/SettingsConfig.d.ts +0 -97
  119. package/lib/presentation/screens/types/SettingsConfig.d.ts.map +0 -1
  120. package/lib/presentation/screens/types/SettingsConfig.js +0 -6
  121. package/lib/presentation/screens/types/SettingsConfig.js.map +0 -1
  122. package/lib/presentation/screens/types/index.d.ts +0 -10
  123. package/lib/presentation/screens/types/index.d.ts.map +0 -1
  124. package/lib/presentation/screens/types/index.js +0 -6
  125. package/lib/presentation/screens/types/index.js.map +0 -1
  126. package/lib/presentation/screens/utils/normalizeConfig.d.ts +0 -44
  127. package/lib/presentation/screens/utils/normalizeConfig.d.ts.map +0 -1
  128. package/lib/presentation/screens/utils/normalizeConfig.js +0 -38
  129. package/lib/presentation/screens/utils/normalizeConfig.js.map +0 -1
@@ -1,37 +0,0 @@
1
- /**
2
- * Settings Screen
3
- * Presentation layer - Composition only, no business logic
4
- */
5
- import React from "react";
6
- import { View, StatusBar, StyleSheet } from "react-native";
7
- import { useNavigation } from "@react-navigation/native";
8
- import { useDesignSystemTheme, useAppDesignTokens, } from "@umituz/react-native-design-system-theme";
9
- import { SettingsHeader } from "./components/SettingsHeader";
10
- import { SettingsContent } from "./components/SettingsContent";
11
- import { SettingsErrorBoundary } from "../components/SettingsErrorBoundary";
12
- import { normalizeSettingsConfig } from "./utils/normalizeConfig";
13
- import { useFeatureDetection } from "./hooks/useFeatureDetection";
14
- export const SettingsScreen = ({ config = {}, showUserProfile = false, userProfile, showFooter = true, footerText, customSections = [], showCloseButton = false, onClose, featureOptions, }) => {
15
- const navigation = useNavigation();
16
- const { themeMode } = useDesignSystemTheme();
17
- const tokens = useAppDesignTokens();
18
- const isDark = themeMode === "dark";
19
- const colors = tokens.colors;
20
- const normalizedConfig = normalizeSettingsConfig(config);
21
- const features = useFeatureDetection(normalizedConfig, navigation, featureOptions);
22
- return (<View style={[styles.container, { backgroundColor: colors.backgroundPrimary }]}>
23
- <StatusBar barStyle={isDark ? "light-content" : "dark-content"}/>
24
-
25
- <SettingsHeader showCloseButton={showCloseButton} onClose={onClose}/>
26
-
27
- <SettingsErrorBoundary>
28
- <SettingsContent normalizedConfig={normalizedConfig} features={features} showUserProfile={showUserProfile} userProfile={userProfile} showFooter={showFooter} footerText={footerText} customSections={customSections} showCloseButton={showCloseButton}/>
29
- </SettingsErrorBoundary>
30
- </View>);
31
- };
32
- const styles = StyleSheet.create({
33
- container: {
34
- flex: 1,
35
- },
36
- });
37
- //# sourceMappingURL=SettingsScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingsScreen.js","sourceRoot":"","sources":["../../../src/presentation/screens/SettingsScreen.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAkClE,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAC5D,MAAM,GAAG,EAAE,EACX,eAAe,GAAG,KAAK,EACvB,WAAW,EACX,UAAU,GAAG,IAAI,EACjB,UAAU,EACV,cAAc,GAAG,EAAE,EACnB,eAAe,GAAG,KAAK,EACvB,OAAO,EACP,cAAc,GACf,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,SAAS,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC,MAAM,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAE7B,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAEnF,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAC7E;MAAA,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,EAE/D;;MAAA,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAEnE;;MAAA,CAAC,qBAAqB,CACpB;QAAA,CAAC,eAAe,CACd,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CACnC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,eAAe,CAAC,CAAC,eAAe,CAAC,CACjC,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,cAAc,CAAC,CAAC,cAAc,CAAC,CAC/B,eAAe,CAAC,CAAC,eAAe,CAAC,EAErC;MAAA,EAAE,qBAAqB,CACzB;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,IAAI,EAAE,CAAC;KACR;CACF,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * About & Legal Section Component
3
- * Single Responsibility: Render about and legal settings section
4
- */
5
- import React from "react";
6
- import type { AboutConfig, LegalConfig } from "../types";
7
- interface AboutLegalSectionProps {
8
- showAbout: boolean;
9
- showLegal: boolean;
10
- aboutConfig?: AboutConfig;
11
- legalConfig?: LegalConfig;
12
- }
13
- export declare const AboutLegalSection: React.FC<AboutLegalSectionProps>;
14
- export {};
15
- //# sourceMappingURL=AboutLegalSection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AboutLegalSection.d.ts","sourceRoot":"","sources":["../../../../src/presentation/screens/components/AboutLegalSection.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEzD,UAAU,sBAAsB;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAUD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA4C9D,CAAC"}
@@ -1,28 +0,0 @@
1
- /**
2
- * About & Legal Section Component
3
- * Single Responsibility: Render about and legal settings section
4
- */
5
- import React from "react";
6
- import { Info, FileText } from "lucide-react-native";
7
- import { useNavigation } from "@react-navigation/native";
8
- import { useLocalization } from "@umituz/react-native-localization";
9
- import { SettingItem } from "../../components/SettingItem";
10
- import { SettingsSection } from "../../components/SettingsSection";
11
- export const AboutLegalSection = ({ showAbout, showLegal, aboutConfig, legalConfig, }) => {
12
- const navigation = useNavigation();
13
- const { t } = useLocalization();
14
- if (!showAbout && !showLegal) {
15
- return null;
16
- }
17
- const aboutRoute = aboutConfig?.route || aboutConfig?.defaultRoute || "About";
18
- const aboutTitle = aboutConfig?.title || t("settings.about.title");
19
- const aboutDescription = aboutConfig?.description || t("settings.about.description");
20
- const legalRoute = legalConfig?.route || legalConfig?.defaultRoute || "Legal";
21
- const legalTitle = legalConfig?.title || t("settings.legal.title");
22
- const legalDescription = legalConfig?.description || t("settings.legal.description");
23
- return (<SettingsSection title={t("settings.sections.about")}>
24
- {showAbout && (<SettingItem icon={Info} title={aboutTitle} value={aboutDescription} onPress={() => navigation.navigate(aboutRoute)}/>)}
25
- {showLegal && (<SettingItem icon={FileText} title={legalTitle} value={legalDescription} onPress={() => navigation.navigate(legalRoute)} isLast={true}/>)}
26
- </SettingsSection>);
27
- };
28
- //# sourceMappingURL=AboutLegalSection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AboutLegalSection.js","sourceRoot":"","sources":["../../../../src/presentation/screens/components/AboutLegalSection.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAkBnE,MAAM,CAAC,MAAM,iBAAiB,GAAqC,CAAC,EAClE,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,GACZ,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,aAAa,EAAkB,CAAC;IACnD,MAAM,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;IAEhC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,EAAE,KAAK,IAAI,WAAW,EAAE,YAAY,IAAI,OAAO,CAAC;IAC9E,MAAM,UAAU,GAAG,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC,sBAAsB,CAAC,CAAC;IACnE,MAAM,gBAAgB,GACpB,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC,4BAA4B,CAAC,CAAC;IAE9D,MAAM,UAAU,GAAG,WAAW,EAAE,KAAK,IAAI,WAAW,EAAE,YAAY,IAAI,OAAO,CAAC;IAC9E,MAAM,UAAU,GAAG,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC,sBAAsB,CAAC,CAAC;IACnE,MAAM,gBAAgB,GACpB,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC,4BAA4B,CAAC,CAAC;IAE9D,OAAO,CACL,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CACnD;MAAA,CAAC,SAAS,IAAI,CACZ,CAAC,WAAW,CACV,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,KAAK,CAAC,CAAC,UAAU,CAAC,CAClB,KAAK,CAAC,CAAC,gBAAgB,CAAC,CACxB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAoB,CAAC,CAAC,EACzD,CACH,CACD;MAAA,CAAC,SAAS,IAAI,CACZ,CAAC,WAAW,CACV,IAAI,CAAC,CAAC,QAAQ,CAAC,CACf,KAAK,CAAC,CAAC,UAAU,CAAC,CAClB,KAAK,CAAC,CAAC,gBAAgB,CAAC,CACxB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAoB,CAAC,CAAC,CACzD,MAAM,CAAC,CAAC,IAAI,CAAC,EACb,CACH,CACH;IAAA,EAAE,eAAe,CAAC,CACnB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Appearance Section Component
3
- * Single Responsibility: Render appearance settings section (theme customization)
4
- */
5
- import React from "react";
6
- import type { AppearanceConfig } from "../types";
7
- interface AppearanceSectionProps {
8
- config?: AppearanceConfig;
9
- }
10
- export declare const AppearanceSection: React.FC<AppearanceSectionProps>;
11
- export {};
12
- //# sourceMappingURL=AppearanceSection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppearanceSection.d.ts","sourceRoot":"","sources":["../../../../src/presentation/screens/components/AppearanceSection.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,UAAU,sBAAsB;IAC9B,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAoB9D,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Appearance Section Component
3
- * Single Responsibility: Render appearance settings section (theme customization)
4
- */
5
- import React from "react";
6
- import { Palette } from "lucide-react-native";
7
- import { useNavigation } from "@react-navigation/native";
8
- import { useLocalization } from "@umituz/react-native-localization";
9
- import { SettingItem } from "../../components/SettingItem";
10
- import { SettingsSection } from "../../components/SettingsSection";
11
- export const AppearanceSection = ({ config, }) => {
12
- const navigation = useNavigation();
13
- const { t } = useLocalization();
14
- const route = config?.route || config?.defaultRoute || "Appearance";
15
- const title = config?.title || t("settings.appearance.title");
16
- const description = config?.description || t("settings.appearance.description");
17
- return (<SettingsSection title={t("settings.sections.app.title")}>
18
- <SettingItem icon={Palette} title={title} value={description} onPress={() => navigation.navigate(route)}/>
19
- </SettingsSection>);
20
- };
21
- //# sourceMappingURL=AppearanceSection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppearanceSection.js","sourceRoot":"","sources":["../../../../src/presentation/screens/components/AppearanceSection.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAOnE,MAAM,CAAC,MAAM,iBAAiB,GAAqC,CAAC,EAClE,MAAM,GACP,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;IAEhC,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,MAAM,EAAE,YAAY,IAAI,YAAY,CAAC;IACpE,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,CAAC,CAAC,iCAAiC,CAAC,CAAC;IAEhF,OAAO,CACL,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CACvD;MAAA,CAAC,WAAW,CACV,IAAI,CAAC,CAAC,OAAO,CAAC,CACd,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,KAAK,CAAC,CAAC,WAAW,CAAC,CACnB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAc,CAAC,CAAC,EAEvD;IAAA,EAAE,eAAe,CAAC,CACnB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Language Section Component
3
- * Single Responsibility: Render language settings section
4
- */
5
- import React from "react";
6
- import type { LanguageConfig } from "../types";
7
- interface LanguageSectionProps {
8
- config?: LanguageConfig;
9
- }
10
- export declare const LanguageSection: React.FC<LanguageSectionProps>;
11
- export {};
12
- //# sourceMappingURL=LanguageSection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LanguageSection.d.ts","sourceRoot":"","sources":["../../../../src/presentation/screens/components/LanguageSection.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA0B1D,CAAC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Language Section Component
3
- * Single Responsibility: Render language settings section
4
- */
5
- import React from "react";
6
- import { Languages } from "lucide-react-native";
7
- import { useNavigation } from "@react-navigation/native";
8
- import { useLocalization, getLanguageByCode } from "@umituz/react-native-localization";
9
- import { SettingItem } from "../../components/SettingItem";
10
- import { SettingsSection } from "../../components/SettingsSection";
11
- export const LanguageSection = ({ config, }) => {
12
- const navigation = useNavigation();
13
- const { t, currentLanguage } = useLocalization();
14
- const route = config?.route || "LanguageSelection";
15
- const title = config?.title || t("settings.language");
16
- const description = config?.description || "";
17
- const currentLang = getLanguageByCode(currentLanguage);
18
- const defaultLanguageDisplay = config?.defaultLanguageDisplay || "English";
19
- const languageDisplay = currentLang
20
- ? `${currentLang.flag} ${currentLang.nativeName}`
21
- : defaultLanguageDisplay;
22
- return (<SettingsSection title={t("settings.sections.app.title")}>
23
- <SettingItem icon={Languages} title={title} value={languageDisplay} onPress={() => navigation.navigate(route)}/>
24
- </SettingsSection>);
25
- };
26
- //# sourceMappingURL=LanguageSection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LanguageSection.js","sourceRoot":"","sources":["../../../../src/presentation/screens/components/LanguageSection.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAOnE,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC9D,MAAM,GACP,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAAC;IAEjD,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,mBAAmB,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;IAE9C,MAAM,WAAW,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACvD,MAAM,sBAAsB,GAAG,MAAM,EAAE,sBAAsB,IAAI,SAAS,CAAC;IAC3E,MAAM,eAAe,GAAG,WAAW;QACjC,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,UAAU,EAAE;QACjD,CAAC,CAAC,sBAAsB,CAAC;IAE3B,OAAO,CACL,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CACvD;MAAA,CAAC,WAAW,CACV,IAAI,CAAC,CAAC,SAAS,CAAC,CAChB,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,KAAK,CAAC,CAAC,eAAe,CAAC,CACvB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAc,CAAC,CAAC,EAEvD;IAAA,EAAE,eAAe,CAAC,CACnB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Notifications Section Component
3
- * Single Responsibility: Render notifications settings section
4
- */
5
- import React from "react";
6
- import type { NotificationsConfig } from "../types";
7
- interface NotificationsSectionProps {
8
- config?: NotificationsConfig;
9
- }
10
- export declare const NotificationsSection: React.FC<NotificationsSectionProps>;
11
- export {};
12
- //# sourceMappingURL=NotificationsSection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotificationsSection.d.ts","sourceRoot":"","sources":["../../../../src/presentation/screens/components/NotificationsSection.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAMhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAiBpD,UAAU,yBAAyB;IACjC,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA+DpE,CAAC"}
@@ -1,58 +0,0 @@
1
- /**
2
- * Notifications Section Component
3
- * Single Responsibility: Render notifications settings section
4
- */
5
- import React, { useState, useEffect, useCallback } from "react";
6
- import { Bell } from "lucide-react-native";
7
- import { useNavigation } from "@react-navigation/native";
8
- import { useLocalization } from "@umituz/react-native-localization";
9
- import { SettingItem } from "../../components/SettingItem";
10
- import { SettingsSection } from "../../components/SettingsSection";
11
- // Optional notification service
12
- let notificationService = null;
13
- try {
14
- // eslint-disable-next-line @typescript-eslint/no-require-imports
15
- const module = require("@umituz/react-native-notifications");
16
- if (module?.notificationService && typeof module.notificationService === 'object') {
17
- notificationService = module.notificationService;
18
- }
19
- }
20
- catch {
21
- // Package not available
22
- }
23
- export const NotificationsSection = ({ config, }) => {
24
- const navigation = useNavigation();
25
- const { t } = useLocalization();
26
- const [notificationsEnabled, setNotificationsEnabled] = useState(config?.initialValue ?? true);
27
- useEffect(() => {
28
- if (config?.initialValue !== undefined) {
29
- setNotificationsEnabled(config.initialValue);
30
- }
31
- }, [config?.initialValue]);
32
- const handleToggle = useCallback(async (value) => {
33
- if (notificationService && !value) {
34
- const hasPermissions = await notificationService.hasPermissions?.();
35
- if (!hasPermissions) {
36
- await notificationService.requestPermissions?.();
37
- }
38
- }
39
- setNotificationsEnabled(value);
40
- config?.onToggleChange?.(value);
41
- }, [config?.onToggleChange]);
42
- const handlePress = useCallback(async () => {
43
- if (notificationService) {
44
- const hasPermissions = await notificationService.hasPermissions?.();
45
- if (!hasPermissions) {
46
- await notificationService.requestPermissions?.();
47
- }
48
- }
49
- navigation.navigate(config?.route || config?.defaultRoute || "Notifications");
50
- }, [navigation, config?.route, config?.defaultRoute]);
51
- const title = config?.title || t("settings.notifications.title");
52
- const description = config?.description || t("settings.notifications.description");
53
- const showToggle = config?.showToggle ?? true;
54
- return (<SettingsSection title={t("settings.sections.general")}>
55
- {showToggle ? (<SettingItem icon={Bell} title={title} showSwitch={true} switchValue={notificationsEnabled} onSwitchChange={handleToggle} isLast={true}/>) : (<SettingItem icon={Bell} title={title} value={description} onPress={handlePress} isLast={true}/>)}
56
- </SettingsSection>);
57
- };
58
- //# sourceMappingURL=NotificationsSection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotificationsSection.js","sourceRoot":"","sources":["../../../../src/presentation/screens/components/NotificationsSection.tsx"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- /**
2
- * Settings Content Component
3
- * Renders all settings sections and custom content
4
- */
5
- import React from "react";
6
- import type { NormalizedConfig } from "../utils/normalizeConfig";
7
- import type { CustomSettingsSection } from "../types";
8
- interface SettingsContentProps {
9
- normalizedConfig: NormalizedConfig;
10
- config?: any;
11
- features: {
12
- appearance: boolean;
13
- language: boolean;
14
- notifications: boolean;
15
- about: boolean;
16
- legal: boolean;
17
- };
18
- showUserProfile?: boolean;
19
- userProfile?: {
20
- displayName?: string;
21
- userId?: string;
22
- isGuest?: boolean;
23
- avatarUrl?: string;
24
- accountSettingsRoute?: string;
25
- onPress?: () => void;
26
- guestDisplayName?: string;
27
- avatarServiceUrl?: string;
28
- };
29
- showFooter?: boolean;
30
- footerText?: string;
31
- customSections?: CustomSettingsSection[];
32
- showCloseButton?: boolean;
33
- }
34
- export declare const SettingsContent: React.FC<SettingsContentProps>;
35
- export {};
36
- //# sourceMappingURL=SettingsContent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingsContent.d.ts","sourceRoot":"","sources":["../../../../src/presentation/screens/components/SettingsContent.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAYvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEtD,UAAU,oBAAoB;IAC5B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE;QACR,UAAU,EAAE,OAAO,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAuG1D,CAAC"}
@@ -1,81 +0,0 @@
1
- /**
2
- * Settings Content Component
3
- * Renders all settings sections and custom content
4
- */
5
- import React, { useMemo } from "react";
6
- import { View, ScrollView, StyleSheet } from "react-native";
7
- import { useSafeAreaInsets } from "react-native-safe-area-context";
8
- import { useAppDesignTokens } from "@umituz/react-native-design-system-theme";
9
- import { useLocalization } from "@umituz/react-native-localization";
10
- import { SettingsFooter } from "../../components/SettingsFooter";
11
- import { UserProfileHeader } from "../../components/UserProfileHeader";
12
- import { SettingsSection } from "../../components/SettingsSection";
13
- import { AppearanceSection } from "./AppearanceSection";
14
- import { LanguageSection } from "./LanguageSection";
15
- import { NotificationsSection } from "./NotificationsSection";
16
- import { AboutLegalSection } from "./AboutLegalSection";
17
- export const SettingsContent = ({ normalizedConfig, config, features, showUserProfile = false, userProfile, showFooter = true, footerText, customSections = [], showCloseButton = false, }) => {
18
- const tokens = useAppDesignTokens();
19
- const insets = useSafeAreaInsets();
20
- const { t } = useLocalization();
21
- const hasAnyFeatures = useMemo(() => features.appearance ||
22
- features.language ||
23
- features.notifications ||
24
- features.about ||
25
- features.legal ||
26
- customSections.length > 0, [features, customSections.length]);
27
- const sortedSections = useMemo(() => {
28
- return Array.from(customSections)
29
- .sort((a, b) => (a.order ?? 999) - (b.order ?? 999));
30
- }, [customSections]);
31
- return (<ScrollView style={styles.scrollView} contentContainerStyle={[
32
- styles.scrollContent,
33
- {
34
- paddingTop: showCloseButton ? tokens.spacing.md : insets.top + tokens.spacing.md,
35
- paddingBottom: tokens.spacing.xxxl + tokens.spacing.xl,
36
- paddingHorizontal: 0,
37
- },
38
- ]} showsVerticalScrollIndicator={false}>
39
- {showUserProfile && (<View style={styles.profileContainer}>
40
- <UserProfileHeader displayName={userProfile?.displayName} userId={userProfile?.userId} isGuest={userProfile?.isGuest} avatarUrl={userProfile?.avatarUrl} accountSettingsRoute={userProfile?.accountSettingsRoute} onPress={userProfile?.onPress}/>
41
- </View>)}
42
-
43
- {features.appearance && (<AppearanceSection config={normalizedConfig.appearance.config}/>)}
44
-
45
- {features.language && (<LanguageSection config={normalizedConfig.language.config}/>)}
46
-
47
- {features.notifications && (<NotificationsSection config={normalizedConfig.notifications.config}/>)}
48
-
49
- {(features.about || features.legal) && (<AboutLegalSection showAbout={features.about} showLegal={features.legal} aboutConfig={normalizedConfig.about.config} legalConfig={normalizedConfig.legal.config}/>)}
50
-
51
- {customSections && customSections.length > 0 && (<>
52
- {sortedSections.map((section, index) => (<SettingsSection key={section.id || `custom-${index}`} title={section.title}>
53
- {section.content}
54
- </SettingsSection>))}
55
- </>)}
56
-
57
- {!hasAnyFeatures && (<View style={styles.emptyContainer}>
58
- <SettingsSection title={config?.emptyStateText || t("settings.noOptionsAvailable") || "No settings available"}>
59
- <View />
60
- </SettingsSection>
61
- </View>)}
62
-
63
- {showFooter && <SettingsFooter versionText={footerText}/>}
64
- </ScrollView>);
65
- };
66
- const styles = StyleSheet.create({
67
- scrollView: {
68
- flex: 1,
69
- },
70
- scrollContent: {
71
- flexGrow: 1,
72
- },
73
- profileContainer: {
74
- marginBottom: 32,
75
- paddingHorizontal: 0,
76
- },
77
- emptyContainer: {
78
- paddingVertical: 24,
79
- },
80
- });
81
- //# sourceMappingURL=SettingsContent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingsContent.js","sourceRoot":"","sources":["../../../../src/presentation/screens/components/SettingsContent.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Settings Header Component
3
- * Handles close button functionality
4
- */
5
- import React from "react";
6
- interface SettingsHeaderProps {
7
- showCloseButton?: boolean;
8
- onClose?: () => void;
9
- }
10
- export declare const SettingsHeader: React.FC<SettingsHeaderProps>;
11
- export {};
12
- //# sourceMappingURL=SettingsHeader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingsHeader.d.ts","sourceRoot":"","sources":["../../../../src/presentation/screens/components/SettingsHeader.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,UAAU,mBAAmB;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA4CxD,CAAC"}
@@ -1,59 +0,0 @@
1
- /**
2
- * Settings Header Component
3
- * Handles close button functionality
4
- */
5
- import React from "react";
6
- import { View, TouchableOpacity, StyleSheet } from "react-native";
7
- import { useSafeAreaInsets } from "react-native-safe-area-context";
8
- import { useNavigation } from "@react-navigation/native";
9
- import { useAppDesignTokens } from "@umituz/react-native-design-system-theme";
10
- import { AtomicIcon } from "@umituz/react-native-design-system-atoms";
11
- export const SettingsHeader = ({ showCloseButton = false, onClose, }) => {
12
- const navigation = useNavigation();
13
- const tokens = useAppDesignTokens();
14
- const insets = useSafeAreaInsets();
15
- const handleClose = () => {
16
- if (onClose) {
17
- onClose();
18
- }
19
- else {
20
- navigation.goBack();
21
- }
22
- };
23
- if (!showCloseButton) {
24
- return null;
25
- }
26
- return (<View style={[
27
- styles.closeButtonContainer,
28
- {
29
- paddingTop: insets.top + tokens.spacing.xs,
30
- paddingRight: tokens.spacing.md,
31
- },
32
- ]}>
33
- <TouchableOpacity onPress={handleClose} style={[
34
- styles.closeButton,
35
- {
36
- backgroundColor: tokens.colors.surface,
37
- },
38
- ]} hitSlop={{ top: 10, bottom: 10, left: 10, right: 10 }}>
39
- <AtomicIcon name="X" size="lg" color="primary"/>
40
- </TouchableOpacity>
41
- </View>);
42
- };
43
- const styles = StyleSheet.create({
44
- closeButtonContainer: {
45
- position: "absolute",
46
- top: 0,
47
- right: 0,
48
- zIndex: 10,
49
- alignItems: "flex-end",
50
- },
51
- closeButton: {
52
- width: 44,
53
- height: 44,
54
- borderRadius: 22,
55
- justifyContent: "center",
56
- alignItems: "center",
57
- },
58
- });
59
- //# sourceMappingURL=SettingsHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingsHeader.js","sourceRoot":"","sources":["../../../../src/presentation/screens/components/SettingsHeader.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAOtE,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAC5D,eAAe,GAAG,KAAK,EACvB,OAAO,GACR,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IAEnC,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,oBAAoB;YAC3B;gBACE,UAAU,EAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC1C,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;aAChC;SACF,CAAC,CAEF;MAAA,CAAC,gBAAgB,CACf,OAAO,CAAC,CAAC,WAAW,CAAC,CACrB,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,WAAW;YAClB;gBACE,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;aACvC;SACF,CAAC,CACF,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAEtD;QAAA,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAChD;MAAA,EAAE,gBAAgB,CACpB;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,oBAAoB,EAAE;QACpB,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,UAAU;KACvB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;KACrB;CACF,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Settings Screen Components
3
- * Barrel export for all section components
4
- */
5
- export { AppearanceSection } from "./AppearanceSection";
6
- export { LanguageSection } from "./LanguageSection";
7
- export { NotificationsSection } from "./NotificationsSection";
8
- export { AboutLegalSection } from "./AboutLegalSection";
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/presentation/screens/components/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Settings Screen Components
3
- * Barrel export for all section components
4
- */
5
- export { AppearanceSection } from "./AppearanceSection";
6
- export { LanguageSection } from "./LanguageSection";
7
- export { NotificationsSection } from "./NotificationsSection";
8
- export { AboutLegalSection } from "./AboutLegalSection";
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/presentation/screens/components/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Feature Detection Hook
3
- * Single Responsibility: Detect which features should be shown
4
- */
5
- import type { NormalizedConfig } from "../utils/normalizeConfig";
6
- /**
7
- * Hook to detect which features should be shown
8
- */
9
- export declare function useFeatureDetection(normalizedConfig: NormalizedConfig, navigation: any, options?: {
10
- notificationServiceAvailable?: boolean;
11
- }): {
12
- appearance: boolean;
13
- language: boolean;
14
- notifications: boolean;
15
- about: boolean;
16
- legal: boolean;
17
- account: boolean;
18
- support: boolean;
19
- developer: boolean;
20
- };
21
- //# sourceMappingURL=useFeatureDetection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFeatureDetection.d.ts","sourceRoot":"","sources":["../../../../src/presentation/screens/hooks/useFeatureDetection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA8CjE;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,GAAG,EACf,OAAO,CAAC,EAAE;IACR,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC;;;;;;;;;EAwDF"}