@umituz/react-native-settings 4.20.62 → 4.21.2

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 (70) hide show
  1. package/package.json +6 -61
  2. package/src/domains/feedback/domain/entities/FeedbackEntity.ts +8 -8
  3. package/src/domains/gamification/components/AchievementCard.tsx +142 -0
  4. package/src/domains/gamification/components/AchievementItem.tsx +182 -0
  5. package/src/domains/gamification/components/AchievementToast.tsx +122 -0
  6. package/src/domains/gamification/components/GamificationScreen/AchievementsList.tsx +84 -0
  7. package/src/domains/gamification/components/GamificationScreen/Header.tsx +29 -0
  8. package/src/domains/gamification/components/GamificationScreen/StatsGrid.tsx +51 -0
  9. package/src/domains/gamification/components/GamificationScreen/index.tsx +111 -0
  10. package/src/domains/gamification/components/GamificationScreen/styles.ts +43 -0
  11. package/src/domains/gamification/components/GamificationScreen/types.ts +77 -0
  12. package/src/domains/gamification/components/GamificationScreenWrapper.tsx +4 -4
  13. package/src/domains/gamification/components/GamificationSettingsItem.tsx +1 -1
  14. package/src/domains/gamification/components/LevelProgress.tsx +129 -0
  15. package/src/domains/gamification/components/PointsBadge.tsx +60 -0
  16. package/src/domains/gamification/components/StatsCard.tsx +89 -0
  17. package/src/domains/gamification/components/StreakDisplay.tsx +119 -0
  18. package/src/domains/gamification/components/index.ts +13 -0
  19. package/src/domains/gamification/examples/gamification.config.example.ts +1 -1
  20. package/src/domains/gamification/hooks/useGamification.ts +91 -0
  21. package/src/domains/gamification/index.ts +46 -19
  22. package/src/domains/gamification/store/gamificationStore.ts +162 -0
  23. package/src/domains/gamification/types/index.ts +95 -23
  24. package/src/domains/gamification/types/settings.ts +28 -0
  25. package/src/domains/gamification/utils/calculations.ts +85 -0
  26. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -51
  27. package/.github/ISSUE_TEMPLATE/documentation.md +0 -52
  28. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -63
  29. package/.github/PULL_REQUEST_TEMPLATE.md +0 -84
  30. package/AI_AGENT_GUIDELINES.md +0 -367
  31. package/ARCHITECTURE.md +0 -246
  32. package/CHANGELOG.md +0 -67
  33. package/CODE_OF_CONDUCT.md +0 -75
  34. package/CONTRIBUTING.md +0 -107
  35. package/DOCUMENTATION_MIGRATION.md +0 -319
  36. package/DOCUMENTATION_TEMPLATE.md +0 -155
  37. package/SECURITY.md +0 -98
  38. package/SETTINGS_SCREEN_GUIDE.md +0 -185
  39. package/TESTING.md +0 -358
  40. package/src/__tests__/integration.test.tsx +0 -371
  41. package/src/__tests__/performance.test.tsx +0 -369
  42. package/src/__tests__/setup.test.tsx +0 -20
  43. package/src/__tests__/setup.ts +0 -154
  44. package/src/domains/about/__tests__/integration.test.tsx +0 -328
  45. package/src/domains/about/__tests__/types.d.ts +0 -5
  46. package/src/domains/about/domain/entities/__tests__/AppInfo.test.ts +0 -93
  47. package/src/domains/about/infrastructure/repositories/__tests__/AboutRepository.test.ts +0 -153
  48. package/src/domains/about/presentation/components/__tests__/AboutContent.simple.test.tsx +0 -178
  49. package/src/domains/about/presentation/components/__tests__/AboutContent.test.tsx +0 -293
  50. package/src/domains/about/presentation/components/__tests__/AboutHeader.test.tsx +0 -201
  51. package/src/domains/about/presentation/components/__tests__/AboutSettingItem.test.tsx +0 -71
  52. package/src/domains/about/presentation/hooks/__tests__/useAboutInfo.simple.test.tsx +0 -229
  53. package/src/domains/about/presentation/hooks/__tests__/useAboutInfo.test.tsx +0 -240
  54. package/src/domains/about/presentation/screens/__tests__/AboutScreen.simple.test.tsx +0 -199
  55. package/src/domains/about/presentation/screens/__tests__/AboutScreen.test.tsx +0 -366
  56. package/src/domains/about/utils/__tests__/index.test.ts +0 -408
  57. package/src/domains/appearance/__tests__/components/AppearanceScreen.test.tsx +0 -195
  58. package/src/domains/appearance/__tests__/hooks/index.test.tsx +0 -232
  59. package/src/domains/appearance/__tests__/integration/index.test.tsx +0 -207
  60. package/src/domains/appearance/__tests__/services/appearanceService.test.ts +0 -299
  61. package/src/domains/appearance/__tests__/setup.ts +0 -88
  62. package/src/domains/appearance/__tests__/stores/appearanceStore.test.tsx +0 -175
  63. package/src/domains/cloud-sync/presentation/components/__tests__/CloudSyncSetting.test.tsx +0 -78
  64. package/src/domains/legal/__tests__/ContentValidationService.test.ts +0 -195
  65. package/src/domains/legal/__tests__/StyleCacheService.test.ts +0 -110
  66. package/src/domains/legal/__tests__/UrlHandlerService.test.ts +0 -71
  67. package/src/domains/legal/__tests__/setup.ts +0 -82
  68. package/src/presentation/components/__tests__/SettingsErrorBoundary.test.tsx +0 -186
  69. package/src/presentation/screens/__tests__/SettingsScreen.test.tsx +0 -322
  70. package/src/presentation/screens/hooks/__tests__/useFeatureDetection.test.tsx +0 -261
@@ -1,319 +0,0 @@
1
- # Documentation Migration Summary
2
-
3
- ## New Documentation Format
4
-
5
- All documentation has been migrated to a **code-example-free**, **strategy-based** format.
6
-
7
- ## Key Changes
8
-
9
- ### ❌ Removed
10
- - All code examples
11
- - Code snippets
12
- - Inline code blocks
13
- - Implementation examples
14
-
15
- ### ✅ Added
16
- - **Strategy Section**: How to use effectively
17
- - **Restrictions Section**: What NOT to do (with ❌ markers)
18
- - **Rules Section**: What MUST be done (with ✅ markers)
19
- - **AI Agent Guidelines**: Specific instructions for AI coding
20
- - **File Path References**: Exact paths to implementation
21
-
22
- ## Documentation Template
23
-
24
- Every README now follows this structure:
25
-
26
- ```markdown
27
- # [Component Name]
28
-
29
- ## Purpose
30
- [Brief description]
31
-
32
- ## File Path
33
- `src/path/to/File.tsx`
34
-
35
- ## Imports
36
- [Import statements]
37
-
38
- ## Strategy
39
- - [Strategic point 1]
40
- - [Strategic point 2]
41
-
42
- ## Restrictions (Forbidden)
43
- ### ❌ DO NOT
44
- - [What to avoid]
45
-
46
- ### ❌ NEVER
47
- - [Critical restrictions]
48
-
49
- ### ❌ AVOID
50
- - [Common mistakes]
51
-
52
- ## Rules
53
- ### ✅ ALWAYS
54
- - [Mandatory requirements]
55
-
56
- ### ✅ MUST
57
- - [Critical rules]
58
-
59
- ### ✅ SHOULD
60
- - [Recommended practices]
61
-
62
- ## AI Agent Guidelines
63
- [Specific AI instructions]
64
-
65
- ## Related Components
66
- - [Component]: [File path]
67
- ```
68
-
69
- ## Updated Documentation
70
-
71
- ### ✅ Completed
72
-
73
- 1. **Main README** (`README.md`)
74
- - Package overview
75
- - Strategy, Restrictions, Rules
76
- - Component file references
77
- - AI guidelines
78
-
79
- 2. **Documentation Template** (`DOCUMENTATION_TEMPLATE.md`)
80
- - Standard template for all docs
81
- - Philosophy explanation
82
-
83
- 3. **AI Guidelines** (`AI_AGENT_GUIDELINES.md`)
84
- - Comprehensive AI coding rules
85
- - File reference patterns
86
- - Component creation checklist
87
-
88
- 4. **Settings Screen Guide** (`SETTINGS_SCREEN_GUIDE.md`)
89
- - Screen strategy
90
- - Configuration patterns
91
- - Restrictions and rules
92
-
93
- 5. **SettingsItemCard Strategy** (`src/presentation/components/SettingsItemCard/STRATEGY.md`)
94
- - Component-specific strategy
95
- - Usage guidelines
96
- - AI instructions
97
-
98
- ### 🔄 In Progress (Background Tasks)
99
-
100
- Three background tasks are updating:
101
-
102
- **Task 1: Domain READMEs** (10 files)
103
- - src/domains/about/README.md
104
- - src/domains/appearance/README.md
105
- - src/domains/legal/README.md
106
- - src/domains/disclaimer/README.md
107
- - src/domains/feedback/README.md
108
- - src/domains/faqs/README.md
109
- - src/domains/rating/README.md
110
- - src/domains/video-tutorials/README.md
111
- - src/domains/cloud-sync/README.md
112
- - src/domains/dev/README.md
113
-
114
- **Task 2: Component READMEs** (14 files)
115
- - src/presentation/components/SettingsSection/README.md
116
- - src/presentation/components/SettingsErrorBoundary/README.md
117
- - src/presentation/components/SettingsFooter/README.md
118
- - src/presentation/screens/README.md
119
- - src/presentation/screens/components/SettingsHeader/README.md
120
- - src/presentation/screens/components/SettingsContent/README.md
121
- - src/presentation/screens/hooks/README.md
122
- - src/presentation/screens/utils/README.md
123
- - src/presentation/screens/types/README.md
124
- - src/presentation/hooks/README.md
125
- - src/presentation/navigation/README.md
126
- - src/presentation/navigation/components/README.md
127
- - src/presentation/navigation/hooks/README.md
128
- - src/presentation/navigation/utils/README.md
129
-
130
- **Task 3: Remaining READMEs** (15+ files)
131
- - src/application/README.md
132
- - src/infrastructure/README.md
133
- - src/presentation/hooks/mutations/README.md
134
- - src/presentation/hooks/queries/README.md
135
- - All domain component READMEs
136
- - All section component READMEs
137
- - And more...
138
-
139
- ## Documentation Philosophy
140
-
141
- ### Why No Code Examples?
142
-
143
- **Problem**: Code examples become outdated when implementation changes
144
- **Solution**: Reference file paths that stay stable
145
-
146
- **Benefits:**
147
- 1. ✅ Documentation stays valid when code changes
148
- 2. ✅ Developers check current implementation
149
- 3. ✅ No maintenance overhead
150
- 4. ✅ Always accurate
151
- 5. ✅ AI-friendly
152
-
153
- ### Why Strategy/Restrictions/Rules?
154
-
155
- **Strategy**: High-level guidance
156
- - When to use component
157
- - How to integrate it
158
- - Best practices
159
- - Common patterns
160
-
161
- **Restrictions (Forbidden)**: Clear anti-patterns
162
- - ❌ DO NOT: Common mistakes
163
- - ❌ NEVER: Critical restrictions
164
- - ❌ AVOID: Performance issues
165
-
166
- **Rules**: Mandatory requirements
167
- - ✅ ALWAYS: Required practices
168
- - ✅ MUST: Critical rules
169
- - ✅ SHOULD: Recommendations
170
-
171
- ### Why AI-Friendly?
172
-
173
- AI agents need:
174
- - Clear guidelines
175
- - File paths to reference
176
- - Rules to follow
177
- - No outdated code examples
178
- - Specific restrictions
179
- - Mandatory requirements
180
-
181
- ## File Reference Pattern
182
-
183
- ### Old Way (Outdated)
184
- ```tsx
185
- // Code example that becomes stale
186
- <SettingsItemCard icon="settings" title="Settings" />
187
- ```
188
-
189
- ### New Way (Always Valid)
190
- ```markdown
191
- ## File Path
192
- `src/presentation/components/SettingsItemCard/SettingsItemCard.tsx`
193
-
194
- ## Strategy
195
- Use SettingsItemCard for ALL settings items
196
-
197
- ## Restrictions
198
- ❌ DO NOT create custom items
199
-
200
- ## Rules
201
- ✅ MUST provide icon and title props
202
- ```
203
-
204
- ## AI Agent Workflow
205
-
206
- When AI agent implements features:
207
-
208
- 1. **Read Documentation**
209
- - Check README for strategy
210
- - Understand restrictions
211
- - Know the rules
212
-
213
- 2. **Reference Implementation**
214
- - Open file path from docs
215
- - Check current implementation
216
- - Follow patterns
217
-
218
- 3. **Follow Guidelines**
219
- - Adhere to restrictions
220
- - Apply rules
221
- - Use existing components
222
-
223
- 4. **No Guessing**
224
- - File paths show exactly where to look
225
- - Strategy shows how to use
226
- - Rules show what to do
227
-
228
- ## Migration Checklist
229
-
230
- For each documentation file:
231
-
232
- - [x] Remove all code examples
233
- - [x] Add file path section
234
- - [x] Add imports section
235
- - [x] Add strategy section
236
- - [x] Add restrictions section
237
- - [x] Add rules section
238
- - [x] Add AI guidelines section
239
- - [x] Update related components with file paths
240
- - [x] Keep in English
241
- - [x] Follow standard template
242
-
243
- ## Benefits
244
-
245
- ### For Developers
246
- - Always accurate documentation
247
- - Clear guidelines on what to do/not do
248
- - File paths for quick reference
249
- - Strategy-based approach
250
-
251
- ### For AI Agents
252
- - Clear coding rules
253
- - Specific restrictions
254
- - Mandatory requirements
255
- - File paths to reference
256
- - No outdated examples to confuse
257
-
258
- ### For Maintainers
259
- - No code example maintenance
260
- - Documentation stays valid
261
- - Easy to update strategies
262
- - Clear rules for new features
263
-
264
- ## Next Steps
265
-
266
- ### For New Documentation
267
- 1. Use `DOCUMENTATION_TEMPLATE.md`
268
- 2. Follow structure
269
- 3. No code examples
270
- 4. Strategy-focused
271
- 5. File path references
272
-
273
- ### For Existing Documentation
274
- 1. Background tasks updating all READMEs
275
- 2. Removing code examples
276
- 3. Adding strategy/restrictions/rules
277
- 4. Maintaining file references
278
-
279
- ### For AI Coding
280
- 1. Read `AI_AGENT_GUIDELINES.md`
281
- 2. Check component STRATEGY.md files
282
- 3. Follow restrictions and rules
283
- 4. Reference implementation files
284
- 5. Use existing components
285
-
286
- ## Quality Assurance
287
-
288
- ### Documentation Quality
289
-
290
- - ✅ No code examples
291
- - ✅ Clear file paths
292
- - ✅ Strategy sections
293
- - ✅ Restrictions with ❌ markers
294
- - ✅ Rules with ✅ markers
295
- - ✅ AI guidelines
296
- - ✅ All in English
297
- - ✅ Consistent format
298
-
299
- ### Validation
300
-
301
- Check each README has:
302
- - Purpose section
303
- - File path section
304
- - Strategy section (3+ points)
305
- - Restrictions section with subsections
306
- - Rules section with subsections
307
- - AI guidelines section
308
- - Related components with file paths
309
-
310
- ## Status
311
-
312
- - ✅ Main README updated
313
- - ✅ Template created
314
- - ✅ AI guidelines created
315
- - 🔄 Domain READMEs updating (background)
316
- - 🔄 Component READMEs updating (background)
317
- - 🔄 Remaining READMEs updating (background)
318
-
319
- All documentation is being migrated to the new format systematically!
@@ -1,155 +0,0 @@
1
- # Documentation Template
2
-
3
- Standard template for all `@umituz/react-native-settings` documentation.
4
-
5
- ## Structure
6
-
7
- Each documentation file MUST include these sections:
8
-
9
- 1. **Purpose** - What this component/module does
10
- 2. **File Path** - Where to find the implementation
11
- 3. **Imports** - What to import and from where
12
- 4. **Strategy** - How to use it effectively
13
- 5. **Restrictions** - What NOT to do (Forbidden)
14
- 6. **Rules** - What MUST be followed
15
- 7. **Related Components** - Related files and components
16
-
17
- ## Example Template
18
-
19
- ```markdown
20
- # [Component/Module Name]
21
-
22
- ## Purpose
23
- [Brief description of what this does]
24
-
25
- ## File Path
26
- `src/path/to/file.tsx`
27
-
28
- ## Imports
29
- ```typescript
30
- import { ComponentName } from '@umituz/react-native-settings';
31
- // OR
32
- import { ComponentName } from '../../path/to/file';
33
- ```
34
-
35
- ## Strategy
36
- - [Strategic point 1]
37
- - [Strategic point 2]
38
- - [Best practices]
39
-
40
- ## Restrictions (Forbidden)
41
- - ❌ **DO NOT**: [What to avoid]
42
- - ❌ **NEVER**: [Critical restrictions]
43
- - ❌ **AVOID**: [Common mistakes]
44
-
45
- ## Rules
46
- - ✅ **ALWAYS**: [Mandatory requirements]
47
- - ✅ **MUST**: [Critical rules]
48
- - ✅ **SHOULD**: [Recommended practices]
49
-
50
- ## Related Components
51
- - **ComponentName**: Path/to/component
52
- - **ModuleName**: Path/to/module
53
-
54
- ## AI Agent Guidelines
55
- When working with this component:
56
- 1. [AI instruction 1]
57
- 2. [AI instruction 2]
58
- 3. [AI instruction 3]
59
- ```
60
-
61
- ## Philosophy
62
-
63
- ### Why No Code Examples?
64
-
65
- **Problem**: Code examples become outdated when implementation changes
66
- **Solution**: Reference file paths that stay stable
67
-
68
- ### Why Strategy/Restrictions/Rules?
69
-
70
- **Strategy**: High-level approach and best practices
71
- **Restrictions**: Clear anti-patterns to avoid
72
- **Rules**: Mandatory requirements for consistency
73
-
74
- ### Why AI-Friendly?
75
-
76
- AI agents need:
77
- - Clear guidelines on what to do/not do
78
- - File paths to reference
79
- - Rules to follow
80
- - No outdated code examples to confuse them
81
-
82
- ## Sections Explained
83
-
84
- ### Purpose
85
- Single sentence describing what the component does.
86
-
87
- ### File Path
88
- Exact path to the main implementation file.
89
-
90
- ### Imports
91
- Show import statements (these rarely change).
92
-
93
- ### Strategy
94
- High-level guidance:
95
- - When to use this component
96
- - How to integrate it
97
- - Best practices
98
- - Common patterns
99
-
100
- ### Restrictions (Forbidden)
101
- What NOT to do:
102
- - ❌ Clear anti-patterns
103
- - ❌ Common mistakes
104
- - ❌ Performance issues to avoid
105
- - ❌ Security concerns
106
-
107
- ### Rules
108
- What MUST be done:
109
- - ✅ Mandatory requirements
110
- - ✅ Consistency rules
111
- - ✅ Error handling requirements
112
- - ✅ TypeScript usage rules
113
-
114
- ### Related Components
115
- Cross-references to related files.
116
-
117
- ### AI Agent Guidelines
118
- Specific instructions for AI agents:
119
- - How to generate code for this component
120
- - What patterns to follow
121
- - What to avoid
122
-
123
- ## Usage Pattern
124
-
125
- Instead of:
126
-
127
- ```tsx
128
- // BAD: Code example that becomes outdated
129
- <SettingsItemCard icon="settings" title="Settings" />
130
- ```
131
-
132
- Use:
133
-
134
- ```markdown
135
- ## File Path
136
- `src/presentation/components/SettingsItemCard/SettingsItemCard.tsx`
137
-
138
- ## Strategy
139
- Use SettingsItemCard for all settings list items. Reference the implementation file for current props and usage patterns.
140
-
141
- ## Restrictions
142
- - ❌ DO NOT create custom item cards - use SettingsItemCard
143
- - ❌ NEVER inline settings logic - keep in separate components
144
-
145
- ## Rules
146
- - ✅ ALWAYS use SettingsItemCard from components
147
- - ✅ MUST pass required props: icon, title
148
- - ✅ SHOULD provide onPress handler for navigation
149
- ```
150
-
151
- This approach:
152
- - Stays valid when code changes
153
- - Provides clear guidance
154
- - Easy to maintain
155
- - AI-friendly
package/SECURITY.md DELETED
@@ -1,98 +0,0 @@
1
- # Security Policy
2
-
3
- ## Supported Versions
4
-
5
- Currently supported versions of `@umituz/react-native-settings`:
6
-
7
- | Version | Supported |
8
- | ------- | ------------------- |
9
- | 4.20.x | :white_check_mark: |
10
-
11
- ## Reporting a Vulnerability
12
-
13
- If you discover a security vulnerability, please send an email to umit@umituz.com.
14
-
15
- Please include:
16
- - Description of the vulnerability
17
- - Steps to reproduce
18
- - Potential impact
19
- - Suggested fix (if known)
20
-
21
- ## Vulnerability Handling Process
22
-
23
- 1. **Acknowledgment**: We will acknowledge receipt of your report within 48 hours
24
- 2. **Investigation**: We will investigate the vulnerability and determine severity
25
- 3. **Fix Development**: We will develop a fix
26
- 4. **Release**: We will release a new version with the fix
27
- 5. **Disclosure**: We will publicly disclose the vulnerability after fix is released
28
-
29
- ## Security Best Practices
30
-
31
- ### For Users
32
-
33
- - Keep dependencies updated
34
- - Review changes in version updates
35
- - Report security concerns promptly
36
- - Use secure authentication methods
37
- - Validate user inputs
38
- - Implement proper error handling
39
-
40
- ### For Developers
41
-
42
- - Follow secure coding practices
43
- - Never commit sensitive data
44
- - Use environment variables for secrets
45
- - Implement proper authentication
46
- - Validate all inputs
47
- - Handle errors safely
48
- - Keep dependencies updated
49
-
50
- ## Common Security Considerations
51
-
52
- ### Data Storage
53
-
54
- - User settings are stored locally on device
55
- - No sensitive data is transmitted without encryption
56
- - AsyncStorage should be encrypted for sensitive data
57
-
58
- ### Authentication
59
-
60
- - This package does not handle authentication
61
- - Use companion packages like `@umituz/react-native-auth`
62
- - Implement proper session management
63
-
64
- ### Network Communication
65
-
66
- - All network operations should use HTTPS
67
- - Validate server certificates
68
- - Implement proper error handling
69
- - Handle network failures gracefully
70
-
71
- ## Dependency Security
72
-
73
- We regularly update dependencies to address security vulnerabilities. Please:
74
-
75
- - Keep your package.json updated
76
- - Run `npm audit` regularly
77
- - Review security advisories
78
- - Update to latest versions
79
-
80
- ## Security Audits
81
-
82
- Periodic security audits may be conducted. If you're interested in sponsoring a security audit, please contact us.
83
-
84
- ## Policy
85
-
86
- This security policy outlines how we handle security vulnerabilities:
87
- - We take all reports seriously
88
- - We work to resolve issues quickly
89
- - We maintain confidentiality during investigation
90
- - We disclose vulnerabilities after fixes are released
91
-
92
- ## Contact
93
-
94
- For security-related questions or concerns:
95
- - Email: umit@umituz.com
96
- - GitHub: Create a draft security advisory
97
-
98
- Thank you for helping keep this project secure!