@umituz/react-native-settings 4.20.56 → 4.20.58

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 (49) hide show
  1. package/README.md +146 -4
  2. package/package.json +1 -2
  3. package/src/__tests__/setup.ts +1 -4
  4. package/src/application/README.md +322 -0
  5. package/src/domains/about/README.md +452 -0
  6. package/src/domains/about/presentation/hooks/README.md +350 -0
  7. package/src/domains/appearance/README.md +596 -0
  8. package/src/domains/appearance/hooks/README.md +366 -0
  9. package/src/domains/appearance/infrastructure/services/README.md +455 -0
  10. package/src/domains/appearance/presentation/components/README.md +493 -0
  11. package/src/domains/cloud-sync/README.md +451 -0
  12. package/src/domains/cloud-sync/presentation/components/README.md +493 -0
  13. package/src/domains/dev/README.md +477 -0
  14. package/src/domains/disclaimer/README.md +421 -0
  15. package/src/domains/disclaimer/presentation/components/README.md +394 -0
  16. package/src/domains/faqs/README.md +586 -0
  17. package/src/domains/feedback/README.md +565 -0
  18. package/src/domains/feedback/presentation/hooks/README.md +428 -0
  19. package/src/domains/legal/README.md +549 -0
  20. package/src/domains/rating/README.md +452 -0
  21. package/src/domains/rating/presentation/components/README.md +475 -0
  22. package/src/domains/video-tutorials/README.md +482 -0
  23. package/src/domains/video-tutorials/presentation/components/README.md +433 -0
  24. package/src/infrastructure/README.md +509 -0
  25. package/src/infrastructure/repositories/README.md +475 -0
  26. package/src/infrastructure/services/README.md +510 -0
  27. package/src/presentation/components/README.md +482 -0
  28. package/src/presentation/components/SettingsErrorBoundary/README.md +455 -0
  29. package/src/presentation/components/SettingsFooter/README.md +446 -0
  30. package/src/presentation/components/SettingsItemCard/README.md +457 -0
  31. package/src/presentation/components/SettingsSection/README.md +421 -0
  32. package/src/presentation/hooks/README.md +413 -0
  33. package/src/presentation/hooks/mutations/README.md +430 -0
  34. package/src/presentation/hooks/queries/README.md +441 -0
  35. package/src/presentation/navigation/README.md +532 -0
  36. package/src/presentation/navigation/components/README.md +330 -0
  37. package/src/presentation/navigation/hooks/README.md +399 -0
  38. package/src/presentation/navigation/utils/README.md +442 -0
  39. package/src/presentation/screens/README.md +525 -0
  40. package/src/presentation/screens/components/SettingsContent/README.md +404 -0
  41. package/src/presentation/screens/components/SettingsHeader/README.md +322 -0
  42. package/src/presentation/screens/components/sections/CustomSettingsList/README.md +388 -0
  43. package/src/presentation/screens/components/sections/FeatureSettingsSection/README.md +232 -0
  44. package/src/presentation/screens/components/sections/IdentitySettingsSection/README.md +325 -0
  45. package/src/presentation/screens/components/sections/ProfileSectionLoader/README.md +480 -0
  46. package/src/presentation/screens/components/sections/SupportSettingsSection/README.md +391 -0
  47. package/src/presentation/screens/hooks/README.md +383 -0
  48. package/src/presentation/screens/types/README.md +439 -0
  49. package/src/presentation/screens/utils/README.md +288 -0
@@ -0,0 +1,391 @@
1
+ # Support Settings Section
2
+
3
+ Section component that displays user support features including feedback, rating, and FAQs.
4
+
5
+ ## Features
6
+
7
+ - **Feedback System**: User feedback collection and submission
8
+ - **Rating System**: App rating and review functionality
9
+ - **FAQ Access**: Quick access to frequently asked questions
10
+ - **Modals**: Feedback modal with rating and description
11
+ - **Internationalization**: Full i18n support
12
+
13
+ ## Installation
14
+
15
+ This component is part of `@umituz/react-native-settings`.
16
+
17
+ ## Usage
18
+
19
+ ### Basic Usage
20
+
21
+ ```tsx
22
+ import { SupportSettingsSection } from '@umituz/react-native-settings';
23
+
24
+ function MySettingsScreen() {
25
+ const normalizedConfig = {
26
+ feedback: { config: {} },
27
+ rating: { config: {} },
28
+ faqs: { config: {} },
29
+ };
30
+
31
+ const features = {
32
+ feedback: true,
33
+ rating: true,
34
+ faqs: true,
35
+ };
36
+
37
+ return (
38
+ <SupportSettingsSection
39
+ normalizedConfig={normalizedConfig}
40
+ features={features}
41
+ />
42
+ );
43
+ }
44
+ ```
45
+
46
+ ## Props
47
+
48
+ ### SupportSettingsSectionProps
49
+
50
+ | Prop | Type | Default | Description |
51
+ |------|------|---------|-------------|
52
+ | `normalizedConfig` | `NormalizedConfig` | **Required** | Normalized settings configuration |
53
+ | `features` | `FeatureFlags` | **Required** | Feature visibility flags |
54
+
55
+ ### FeatureFlags
56
+
57
+ ```typescript
58
+ interface FeatureFlags {
59
+ feedback: boolean; // Show feedback option
60
+ rating: boolean; // Show rating option
61
+ faqs: boolean; // Show FAQ access
62
+ }
63
+ ```
64
+
65
+ ## Component Structure
66
+
67
+ ```
68
+ SupportSettingsSection
69
+ └── SettingsSection "Support"
70
+ ├── SupportSection
71
+ │ ├── Feedback Item (if features.feedback)
72
+ │ └── Rating Item (if features.rating)
73
+ └── FAQ Item (if features.faqs)
74
+ ```
75
+
76
+ ## Examples
77
+
78
+ ### All Support Features
79
+
80
+ ```tsx
81
+ function FullSupportSettings() {
82
+ const normalizedConfig = {
83
+ feedback: {
84
+ config: {
85
+ title: 'Send Feedback',
86
+ description: 'Help us improve',
87
+ },
88
+ },
89
+ rating: {
90
+ config: {
91
+ title: 'Rate This App',
92
+ description: 'Love it? Rate us!',
93
+ },
94
+ },
95
+ faqs: {
96
+ config: {
97
+ title: 'Help & FAQs',
98
+ description: 'Find answers',
99
+ },
100
+ },
101
+ };
102
+
103
+ const features = {
104
+ feedback: true,
105
+ rating: true,
106
+ faqs: true,
107
+ };
108
+
109
+ return (
110
+ <SupportSettingsSection
111
+ normalizedConfig={normalizedConfig}
112
+ features={features}
113
+ />
114
+ );
115
+ }
116
+ ```
117
+
118
+ ### Feedback Only
119
+
120
+ ```tsx
121
+ function FeedbackOnlySettings() {
122
+ const features = {
123
+ feedback: true,
124
+ rating: false,
125
+ faqs: false,
126
+ };
127
+
128
+ return (
129
+ <SupportSettingsSection
130
+ normalizedConfig={{}}
131
+ features={features}
132
+ />
133
+ );
134
+ }
135
+ ```
136
+
137
+ ### Custom Feedback Configuration
138
+
139
+ ```tsx
140
+ function CustomFeedbackSettings() {
141
+ const normalizedConfig = {
142
+ feedback: {
143
+ config: {
144
+ title: 'Share Your Thoughts',
145
+ description: 'We value your feedback',
146
+ feedbackTypes: ['general', 'bug', 'feature'],
147
+ },
148
+ },
149
+ };
150
+
151
+ return (
152
+ <SupportSettingsSection
153
+ normalizedConfig={normalizedConfig}
154
+ features={{ feedback: true, rating: false, faqs: false }}
155
+ />
156
+ );
157
+ }
158
+ ```
159
+
160
+ ## Sub-Components
161
+
162
+ ### SupportSection
163
+
164
+ Wrapper component for feedback and rating items.
165
+
166
+ ```tsx
167
+ <SupportSection
168
+ renderSection={(props) => <SettingsSection>{props.children}</SettingsSection>}
169
+ renderItem={(props) => <SettingsItemCard {...props} />}
170
+ feedbackConfig={{
171
+ enabled: true,
172
+ config: {
173
+ title: 'Send Feedback',
174
+ description: 'Tell us what you think',
175
+ },
176
+ }}
177
+ ratingConfig={{
178
+ enabled: true,
179
+ config: {
180
+ title: 'Rate Us',
181
+ description: '5 stars would be great!',
182
+ },
183
+ }}
184
+ />
185
+ ```
186
+
187
+ ### SupportSection Props
188
+
189
+ | Prop | Type | Description |
190
+ |------|------|-------------|
191
+ | `renderSection` | `(props) => ReactNode` | Section renderer |
192
+ | `renderItem` | `(props) => ReactNode` | Item renderer |
193
+ | `feedbackConfig` | `FeedbackConfig` | Feedback configuration |
194
+ | `ratingConfig` | `RatingConfig` | Rating configuration |
195
+
196
+ ### FeedbackModalTexts
197
+
198
+ Configuration for feedback modal texts:
199
+
200
+ ```typescript
201
+ interface FeedbackModalTexts {
202
+ title: string;
203
+ ratingLabel: string;
204
+ descriptionPlaceholder: string;
205
+ submitButton: string;
206
+ submittingButton: string;
207
+ feedbackTypes: Array<{
208
+ type: FeedbackType;
209
+ label: string;
210
+ }>;
211
+ defaultTitle: (type) => string;
212
+ }
213
+ ```
214
+
215
+ ## Feedback Configuration
216
+
217
+ ```typescript
218
+ interface FeedbackConfig {
219
+ enabled: boolean;
220
+ config?: {
221
+ title?: string;
222
+ description?: string;
223
+ feedbackTypes?: FeedbackType[];
224
+ };
225
+ }
226
+ ```
227
+
228
+ ### Rating Configuration
229
+
230
+ ```typescript
231
+ interface RatingConfig {
232
+ enabled: boolean;
233
+ config?: {
234
+ title?: string;
235
+ description?: string;
236
+ storeUrl?: string;
237
+ };
238
+ }
239
+ ```
240
+
241
+ ### FAQ Configuration
242
+
243
+ ```typescript
244
+ interface FAQConfig {
245
+ enabled: boolean;
246
+ config?: {
247
+ title?: string;
248
+ description?: string;
249
+ categories?: FAQCategory[];
250
+ };
251
+ }
252
+ ```
253
+
254
+ ## Internationalization
255
+
256
+ Translation keys used:
257
+
258
+ ```typescript
259
+ // Section
260
+ t("settings.support.title")
261
+
262
+ // Feedback
263
+ t("settings.feedback.title")
264
+ t("settings.feedback.description")
265
+ t("settings.feedback.modal.title")
266
+ t("settings.feedback.modal.ratingLabel")
267
+ t("settings.feedback.modal.descriptionPlaceholder")
268
+ t("settings.feedback.modal.submitButton")
269
+ t("settings.feedback.modal.submittingButton")
270
+
271
+ // Feedback Types
272
+ t("settings.feedback.types.general")
273
+ t("settings.feedback.types.bugReport")
274
+ t("settings.feedback.types.featureRequest")
275
+ t("settings.feedback.types.improvement")
276
+ t("settings.feedback.types.other")
277
+
278
+ // Rating
279
+ t("settings.rating.title")
280
+ t("settings.rating.description")
281
+
282
+ // FAQ
283
+ t("settings.faqs.title")
284
+ t("settings.faqs.description")
285
+ ```
286
+
287
+ ## Examples
288
+
289
+ ### With Store Rating
290
+
291
+ ```tsx
292
+ function StoreRatingSupport() {
293
+ const config = {
294
+ rating: {
295
+ config: {
296
+ title: 'Rate Us on App Store',
297
+ description: 'Your feedback helps us improve',
298
+ storeUrl: 'https://apps.apple.com/app/id123',
299
+ },
300
+ },
301
+ };
302
+
303
+ return (
304
+ <SupportSettingsSection
305
+ normalizedConfig={config}
306
+ features={{ rating: true }}
307
+ />
308
+ );
309
+ }
310
+ ```
311
+
312
+ ### Custom Feedback Types
313
+
314
+ ```tsx
315
+ function CustomFeedbackTypes() {
316
+ const config = {
317
+ feedback: {
318
+ config: {
319
+ feedbackTypes: ['bug_report', 'feature_request', 'ui_issue'],
320
+ },
321
+ },
322
+ };
323
+
324
+ return (
325
+ <SupportSettingsSection
326
+ normalizedConfig={config}
327
+ features={{ feedback: true }}
328
+ />
329
+ );
330
+ }
331
+ ```
332
+
333
+ ### With FAQ Categories
334
+
335
+ ```tsx
336
+ function FAQWithCategories() {
337
+ const config = {
338
+ faqs: {
339
+ config: {
340
+ categories: [
341
+ {
342
+ id: 'getting-started',
343
+ title: 'Getting Started',
344
+ questions: [
345
+ { id: 'q1', question: 'How to begin?', answer: '...' },
346
+ ],
347
+ },
348
+ ],
349
+ },
350
+ },
351
+ };
352
+
353
+ return (
354
+ <SupportSettingsSection
355
+ normalizedConfig={config}
356
+ features={{ faqs: true }}
357
+ />
358
+ );
359
+ }
360
+ ```
361
+
362
+ ## Navigation
363
+
364
+ FAQ navigation handler:
365
+
366
+ ```tsx
367
+ const handleFAQPress = useCallback(() => {
368
+ navigation.navigate("FAQ");
369
+ }, [navigation]);
370
+ ```
371
+
372
+ ## Best Practices
373
+
374
+ 1. **User Feedback**: Always provide feedback option
375
+ 2. **Rating Prompt**: Show rating prompt at appropriate times
376
+ 3. **FAQ Access**: Make FAQs easily accessible
377
+ 4. **Modal Design**: Keep feedback modal simple and clear
378
+ 5. **Feedback Types**: Provide relevant feedback categories
379
+ 6. **Thank Users**: Always thank users for feedback
380
+ 7. **Follow Up**: Consider providing support contact
381
+
382
+ ## Related
383
+
384
+ - **Feedback Domain**: Feedback system components
385
+ - **Rating Domain**: Rating components
386
+ - **FAQs Domain**: FAQ system
387
+ - **Support Section**: Support components
388
+
389
+ ## License
390
+
391
+ MIT