react-achievements 3.0.1 → 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 CHANGED
@@ -6,45 +6,63 @@ A flexible and extensible achievement system for React applications. This packag
6
6
  <img src="https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExbnMxdHVqanZvbGR6czJqOTdpejZqc3F3NXh6a2FiM3lmdnB0d3VoOSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/LYXAZelQMeeYpzbgtT/giphy.gif" alt="React Achievements Demo" width="600" />
7
7
  </p>
8
8
 
9
+ ## Installation
10
+
11
+ ```bash
12
+ npm install react-achievements react react-dom react-confetti react-modal react-toastify react-use
13
+ ```
14
+
15
+ Note: React and React DOM should be version 16.8.0 or higher. If you already have some of these packages installed, npm will skip them automatically.
16
+
9
17
  ## Quick Start
10
18
 
11
- 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:
12
20
 
13
21
  ```tsx
14
22
  import React, { useState } from 'react';
15
23
  import {
16
24
  AchievementProvider,
17
- useAchievements,
25
+ useSimpleAchievements,
18
26
  BadgesButton,
19
27
  BadgesModal
20
28
  } from 'react-achievements';
21
29
 
22
- // Define a simple achievement
23
- const achievementConfig = {
24
- score: [{
25
- isConditionMet: (value: number) => value >= 100,
26
- achievementDetails: {
27
- achievementId: 'score_100',
28
- achievementTitle: 'Century!',
29
- achievementDescription: 'Score 100 points',
30
- achievementIconKey: 'trophy'
31
- }
32
- }]
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
+ }
33
42
  };
34
43
 
35
- // Demo component with all essential features
44
+ // Demo component with all essential features
36
45
  const DemoComponent = () => {
37
46
  const [isModalOpen, setIsModalOpen] = useState(false);
38
- const { update, achievements, reset } = useAchievements();
47
+ const { track, unlocked, unlockedCount, reset } = useSimpleAchievements();
39
48
 
40
49
  return (
41
50
  <div>
42
51
  <h1>Achievement Demo</h1>
43
52
 
44
- {/* Button to trigger achievement */}
45
- <button onClick={() => update({ score: 100 })}>
53
+ {/* Simple tracking - much easier! */}
54
+ <button onClick={() => track('score', 100)}>
46
55
  Score 100 points
47
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>
48
66
 
49
67
  {/* Reset button */}
50
68
  <button onClick={reset}>
@@ -52,20 +70,20 @@ const DemoComponent = () => {
52
70
  </button>
53
71
 
54
72
  {/* Shows unlocked achievements count */}
55
- <p>Unlocked: {achievements.unlocked.length}</p>
73
+ <p>Unlocked: {unlockedCount}</p>
56
74
 
57
75
  {/* Floating badges button */}
58
76
  <BadgesButton
59
77
  position="bottom-right"
60
78
  onClick={() => setIsModalOpen(true)}
61
- unlockedAchievements={achievements.unlocked}
79
+ unlockedAchievements={[]} // Simplified for demo
62
80
  />
63
81
 
64
82
  {/* Achievement history modal */}
65
83
  <BadgesModal
66
84
  isOpen={isModalOpen}
67
85
  onClose={() => setIsModalOpen(false)}
68
- achievements={achievements.unlocked}
86
+ achievements={[]} // Simplified for demo
69
87
  />
70
88
  </div>
71
89
  );
@@ -75,7 +93,7 @@ const DemoComponent = () => {
75
93
  const App = () => {
76
94
  return (
77
95
  <AchievementProvider
78
- achievements={achievementConfig}
96
+ achievements={achievements}
79
97
  storage="local"
80
98
  >
81
99
  <DemoComponent />
@@ -87,11 +105,50 @@ export default App;
87
105
  ```
88
106
 
89
107
  When you click "Score 100 points":
90
- 1. A toast notification appears
91
- 2. Confetti animation plays
108
+ 1. A toast notification appears automatically
109
+ 2. Confetti animation plays
92
110
  3. The achievement is stored and visible in the badges modal
93
111
  4. The badges button updates to show the new count
94
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
+
95
152
  ## State Management Options
96
153
 
97
154
  This package includes example implementations for different state management solutions in the `stories/examples` directory:
@@ -147,100 +204,88 @@ To allow users to view their achievement history, the package provides two essen
147
204
 
148
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.
149
206
 
150
- ## Installation
207
+ ## API Options
151
208
 
152
- ```bash
153
- npm install react-achievements
154
- ```
155
-
156
- ## Basic Usage
209
+ ### Simple API (Recommended)
210
+ Perfect for 90% of use cases - threshold-based achievements with minimal configuration:
157
211
 
158
212
  ```tsx
159
- import { AchievementProvider, useAchievements } from 'react-achievements';
160
- // For specific state management implementations:
161
- // import { AchievementProvider, useAchievements } from 'react-achievements/redux';
162
- // import { AchievementProvider, useAchievements } from 'react-achievements/zustand';
163
- // import { AchievementProvider, useAchievements } from 'react-achievements/context';
213
+ import { AchievementProvider, useSimpleAchievements } from 'react-achievements';
164
214
 
165
- // Define your achievements with various data types and conditions
166
215
  const achievements = {
167
- // Numeric achievements with thresholds
216
+ // Numeric thresholds
168
217
  score: {
169
- 100: {
170
- title: 'Century!',
171
- description: 'Score 100 points',
172
- icon: 'trophy'
173
- },
174
- 500: {
175
- title: 'Half a Thousand!',
176
- description: 'Score 500 points',
177
- icon: 'gold',
178
- condition: (value) => value >= 500
179
- }
218
+ 100: { title: 'Century!', description: 'Score 100 points', icon: '🏆' },
219
+ 500: { title: 'High Scorer!', icon: '⭐' }
180
220
  },
181
-
182
- // Boolean achievements
221
+
222
+ // Boolean achievements
183
223
  completedTutorial: {
184
- true: {
185
- title: 'Tutorial Master',
186
- description: 'Complete the tutorial',
187
- icon: 'book'
188
- }
224
+ true: { title: 'Tutorial Master', description: 'Complete the tutorial', icon: '📚' }
189
225
  },
190
-
226
+
191
227
  // String-based achievements
192
228
  characterClass: {
193
- 'wizard': {
194
- title: 'Arcane Scholar',
195
- description: 'Choose the wizard class',
196
- icon: 'wand'
197
- },
198
- 'warrior': {
199
- title: 'Battle Hardened',
200
- description: 'Choose the warrior class',
201
- icon: 'sword'
202
- }
229
+ wizard: { title: 'Arcane Scholar', description: 'Choose the wizard class', icon: '🧙‍♂️ ' },
230
+ warrior: { title: 'Battle Hardened', description: 'Choose the warrior class', icon: '⚔️' }
203
231
  },
204
232
 
205
- // Array-based achievements
206
- collectedItems: {
207
- ['sword', 'shield', 'potion']: {
208
- title: 'Fully Equipped',
209
- description: 'Collect all essential items',
210
- icon: 'backpack',
211
- condition: (items) => ['sword', 'shield', 'potion'].every(item => items.includes(item))
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
212
240
  }
213
- },
241
+ }
242
+ };
214
243
 
215
- // Object-based achievements
216
- playerStats: {
217
- { strength: 10, intelligence: 10 }: {
218
- title: 'Balanced Warrior',
219
- description: 'Achieve balanced stats',
220
- icon: 'scale',
221
- condition: (stats) => stats.strength === 10 && stats.intelligence === 10
222
- }
223
- },
244
+ const { track, unlocked, unlockedCount, reset } = useSimpleAchievements();
224
245
 
225
- // Time-based achievements
226
- playTime: {
227
- 3600: {
228
- title: 'Dedicated Player',
229
- description: 'Play for 1 hour',
230
- icon: 'clock',
231
- condition: (seconds) => seconds >= 3600
232
- }
233
- },
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"
234
250
 
235
- // Combination achievements
236
- combo: {
237
- { score: 1000, level: 5 }: {
238
- title: 'Rising Star',
239
- description: 'Reach level 5 with 1000 points',
240
- icon: 'star',
241
- condition: (metrics) => metrics.score >= 1000 && metrics.level >= 5
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'
242
274
  }
243
- }
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
+ }]
244
289
  };
245
290
 
246
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: AchievementConfiguration;
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
- export { AchievementCondition, AchievementConfiguration, AchievementContext, AchievementContextValue, AchievementDetails, AchievementMetricArrayValue, AchievementMetricValue, AchievementMetrics, AchievementProvider, AchievementProviderProps$1 as AchievementProviderProps, AchievementState, AchievementStorage, BadgesButton, BadgesModal, ConfettiWrapper, InitialAchievementMetrics, LocalStorage, StorageType, StylesProps, defaultAchievementIcons, defaultStyles, useAchievements };
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
- const currentValue = metrics[metricName];
436
- if (currentValue !== undefined) {
437
- metricAchievements.forEach((achievement) => {
438
- const state = { metrics, unlockedAchievements: achievementState.unlocked };
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
+ };
@@ -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 { AchievementConfiguration, AchievementStorage, AchievementMetrics, StorageType } from '../core/types';
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: AchievementConfiguration;
18
+ achievements: AchievementConfigurationType;
19
19
  storage?: AchievementStorage | StorageType;
20
20
  children: React.ReactNode;
21
21
  icons?: Record<string, string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-achievements",
3
- "version": "3.0.1",
3
+ "version": "3.1.0",
4
4
  "description": "Core achievement system for React applications",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",