react-achievements 3.0.2 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +137 -94
- package/dist/index.d.ts +60 -2
- package/dist/index.js +146 -9
- package/dist/index.js.map +1 -1
- package/dist/types/core/types.d.ts +14 -0
- package/dist/types/core/utils/configNormalizer.d.ts +3 -0
- package/dist/types/hooks/useSimpleAchievements.d.ts +40 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/providers/AchievementProvider.d.ts +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,43 +16,53 @@ Note: React and React DOM should be version 16.8.0 or higher. If you already hav
|
|
|
16
16
|
|
|
17
17
|
## Quick Start
|
|
18
18
|
|
|
19
|
-
Here's a complete working example that shows automatic notifications and achievement tracking:
|
|
19
|
+
Here's a complete working example using the **new Simple API** that shows automatic notifications and achievement tracking:
|
|
20
20
|
|
|
21
21
|
```tsx
|
|
22
22
|
import React, { useState } from 'react';
|
|
23
23
|
import {
|
|
24
24
|
AchievementProvider,
|
|
25
|
-
|
|
25
|
+
useSimpleAchievements,
|
|
26
26
|
BadgesButton,
|
|
27
27
|
BadgesModal
|
|
28
28
|
} from 'react-achievements';
|
|
29
29
|
|
|
30
|
-
// Define
|
|
31
|
-
const
|
|
32
|
-
score:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
// Define achievements with the new Simple API - 90% less code!
|
|
31
|
+
const achievements = {
|
|
32
|
+
score: {
|
|
33
|
+
100: { title: 'Century!', description: 'Score 100 points', icon: '🏆' },
|
|
34
|
+
500: { title: 'High Scorer!', description: 'Score 500 points', icon: '⭐' }
|
|
35
|
+
},
|
|
36
|
+
level: {
|
|
37
|
+
5: { title: 'Leveling Up', description: 'Reach level 5', icon: '📈' }
|
|
38
|
+
},
|
|
39
|
+
completedTutorial: {
|
|
40
|
+
true: { title: 'Tutorial Master', description: 'Complete the tutorial', icon: '📚' }
|
|
41
|
+
}
|
|
41
42
|
};
|
|
42
43
|
|
|
43
|
-
// Demo component with all essential features
|
|
44
|
+
// Demo component with all essential features
|
|
44
45
|
const DemoComponent = () => {
|
|
45
46
|
const [isModalOpen, setIsModalOpen] = useState(false);
|
|
46
|
-
const {
|
|
47
|
+
const { track, unlocked, unlockedCount, reset } = useSimpleAchievements();
|
|
47
48
|
|
|
48
49
|
return (
|
|
49
50
|
<div>
|
|
50
51
|
<h1>Achievement Demo</h1>
|
|
51
52
|
|
|
52
|
-
{/*
|
|
53
|
-
<button onClick={() =>
|
|
53
|
+
{/* Simple tracking - much easier! */}
|
|
54
|
+
<button onClick={() => track('score', 100)}>
|
|
54
55
|
Score 100 points
|
|
55
56
|
</button>
|
|
57
|
+
<button onClick={() => track('score', 500)}>
|
|
58
|
+
Score 500 points
|
|
59
|
+
</button>
|
|
60
|
+
<button onClick={() => track('level', 5)}>
|
|
61
|
+
Reach level 5
|
|
62
|
+
</button>
|
|
63
|
+
<button onClick={() => track('completedTutorial', true)}>
|
|
64
|
+
Complete tutorial
|
|
65
|
+
</button>
|
|
56
66
|
|
|
57
67
|
{/* Reset button */}
|
|
58
68
|
<button onClick={reset}>
|
|
@@ -60,20 +70,20 @@ const DemoComponent = () => {
|
|
|
60
70
|
</button>
|
|
61
71
|
|
|
62
72
|
{/* Shows unlocked achievements count */}
|
|
63
|
-
<p>Unlocked: {
|
|
73
|
+
<p>Unlocked: {unlockedCount}</p>
|
|
64
74
|
|
|
65
75
|
{/* Floating badges button */}
|
|
66
76
|
<BadgesButton
|
|
67
77
|
position="bottom-right"
|
|
68
78
|
onClick={() => setIsModalOpen(true)}
|
|
69
|
-
unlockedAchievements={
|
|
79
|
+
unlockedAchievements={[]} // Simplified for demo
|
|
70
80
|
/>
|
|
71
81
|
|
|
72
82
|
{/* Achievement history modal */}
|
|
73
83
|
<BadgesModal
|
|
74
84
|
isOpen={isModalOpen}
|
|
75
85
|
onClose={() => setIsModalOpen(false)}
|
|
76
|
-
achievements={
|
|
86
|
+
achievements={[]} // Simplified for demo
|
|
77
87
|
/>
|
|
78
88
|
</div>
|
|
79
89
|
);
|
|
@@ -83,7 +93,7 @@ const DemoComponent = () => {
|
|
|
83
93
|
const App = () => {
|
|
84
94
|
return (
|
|
85
95
|
<AchievementProvider
|
|
86
|
-
achievements={
|
|
96
|
+
achievements={achievements}
|
|
87
97
|
storage="local"
|
|
88
98
|
>
|
|
89
99
|
<DemoComponent />
|
|
@@ -95,11 +105,50 @@ export default App;
|
|
|
95
105
|
```
|
|
96
106
|
|
|
97
107
|
When you click "Score 100 points":
|
|
98
|
-
1. A toast notification appears
|
|
99
|
-
2. Confetti animation plays
|
|
108
|
+
1. A toast notification appears automatically
|
|
109
|
+
2. Confetti animation plays
|
|
100
110
|
3. The achievement is stored and visible in the badges modal
|
|
101
111
|
4. The badges button updates to show the new count
|
|
102
112
|
|
|
113
|
+
## 🚀 New Simple API
|
|
114
|
+
|
|
115
|
+
The Simple API reduces configuration complexity by **90%** while maintaining full backward compatibility:
|
|
116
|
+
|
|
117
|
+
### Before (Complex API)
|
|
118
|
+
```tsx
|
|
119
|
+
const achievementConfig = {
|
|
120
|
+
score: [{
|
|
121
|
+
isConditionMet: (value: AchievementMetricArrayValue, state: AchievementState) => {
|
|
122
|
+
const numValue = Array.isArray(value) ? value[0] : value;
|
|
123
|
+
return typeof numValue === 'number' && numValue >= 100;
|
|
124
|
+
},
|
|
125
|
+
achievementDetails: {
|
|
126
|
+
achievementId: 'score_100',
|
|
127
|
+
achievementTitle: 'Century!',
|
|
128
|
+
achievementDescription: 'Score 100 points',
|
|
129
|
+
achievementIconKey: 'trophy'
|
|
130
|
+
}
|
|
131
|
+
}]
|
|
132
|
+
};
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### After (Simple API)
|
|
136
|
+
```tsx
|
|
137
|
+
const achievements = {
|
|
138
|
+
score: {
|
|
139
|
+
100: { title: 'Century!', description: 'Score 100 points', icon: '🏆' }
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Key Benefits
|
|
145
|
+
- **90% less configuration code** for common use cases
|
|
146
|
+
- **Threshold-based achievements** work automatically
|
|
147
|
+
- **Custom condition functions** for complex scenarios
|
|
148
|
+
- **Automatic ID generation** from metric names and thresholds
|
|
149
|
+
- **Built-in emoji support** - no more icon key mapping
|
|
150
|
+
- **Full backward compatibility** - existing code continues to work
|
|
151
|
+
|
|
103
152
|
## State Management Options
|
|
104
153
|
|
|
105
154
|
This package includes example implementations for different state management solutions in the `stories/examples` directory:
|
|
@@ -155,94 +204,88 @@ To allow users to view their achievement history, the package provides two essen
|
|
|
155
204
|
|
|
156
205
|
These components are the recommended way to give users access to their achievement history. While you could build custom UI using the `useAchievements` hook data, these components provide a polished, ready-to-use interface for achievement history.
|
|
157
206
|
|
|
158
|
-
##
|
|
207
|
+
## API Options
|
|
208
|
+
|
|
209
|
+
### Simple API (Recommended)
|
|
210
|
+
Perfect for 90% of use cases - threshold-based achievements with minimal configuration:
|
|
159
211
|
|
|
160
212
|
```tsx
|
|
161
|
-
import { AchievementProvider,
|
|
162
|
-
// For specific state management implementations:
|
|
163
|
-
// import { AchievementProvider, useAchievements } from 'react-achievements/redux';
|
|
164
|
-
// import { AchievementProvider, useAchievements } from 'react-achievements/zustand';
|
|
165
|
-
// import { AchievementProvider, useAchievements } from 'react-achievements/context';
|
|
213
|
+
import { AchievementProvider, useSimpleAchievements } from 'react-achievements';
|
|
166
214
|
|
|
167
|
-
// Define your achievements with various data types and conditions
|
|
168
215
|
const achievements = {
|
|
169
|
-
// Numeric
|
|
216
|
+
// Numeric thresholds
|
|
170
217
|
score: {
|
|
171
|
-
100: {
|
|
172
|
-
|
|
173
|
-
description: 'Score 100 points',
|
|
174
|
-
icon: 'trophy'
|
|
175
|
-
},
|
|
176
|
-
500: {
|
|
177
|
-
title: 'Half a Thousand!',
|
|
178
|
-
description: 'Score 500 points',
|
|
179
|
-
icon: 'gold',
|
|
180
|
-
condition: (value) => value >= 500
|
|
181
|
-
}
|
|
218
|
+
100: { title: 'Century!', description: 'Score 100 points', icon: '🏆' },
|
|
219
|
+
500: { title: 'High Scorer!', icon: '⭐' }
|
|
182
220
|
},
|
|
183
|
-
|
|
184
|
-
// Boolean achievements
|
|
221
|
+
|
|
222
|
+
// Boolean achievements
|
|
185
223
|
completedTutorial: {
|
|
186
|
-
true: {
|
|
187
|
-
title: 'Tutorial Master',
|
|
188
|
-
description: 'Complete the tutorial',
|
|
189
|
-
icon: 'book'
|
|
190
|
-
}
|
|
224
|
+
true: { title: 'Tutorial Master', description: 'Complete the tutorial', icon: '📚' }
|
|
191
225
|
},
|
|
192
|
-
|
|
226
|
+
|
|
193
227
|
// String-based achievements
|
|
194
228
|
characterClass: {
|
|
195
|
-
'wizard':
|
|
196
|
-
|
|
197
|
-
description: 'Choose the wizard class',
|
|
198
|
-
icon: 'wand'
|
|
199
|
-
},
|
|
200
|
-
'warrior': {
|
|
201
|
-
title: 'Battle Hardened',
|
|
202
|
-
description: 'Choose the warrior class',
|
|
203
|
-
icon: 'sword'
|
|
204
|
-
}
|
|
229
|
+
wizard: { title: 'Arcane Scholar', description: 'Choose the wizard class', icon: '🧙♂️ ' },
|
|
230
|
+
warrior: { title: 'Battle Hardened', description: 'Choose the warrior class', icon: '⚔️' }
|
|
205
231
|
},
|
|
206
232
|
|
|
207
|
-
//
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
title: '
|
|
211
|
-
description: '
|
|
212
|
-
icon: '
|
|
213
|
-
condition: (
|
|
233
|
+
// Custom condition functions for complex logic
|
|
234
|
+
combo: {
|
|
235
|
+
custom: {
|
|
236
|
+
title: 'Perfect Combo',
|
|
237
|
+
description: 'Score 1000+ with 100% accuracy',
|
|
238
|
+
icon: '💎',
|
|
239
|
+
condition: (metrics) => metrics.score >= 1000 && metrics.accuracy === 100
|
|
214
240
|
}
|
|
215
|
-
}
|
|
241
|
+
}
|
|
242
|
+
};
|
|
216
243
|
|
|
217
|
-
|
|
218
|
-
playerStats: {
|
|
219
|
-
{ strength: 10, intelligence: 10 }: {
|
|
220
|
-
title: 'Balanced Warrior',
|
|
221
|
-
description: 'Achieve balanced stats',
|
|
222
|
-
icon: 'scale',
|
|
223
|
-
condition: (stats) => stats.strength === 10 && stats.intelligence === 10
|
|
224
|
-
}
|
|
225
|
-
},
|
|
244
|
+
const { track, unlocked, unlockedCount, reset } = useSimpleAchievements();
|
|
226
245
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
description: 'Play for 1 hour',
|
|
232
|
-
icon: 'clock',
|
|
233
|
-
condition: (seconds) => seconds >= 3600
|
|
234
|
-
}
|
|
235
|
-
},
|
|
246
|
+
// Track achievements easily
|
|
247
|
+
track('score', 100); // Unlocks "Century!" achievement
|
|
248
|
+
track('completedTutorial', true); // Unlocks "Tutorial Master"
|
|
249
|
+
track('characterClass', 'wizard'); // Unlocks "Arcane Scholar"
|
|
236
250
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
251
|
+
// Track multiple metrics for custom conditions
|
|
252
|
+
track('score', 1000);
|
|
253
|
+
track('accuracy', 100); // Unlocks "Perfect Combo" if both conditions met
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Complex API (Advanced)
|
|
257
|
+
For complex scenarios requiring full control:
|
|
258
|
+
|
|
259
|
+
```tsx
|
|
260
|
+
import { AchievementProvider, useAchievements } from 'react-achievements';
|
|
261
|
+
|
|
262
|
+
// Define your achievements using the traditional complex format
|
|
263
|
+
const achievements = {
|
|
264
|
+
score: [{
|
|
265
|
+
isConditionMet: (value: AchievementMetricArrayValue, state: AchievementState) => {
|
|
266
|
+
const numValue = Array.isArray(value) ? value[0] : value;
|
|
267
|
+
return typeof numValue === 'number' && numValue >= 100;
|
|
268
|
+
},
|
|
269
|
+
achievementDetails: {
|
|
270
|
+
achievementId: 'score_100',
|
|
271
|
+
achievementTitle: 'Century!',
|
|
272
|
+
achievementDescription: 'Score 100 points',
|
|
273
|
+
achievementIconKey: 'trophy'
|
|
244
274
|
}
|
|
245
|
-
}
|
|
275
|
+
}],
|
|
276
|
+
|
|
277
|
+
completedTutorial: [{
|
|
278
|
+
isConditionMet: (value: AchievementMetricArrayValue, state: AchievementState) => {
|
|
279
|
+
const boolValue = Array.isArray(value) ? value[0] : value;
|
|
280
|
+
return typeof boolValue === 'boolean' && boolValue === true;
|
|
281
|
+
},
|
|
282
|
+
achievementDetails: {
|
|
283
|
+
achievementId: 'tutorial_complete',
|
|
284
|
+
achievementTitle: 'Tutorial Master',
|
|
285
|
+
achievementDescription: 'Complete the tutorial',
|
|
286
|
+
achievementIconKey: 'book'
|
|
287
|
+
}
|
|
288
|
+
}]
|
|
246
289
|
};
|
|
247
290
|
|
|
248
291
|
// Create your app component
|
package/dist/index.d.ts
CHANGED
|
@@ -23,6 +23,20 @@ interface AchievementCondition {
|
|
|
23
23
|
interface AchievementConfiguration {
|
|
24
24
|
[key: string]: AchievementCondition[];
|
|
25
25
|
}
|
|
26
|
+
interface SimpleAchievementDetails {
|
|
27
|
+
title: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
icon?: string;
|
|
30
|
+
}
|
|
31
|
+
interface CustomAchievementDetails extends SimpleAchievementDetails {
|
|
32
|
+
condition: (metrics: Record<string, any>) => boolean;
|
|
33
|
+
}
|
|
34
|
+
interface SimpleAchievementConfig {
|
|
35
|
+
[metric: string]: {
|
|
36
|
+
[threshold: string]: SimpleAchievementDetails | CustomAchievementDetails;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
type AchievementConfigurationType = AchievementConfiguration | SimpleAchievementConfig;
|
|
26
40
|
interface InitialAchievementMetrics {
|
|
27
41
|
[key: string]: AchievementMetricValue;
|
|
28
42
|
}
|
|
@@ -126,7 +140,7 @@ interface AchievementContextType {
|
|
|
126
140
|
}
|
|
127
141
|
declare const AchievementContext: React$1.Context<AchievementContextType | undefined>;
|
|
128
142
|
interface AchievementProviderProps {
|
|
129
|
-
achievements:
|
|
143
|
+
achievements: AchievementConfigurationType;
|
|
130
144
|
storage?: AchievementStorage | StorageType;
|
|
131
145
|
children: React$1.ReactNode;
|
|
132
146
|
icons?: Record<string, string>;
|
|
@@ -135,6 +149,47 @@ declare const AchievementProvider: React$1.FC<AchievementProviderProps>;
|
|
|
135
149
|
|
|
136
150
|
declare const useAchievements: () => AchievementContextType;
|
|
137
151
|
|
|
152
|
+
/**
|
|
153
|
+
* A simplified hook for achievement tracking.
|
|
154
|
+
* Provides an easier API for common use cases while maintaining access to advanced features.
|
|
155
|
+
*/
|
|
156
|
+
declare const useSimpleAchievements: () => {
|
|
157
|
+
/**
|
|
158
|
+
* Track a metric value for achievements
|
|
159
|
+
* @param metric - The metric name (e.g., 'score', 'level')
|
|
160
|
+
* @param value - The metric value
|
|
161
|
+
*/
|
|
162
|
+
track: (metric: string, value: any) => void;
|
|
163
|
+
/**
|
|
164
|
+
* Track multiple metrics at once
|
|
165
|
+
* @param metrics - Object with metric names as keys and values
|
|
166
|
+
*/
|
|
167
|
+
trackMultiple: (metrics: Record<string, any>) => void;
|
|
168
|
+
/**
|
|
169
|
+
* Array of unlocked achievement IDs
|
|
170
|
+
*/
|
|
171
|
+
unlocked: string[];
|
|
172
|
+
/**
|
|
173
|
+
* All available achievements
|
|
174
|
+
*/
|
|
175
|
+
all: Record<string, any>;
|
|
176
|
+
/**
|
|
177
|
+
* Number of unlocked achievements
|
|
178
|
+
*/
|
|
179
|
+
unlockedCount: number;
|
|
180
|
+
/**
|
|
181
|
+
* Reset all achievement progress
|
|
182
|
+
*/
|
|
183
|
+
reset: () => void;
|
|
184
|
+
/**
|
|
185
|
+
* Get current state (advanced usage)
|
|
186
|
+
*/
|
|
187
|
+
getState: () => {
|
|
188
|
+
metrics: AchievementMetrics;
|
|
189
|
+
unlocked: string[];
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
|
|
138
193
|
declare const defaultStyles: Required<StylesProps>;
|
|
139
194
|
|
|
140
195
|
declare const defaultAchievementIcons: {
|
|
@@ -219,4 +274,7 @@ declare const defaultAchievementIcons: {
|
|
|
219
274
|
shield: string;
|
|
220
275
|
};
|
|
221
276
|
|
|
222
|
-
|
|
277
|
+
declare function isSimpleConfig(config: AchievementConfigurationType): config is SimpleAchievementConfig;
|
|
278
|
+
declare function normalizeAchievements(config: AchievementConfigurationType): AchievementConfiguration;
|
|
279
|
+
|
|
280
|
+
export { AchievementCondition, AchievementConfiguration, AchievementConfigurationType, AchievementContext, AchievementContextValue, AchievementDetails, AchievementMetricArrayValue, AchievementMetricValue, AchievementMetrics, AchievementProvider, AchievementProviderProps$1 as AchievementProviderProps, AchievementState, AchievementStorage, BadgesButton, BadgesModal, ConfettiWrapper, CustomAchievementDetails, InitialAchievementMetrics, LocalStorage, SimpleAchievementConfig, SimpleAchievementDetails, StorageType, StylesProps, defaultAchievementIcons, defaultStyles, isSimpleConfig, normalizeAchievements, useAchievements, useSimpleAchievements };
|
package/dist/index.js
CHANGED
|
@@ -316,6 +316,96 @@ const ConfettiWrapper = ({ show }) => {
|
|
|
316
316
|
} }));
|
|
317
317
|
};
|
|
318
318
|
|
|
319
|
+
// Type guard to check if config is simple format
|
|
320
|
+
function isSimpleConfig(config) {
|
|
321
|
+
if (!config || typeof config !== 'object')
|
|
322
|
+
return false;
|
|
323
|
+
const firstKey = Object.keys(config)[0];
|
|
324
|
+
if (!firstKey)
|
|
325
|
+
return true; // Empty config is considered simple
|
|
326
|
+
const firstValue = config[firstKey];
|
|
327
|
+
// Check if it's the current complex format (array of AchievementCondition)
|
|
328
|
+
if (Array.isArray(firstValue))
|
|
329
|
+
return false;
|
|
330
|
+
// Check if it's the simple format (object with string keys)
|
|
331
|
+
return typeof firstValue === 'object' && !Array.isArray(firstValue);
|
|
332
|
+
}
|
|
333
|
+
// Generate a unique ID for achievements
|
|
334
|
+
function generateId() {
|
|
335
|
+
return Math.random().toString(36).substr(2, 9);
|
|
336
|
+
}
|
|
337
|
+
// Check if achievement details has a custom condition
|
|
338
|
+
function hasCustomCondition(details) {
|
|
339
|
+
return 'condition' in details && typeof details.condition === 'function';
|
|
340
|
+
}
|
|
341
|
+
// Convert simple config to complex config format
|
|
342
|
+
function normalizeAchievements(config) {
|
|
343
|
+
if (!isSimpleConfig(config)) {
|
|
344
|
+
// Already in complex format, return as-is
|
|
345
|
+
return config;
|
|
346
|
+
}
|
|
347
|
+
const normalized = {};
|
|
348
|
+
Object.entries(config).forEach(([metric, achievements]) => {
|
|
349
|
+
normalized[metric] = Object.entries(achievements).map(([key, achievement]) => {
|
|
350
|
+
if (hasCustomCondition(achievement)) {
|
|
351
|
+
// Custom condition function
|
|
352
|
+
return {
|
|
353
|
+
isConditionMet: (value, state) => {
|
|
354
|
+
// Convert internal metrics format (arrays) to simple format for custom conditions
|
|
355
|
+
const simpleMetrics = {};
|
|
356
|
+
Object.entries(state.metrics).forEach(([key, val]) => {
|
|
357
|
+
simpleMetrics[key] = Array.isArray(val) ? val[0] : val;
|
|
358
|
+
});
|
|
359
|
+
return achievement.condition(simpleMetrics);
|
|
360
|
+
},
|
|
361
|
+
achievementDetails: {
|
|
362
|
+
achievementId: `${metric}_custom_${generateId()}`,
|
|
363
|
+
achievementTitle: achievement.title,
|
|
364
|
+
achievementDescription: achievement.description || '',
|
|
365
|
+
achievementIconKey: achievement.icon || 'default'
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
// Threshold-based achievement
|
|
371
|
+
const threshold = parseFloat(key);
|
|
372
|
+
const isValidThreshold = !isNaN(threshold);
|
|
373
|
+
let conditionMet;
|
|
374
|
+
if (isValidThreshold) {
|
|
375
|
+
// Numeric threshold
|
|
376
|
+
conditionMet = (value) => {
|
|
377
|
+
const numValue = Array.isArray(value) ? value[0] : value;
|
|
378
|
+
return typeof numValue === 'number' && numValue >= threshold;
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
// String or boolean threshold
|
|
383
|
+
conditionMet = (value) => {
|
|
384
|
+
const actualValue = Array.isArray(value) ? value[0] : value;
|
|
385
|
+
// Handle boolean thresholds
|
|
386
|
+
if (key === 'true')
|
|
387
|
+
return actualValue === true;
|
|
388
|
+
if (key === 'false')
|
|
389
|
+
return actualValue === false;
|
|
390
|
+
// Handle string thresholds
|
|
391
|
+
return actualValue === key;
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
return {
|
|
395
|
+
isConditionMet: conditionMet,
|
|
396
|
+
achievementDetails: {
|
|
397
|
+
achievementId: `${metric}_${key}`,
|
|
398
|
+
achievementTitle: achievement.title,
|
|
399
|
+
achievementDescription: achievement.description || (isValidThreshold ? `Reach ${threshold} ${metric}` : `Achieve ${key} for ${metric}`),
|
|
400
|
+
achievementIconKey: achievement.icon || 'default'
|
|
401
|
+
}
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
});
|
|
406
|
+
return normalized;
|
|
407
|
+
}
|
|
408
|
+
|
|
319
409
|
class MemoryStorage {
|
|
320
410
|
constructor() {
|
|
321
411
|
this.metrics = {};
|
|
@@ -340,7 +430,9 @@ class MemoryStorage {
|
|
|
340
430
|
}
|
|
341
431
|
|
|
342
432
|
const AchievementContext = createContext(undefined);
|
|
343
|
-
const AchievementProvider = ({ achievements, storage = StorageType.Local, children, icons = {}, }) => {
|
|
433
|
+
const AchievementProvider = ({ achievements: achievementsConfig, storage = StorageType.Local, children, icons = {}, }) => {
|
|
434
|
+
// Normalize the configuration to the complex format
|
|
435
|
+
const achievements = normalizeAchievements(achievementsConfig);
|
|
344
436
|
const [achievementState, setAchievementState] = useState({
|
|
345
437
|
unlocked: [],
|
|
346
438
|
all: achievements,
|
|
@@ -432,12 +524,16 @@ const AchievementProvider = ({ achievements, storage = StorageType.Local, childr
|
|
|
432
524
|
let newlyUnlockedAchievements = [];
|
|
433
525
|
let achievementToShow = null;
|
|
434
526
|
Object.entries(achievements).forEach(([metricName, metricAchievements]) => {
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
527
|
+
metricAchievements.forEach((achievement) => {
|
|
528
|
+
const state = { metrics, unlockedAchievements: achievementState.unlocked };
|
|
529
|
+
const achievementId = achievement.achievementDetails.achievementId;
|
|
530
|
+
// For custom conditions, we always check against all metrics
|
|
531
|
+
// For threshold-based conditions, we check against the specific metric
|
|
532
|
+
const currentValue = metrics[metricName];
|
|
533
|
+
const shouldCheckAchievement = currentValue !== undefined ||
|
|
534
|
+
achievement.achievementDetails.achievementId.includes('_custom_');
|
|
535
|
+
if (shouldCheckAchievement) {
|
|
439
536
|
const valueToCheck = currentValue;
|
|
440
|
-
const achievementId = achievement.achievementDetails.achievementId;
|
|
441
537
|
if (achievement.isConditionMet(valueToCheck, state)) {
|
|
442
538
|
if (!achievementState.unlocked.includes(achievementId) &&
|
|
443
539
|
!newlyUnlockedAchievements.includes(achievementId)) {
|
|
@@ -447,8 +543,8 @@ const AchievementProvider = ({ achievements, storage = StorageType.Local, childr
|
|
|
447
543
|
}
|
|
448
544
|
}
|
|
449
545
|
}
|
|
450
|
-
}
|
|
451
|
-
}
|
|
546
|
+
}
|
|
547
|
+
});
|
|
452
548
|
});
|
|
453
549
|
if (newlyUnlockedAchievements.length > 0) {
|
|
454
550
|
const allUnlocked = [...achievementState.unlocked, ...newlyUnlockedAchievements];
|
|
@@ -550,6 +646,47 @@ const useAchievements = () => {
|
|
|
550
646
|
return context;
|
|
551
647
|
};
|
|
552
648
|
|
|
649
|
+
/**
|
|
650
|
+
* A simplified hook for achievement tracking.
|
|
651
|
+
* Provides an easier API for common use cases while maintaining access to advanced features.
|
|
652
|
+
*/
|
|
653
|
+
const useSimpleAchievements = () => {
|
|
654
|
+
const { update, achievements, reset, getState } = useAchievements();
|
|
655
|
+
return {
|
|
656
|
+
/**
|
|
657
|
+
* Track a metric value for achievements
|
|
658
|
+
* @param metric - The metric name (e.g., 'score', 'level')
|
|
659
|
+
* @param value - The metric value
|
|
660
|
+
*/
|
|
661
|
+
track: (metric, value) => update({ [metric]: value }),
|
|
662
|
+
/**
|
|
663
|
+
* Track multiple metrics at once
|
|
664
|
+
* @param metrics - Object with metric names as keys and values
|
|
665
|
+
*/
|
|
666
|
+
trackMultiple: (metrics) => update(metrics),
|
|
667
|
+
/**
|
|
668
|
+
* Array of unlocked achievement IDs
|
|
669
|
+
*/
|
|
670
|
+
unlocked: achievements.unlocked,
|
|
671
|
+
/**
|
|
672
|
+
* All available achievements
|
|
673
|
+
*/
|
|
674
|
+
all: achievements.all,
|
|
675
|
+
/**
|
|
676
|
+
* Number of unlocked achievements
|
|
677
|
+
*/
|
|
678
|
+
unlockedCount: achievements.unlocked.length,
|
|
679
|
+
/**
|
|
680
|
+
* Reset all achievement progress
|
|
681
|
+
*/
|
|
682
|
+
reset,
|
|
683
|
+
/**
|
|
684
|
+
* Get current state (advanced usage)
|
|
685
|
+
*/
|
|
686
|
+
getState,
|
|
687
|
+
};
|
|
688
|
+
};
|
|
689
|
+
|
|
553
690
|
const defaultStyles = {
|
|
554
691
|
badgesButton: {
|
|
555
692
|
backgroundColor: '#4CAF50',
|
|
@@ -627,5 +764,5 @@ const defaultStyles = {
|
|
|
627
764
|
},
|
|
628
765
|
};
|
|
629
766
|
|
|
630
|
-
export { AchievementContext, AchievementProvider, BadgesButton, BadgesModal, ConfettiWrapper, LocalStorage, StorageType, defaultAchievementIcons, defaultStyles, useAchievements };
|
|
767
|
+
export { AchievementContext, AchievementProvider, BadgesButton, BadgesModal, ConfettiWrapper, LocalStorage, StorageType, defaultAchievementIcons, defaultStyles, isSimpleConfig, normalizeAchievements, useAchievements, useSimpleAchievements };
|
|
631
768
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/core/types.ts","../src/core/storage/LocalStorage.ts","../src/core/components/BadgesButton.tsx","../src/core/icons/defaultIcons.ts","../src/core/components/BadgesModal.tsx","../src/core/components/ConfettiWrapper.tsx","../src/core/storage/MemoryStorage.ts","../src/providers/AchievementProvider.tsx","../src/hooks/useAchievements.ts","../src/core/styles/defaultStyles.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/core/types.ts","../src/core/storage/LocalStorage.ts","../src/core/components/BadgesButton.tsx","../src/core/icons/defaultIcons.ts","../src/core/components/BadgesModal.tsx","../src/core/components/ConfettiWrapper.tsx","../src/core/utils/configNormalizer.ts","../src/core/storage/MemoryStorage.ts","../src/providers/AchievementProvider.tsx","../src/hooks/useAchievements.ts","../src/hooks/useSimpleAchievements.ts","../src/core/styles/defaultStyles.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,20 @@ export interface AchievementCondition {
|
|
|
22
22
|
export interface AchievementConfiguration {
|
|
23
23
|
[key: string]: AchievementCondition[];
|
|
24
24
|
}
|
|
25
|
+
export interface SimpleAchievementDetails {
|
|
26
|
+
title: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
icon?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface CustomAchievementDetails extends SimpleAchievementDetails {
|
|
31
|
+
condition: (metrics: Record<string, any>) => boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface SimpleAchievementConfig {
|
|
34
|
+
[metric: string]: {
|
|
35
|
+
[threshold: string]: SimpleAchievementDetails | CustomAchievementDetails;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export type AchievementConfigurationType = AchievementConfiguration | SimpleAchievementConfig;
|
|
25
39
|
export interface InitialAchievementMetrics {
|
|
26
40
|
[key: string]: AchievementMetricValue;
|
|
27
41
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AchievementConfiguration, SimpleAchievementConfig, AchievementConfigurationType } from '../types';
|
|
2
|
+
export declare function isSimpleConfig(config: AchievementConfigurationType): config is SimpleAchievementConfig;
|
|
3
|
+
export declare function normalizeAchievements(config: AchievementConfigurationType): AchievementConfiguration;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A simplified hook for achievement tracking.
|
|
3
|
+
* Provides an easier API for common use cases while maintaining access to advanced features.
|
|
4
|
+
*/
|
|
5
|
+
export declare const useSimpleAchievements: () => {
|
|
6
|
+
/**
|
|
7
|
+
* Track a metric value for achievements
|
|
8
|
+
* @param metric - The metric name (e.g., 'score', 'level')
|
|
9
|
+
* @param value - The metric value
|
|
10
|
+
*/
|
|
11
|
+
track: (metric: string, value: any) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Track multiple metrics at once
|
|
14
|
+
* @param metrics - Object with metric names as keys and values
|
|
15
|
+
*/
|
|
16
|
+
trackMultiple: (metrics: Record<string, any>) => void;
|
|
17
|
+
/**
|
|
18
|
+
* Array of unlocked achievement IDs
|
|
19
|
+
*/
|
|
20
|
+
unlocked: string[];
|
|
21
|
+
/**
|
|
22
|
+
* All available achievements
|
|
23
|
+
*/
|
|
24
|
+
all: Record<string, any>;
|
|
25
|
+
/**
|
|
26
|
+
* Number of unlocked achievements
|
|
27
|
+
*/
|
|
28
|
+
unlockedCount: number;
|
|
29
|
+
/**
|
|
30
|
+
* Reset all achievement progress
|
|
31
|
+
*/
|
|
32
|
+
reset: () => void;
|
|
33
|
+
/**
|
|
34
|
+
* Get current state (advanced usage)
|
|
35
|
+
*/
|
|
36
|
+
getState: () => {
|
|
37
|
+
metrics: import("..").AchievementMetrics;
|
|
38
|
+
unlocked: string[];
|
|
39
|
+
};
|
|
40
|
+
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { AchievementMetrics, AchievementConfiguration, AchievementDetails, AchievementCondition, AchievementMetricValue, AchievementMetricArrayValue, InitialAchievementMetrics, AchievementState, AchievementStorage, AchievementContextValue, StylesProps, AchievementProviderProps, } from './core/types';
|
|
1
|
+
export type { AchievementMetrics, AchievementConfiguration, AchievementConfigurationType, SimpleAchievementConfig, SimpleAchievementDetails, CustomAchievementDetails, AchievementDetails, AchievementCondition, AchievementMetricValue, AchievementMetricArrayValue, InitialAchievementMetrics, AchievementState, AchievementStorage, AchievementContextValue, StylesProps, AchievementProviderProps, } from './core/types';
|
|
2
2
|
export { LocalStorage } from './core/storage/LocalStorage';
|
|
3
3
|
export { StorageType } from './core/types';
|
|
4
4
|
export { BadgesButton } from './core/components/BadgesButton';
|
|
@@ -6,5 +6,7 @@ export { BadgesModal } from './core/components/BadgesModal';
|
|
|
6
6
|
export { ConfettiWrapper } from './core/components/ConfettiWrapper';
|
|
7
7
|
export { AchievementProvider, AchievementContext } from './providers/AchievementProvider';
|
|
8
8
|
export { useAchievements } from './hooks/useAchievements';
|
|
9
|
+
export { useSimpleAchievements } from './hooks/useSimpleAchievements';
|
|
9
10
|
export { defaultStyles } from './core/styles/defaultStyles';
|
|
10
11
|
export { defaultAchievementIcons } from './core/icons/defaultIcons';
|
|
12
|
+
export { normalizeAchievements, isSimpleConfig } from './core/utils/configNormalizer';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { AchievementConfigurationType, AchievementStorage, AchievementMetrics, StorageType } from '../core/types';
|
|
3
3
|
import 'react-toastify/dist/ReactToastify.css';
|
|
4
4
|
export interface AchievementContextType {
|
|
5
5
|
update: (metrics: Record<string, any>) => void;
|
|
@@ -15,7 +15,7 @@ export interface AchievementContextType {
|
|
|
15
15
|
}
|
|
16
16
|
export declare const AchievementContext: React.Context<AchievementContextType | undefined>;
|
|
17
17
|
interface AchievementProviderProps {
|
|
18
|
-
achievements:
|
|
18
|
+
achievements: AchievementConfigurationType;
|
|
19
19
|
storage?: AchievementStorage | StorageType;
|
|
20
20
|
children: React.ReactNode;
|
|
21
21
|
icons?: Record<string, string>;
|