@magmamath/students-features 0.6.5-rc.2 → 0.6.5-rc.4

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 (63) hide show
  1. package/dist/commonjs/features/gifCelebrations/GifCelebrations.js +2 -1
  2. package/dist/commonjs/features/gifCelebrations/GifCelebrations.js.map +1 -1
  3. package/dist/commonjs/features/gifCelebrations/components/Gif.js +18 -13
  4. package/dist/commonjs/features/gifCelebrations/components/Gif.js.map +1 -1
  5. package/dist/commonjs/features/gifCelebrations/components/Progress.js +6 -3
  6. package/dist/commonjs/features/gifCelebrations/components/Progress.js.map +1 -1
  7. package/dist/commonjs/features/gifCelebrations/constants.js +12 -1
  8. package/dist/commonjs/features/gifCelebrations/constants.js.map +1 -1
  9. package/dist/commonjs/features/gifCelebrations/helpers.js +21 -27
  10. package/dist/commonjs/features/gifCelebrations/helpers.js.map +1 -1
  11. package/dist/commonjs/features/gifCelebrations/model/GifCelebrations.cache.js +18 -5
  12. package/dist/commonjs/features/gifCelebrations/model/GifCelebrations.cache.js.map +1 -1
  13. package/dist/commonjs/features/gifCelebrations/model/GifCelebrations.model.js +11 -40
  14. package/dist/commonjs/features/gifCelebrations/model/GifCelebrations.model.js.map +1 -1
  15. package/dist/module/features/gifCelebrations/GifCelebrations.js +2 -1
  16. package/dist/module/features/gifCelebrations/GifCelebrations.js.map +1 -1
  17. package/dist/module/features/gifCelebrations/components/Gif.js +18 -13
  18. package/dist/module/features/gifCelebrations/components/Gif.js.map +1 -1
  19. package/dist/module/features/gifCelebrations/components/Progress.js +8 -5
  20. package/dist/module/features/gifCelebrations/components/Progress.js.map +1 -1
  21. package/dist/module/features/gifCelebrations/constants.js +11 -0
  22. package/dist/module/features/gifCelebrations/constants.js.map +1 -1
  23. package/dist/module/features/gifCelebrations/helpers.js +19 -25
  24. package/dist/module/features/gifCelebrations/helpers.js.map +1 -1
  25. package/dist/module/features/gifCelebrations/model/GifCelebrations.cache.js +19 -6
  26. package/dist/module/features/gifCelebrations/model/GifCelebrations.cache.js.map +1 -1
  27. package/dist/module/features/gifCelebrations/model/GifCelebrations.model.js +11 -40
  28. package/dist/module/features/gifCelebrations/model/GifCelebrations.model.js.map +1 -1
  29. package/dist/typescript/commonjs/features/gifCelebrations/components/Gif.d.ts +3 -1
  30. package/dist/typescript/commonjs/features/gifCelebrations/components/Gif.d.ts.map +1 -1
  31. package/dist/typescript/commonjs/features/gifCelebrations/components/Progress.d.ts.map +1 -1
  32. package/dist/typescript/commonjs/features/gifCelebrations/constants.d.ts +9 -0
  33. package/dist/typescript/commonjs/features/gifCelebrations/constants.d.ts.map +1 -1
  34. package/dist/typescript/commonjs/features/gifCelebrations/helpers.d.ts +16 -8
  35. package/dist/typescript/commonjs/features/gifCelebrations/helpers.d.ts.map +1 -1
  36. package/dist/typescript/commonjs/features/gifCelebrations/model/GifCelebrations.cache.d.ts +11 -1
  37. package/dist/typescript/commonjs/features/gifCelebrations/model/GifCelebrations.cache.d.ts.map +1 -1
  38. package/dist/typescript/commonjs/features/gifCelebrations/model/GifCelebrations.model.d.ts +1 -1
  39. package/dist/typescript/commonjs/features/gifCelebrations/model/GifCelebrations.model.d.ts.map +1 -1
  40. package/dist/typescript/commonjs/features/gifCelebrations/types/model.types.d.ts +7 -0
  41. package/dist/typescript/commonjs/features/gifCelebrations/types/model.types.d.ts.map +1 -1
  42. package/dist/typescript/module/features/gifCelebrations/components/Gif.d.ts +3 -1
  43. package/dist/typescript/module/features/gifCelebrations/components/Gif.d.ts.map +1 -1
  44. package/dist/typescript/module/features/gifCelebrations/components/Progress.d.ts.map +1 -1
  45. package/dist/typescript/module/features/gifCelebrations/constants.d.ts +9 -0
  46. package/dist/typescript/module/features/gifCelebrations/constants.d.ts.map +1 -1
  47. package/dist/typescript/module/features/gifCelebrations/helpers.d.ts +16 -8
  48. package/dist/typescript/module/features/gifCelebrations/helpers.d.ts.map +1 -1
  49. package/dist/typescript/module/features/gifCelebrations/model/GifCelebrations.cache.d.ts +11 -1
  50. package/dist/typescript/module/features/gifCelebrations/model/GifCelebrations.cache.d.ts.map +1 -1
  51. package/dist/typescript/module/features/gifCelebrations/model/GifCelebrations.model.d.ts +1 -1
  52. package/dist/typescript/module/features/gifCelebrations/model/GifCelebrations.model.d.ts.map +1 -1
  53. package/dist/typescript/module/features/gifCelebrations/types/model.types.d.ts +7 -0
  54. package/dist/typescript/module/features/gifCelebrations/types/model.types.d.ts.map +1 -1
  55. package/package.json +1 -1
  56. package/src/features/gifCelebrations/GifCelebrations.tsx +1 -1
  57. package/src/features/gifCelebrations/components/Gif.tsx +22 -12
  58. package/src/features/gifCelebrations/components/Progress.tsx +2 -3
  59. package/src/features/gifCelebrations/constants.ts +11 -0
  60. package/src/features/gifCelebrations/helpers.ts +28 -33
  61. package/src/features/gifCelebrations/model/GifCelebrations.cache.ts +33 -14
  62. package/src/features/gifCelebrations/model/GifCelebrations.model.ts +13 -37
  63. package/src/features/gifCelebrations/types/model.types.ts +8 -0
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import { StyleSheet, View } from 'react-native';
3
+ import { StyleSheet, View, Image } from 'react-native';
4
4
  import React from 'react';
5
5
  import { BORDER_RADIUS, COLORS, HeadingVariants, SPACING, Typography } from '@magmamath/react-native-ui';
6
6
  import Animated, { useAnimatedStyle, interpolate } from 'react-native-reanimated';
7
- import { jsx as _jsx } from "react/jsx-runtime";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  const MIN_WIDTH_FOR_ONE_DIGIT = 12;
9
9
  const MIN_WIDTH_FOR_TWO_DIGITS = 15;
10
10
  const ADJUSTMENT_FOR_HUNDRED_PERCENT = 1.8;
@@ -29,9 +29,9 @@ export const Progress = ({
29
29
  }), [progress, progressLineWidth]);
30
30
  return /*#__PURE__*/_jsx(View, {
31
31
  style: styles.backgroundContainer,
32
- children: /*#__PURE__*/_jsx(View, {
32
+ children: /*#__PURE__*/_jsxs(View, {
33
33
  style: styles.container,
34
- children: /*#__PURE__*/_jsx(View, {
34
+ children: [/*#__PURE__*/_jsx(View, {
35
35
  style: styles.progressContainer,
36
36
  children: /*#__PURE__*/_jsx(Animated.View, {
37
37
  style: [styles.progress, animatedStyles],
@@ -41,7 +41,10 @@ export const Progress = ({
41
41
  children: `${completedPercent}%`
42
42
  })
43
43
  })
44
- })
44
+ }), /*#__PURE__*/_jsx(Image, {
45
+ source: require('../assets/confetti.webp'),
46
+ style: styles.confetti
47
+ })]
45
48
  })
46
49
  });
47
50
  };
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","View","React","BORDER_RADIUS","COLORS","HeadingVariants","SPACING","Typography","Animated","useAnimatedStyle","interpolate","jsx","_jsx","MIN_WIDTH_FOR_ONE_DIGIT","MIN_WIDTH_FOR_TWO_DIGITS","ADJUSTMENT_FOR_HUNDRED_PERCENT","Progress","progress","completedPercent","progressLineWidth","animatedStyles","width","value","style","styles","backgroundContainer","children","container","progressContainer","variant","H1","percent","create","backgroundColor","borderRadius","padding","height","flexDirection","alignItems","NEUTRAL_1","paddingLeft","paddingRight","gap","flexGrow","NEUTRAL_5","overflow","position","left","PRIMARY_BLUE","justifyContent","confetti","marginHorizontal","color","fontWeight"],"sourceRoot":"../../../../../src","sources":["features/gifCelebrations/components/Progress.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","View","Image","React","BORDER_RADIUS","COLORS","HeadingVariants","SPACING","Typography","Animated","useAnimatedStyle","interpolate","jsx","_jsx","jsxs","_jsxs","MIN_WIDTH_FOR_ONE_DIGIT","MIN_WIDTH_FOR_TWO_DIGITS","ADJUSTMENT_FOR_HUNDRED_PERCENT","Progress","progress","completedPercent","progressLineWidth","animatedStyles","width","value","style","styles","backgroundContainer","children","container","progressContainer","variant","H1","percent","source","require","confetti","create","backgroundColor","borderRadius","padding","height","flexDirection","alignItems","NEUTRAL_1","paddingLeft","paddingRight","gap","flexGrow","NEUTRAL_5","overflow","position","left","PRIMARY_BLUE","justifyContent","marginHorizontal","color","fontWeight"],"sourceRoot":"../../../../../src","sources":["features/gifCelebrations/components/Progress.tsx"],"mappings":"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","ignoreList":[]}
@@ -11,4 +11,15 @@ export const CONTENT_CONTAINER = {
11
11
  };
12
12
  export const ANIMATION_DURATION = 1750;
13
13
  export const MIN_PROBLEMS_TO_SHOW_GIF = 6;
14
+ export const MAX_GIF_SIZE = {
15
+ WIDTH: 480,
16
+ HEIGHT: 300
17
+ };
18
+ export const GROUPS_PERCENTAGES = {
19
+ group1: [15, 20, 25, 30],
20
+ // Early celebrations
21
+ group2: [33, 40, 45, 50],
22
+ // Mid celebrations
23
+ group3: [60, 66, 75, 80] // Party
24
+ };
14
25
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BACKDROP_COLOR","INITIAL","FINAL","CONTENT_CONTAINER","ANGLE","CONTAINER_WIDTH","SAFE_AREA","ANIMATION_DURATION","MIN_PROBLEMS_TO_SHOW_GIF"],"sourceRoot":"../../../../src","sources":["features/gifCelebrations/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,cAAc,GAAG;EAC5BC,OAAO,EAAE,qBAAqB;EAC9BC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAAG;EAC/BC,KAAK,EAAE,CAAC;EACRC,eAAe,EAAE,GAAG;EACpBC,SAAS,EAAE,EAAE,CAAE;AACjB,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAG,IAAI;AACtC,OAAO,MAAMC,wBAAwB,GAAG,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["BACKDROP_COLOR","INITIAL","FINAL","CONTENT_CONTAINER","ANGLE","CONTAINER_WIDTH","SAFE_AREA","ANIMATION_DURATION","MIN_PROBLEMS_TO_SHOW_GIF","MAX_GIF_SIZE","WIDTH","HEIGHT","GROUPS_PERCENTAGES","group1","group2","group3"],"sourceRoot":"../../../../src","sources":["features/gifCelebrations/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,cAAc,GAAG;EAC5BC,OAAO,EAAE,qBAAqB;EAC9BC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAAG;EAC/BC,KAAK,EAAE,CAAC;EACRC,eAAe,EAAE,GAAG;EACpBC,SAAS,EAAE,EAAE,CAAE;AACjB,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAG,IAAI;AACtC,OAAO,MAAMC,wBAAwB,GAAG,CAAC;AAEzC,OAAO,MAAMC,YAAY,GAAG;EAC1BC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE;AACV,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAG;EAChCC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;EAAE;EAC1BC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;EAAE;EAC1BC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAE;AAC5B,CAAC","ignoreList":[]}
@@ -1,30 +1,19 @@
1
1
  "use strict";
2
2
 
3
- // Number of problems When we show gif
4
- // <6 Never
5
- // 7-12 50% completion
6
- // 13-18 33%, 66% completion
7
- // 19-24 25%, 50%, 75 completion
8
- // 25-30 20%, 40%, 60%, 80% completion
9
- // .>30 15%, 30%, 45%, 60%, 75% completion
10
-
11
- // We are also going to have different buckets with different gifs. The logic is as follows:
12
- // Group 1: 15%, 20%, 25%, 30% - Early celebrations
13
- // Group 2: 33%, 40%, 45%, 50% - Mid celebrations
14
- // Group 3: 60%, 66%, 75%, 80% - Party
15
-
16
- export const gifSelect = ({
17
- gifsGroups,
18
- resolvedProblem,
19
- totalProblems
20
- }) => {
21
- if (totalProblems < 7) return null;
22
- const group = Math.ceil(resolvedProblem / totalProblems * 100);
23
- if (group <= 20) return gifsGroups.group1[Math.floor(Math.random() * gifsGroups.group1.length)];
24
- if (group <= 40) return gifsGroups.group2[Math.floor(Math.random() * gifsGroups.group2.length)];
25
- if (group <= 60) return gifsGroups.group3[Math.floor(Math.random() * gifsGroups.group3.length)];
26
- return null;
27
- };
3
+ /**
4
+ * Number of problems When we show gif
5
+ * <6 Never
6
+ * 7-12 50% completion
7
+ * 13-18 33%, 66% completion
8
+ * 19-24 25%, 50%, 75 completion
9
+ * 25-30 20%, 40%, 60%, 80% completion
10
+ * .>30 15%, 30%, 45%, 60%, 75% completion
11
+ *
12
+ * We are also going to have different buckets with different gifs. The logic is as follows:
13
+ * Group 1: 15%, 20%, 25%, 30% - Early celebrations
14
+ * Group 2: 33%, 40%, 45%, 50% - Mid celebrations
15
+ * Group 3: 60%, 66%, 75%, 80% - Party
16
+ */
28
17
  export const calculatePercentageTable = totalProblems => {
29
18
  if (totalProblems <= 12) return {
30
19
  50: Math.ceil(totalProblems * 0.5)
@@ -58,4 +47,9 @@ export const calculatePercentageTable = totalProblems => {
58
47
  75: Math.ceil(totalProblems * 0.75)
59
48
  };
60
49
  };
50
+ export const generateGifsStructure = gifs => Object.fromEntries(Object.entries(gifs).map(([key, value]) => [key, value.map(url => ({
51
+ url,
52
+ isShown: false,
53
+ group: key
54
+ }))]));
61
55
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["gifSelect","gifsGroups","resolvedProblem","totalProblems","group","Math","ceil","group1","floor","random","length","group2","group3","calculatePercentageTable"],"sourceRoot":"../../../../src","sources":["features/gifCelebrations/helpers.ts"],"mappings":";;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,SAAS,GAAGA,CAAC;EAAEC,UAAU;EAAEC,eAAe;EAAEC;AAA8B,CAAC,KAAK;EAC3F,IAAIA,aAAa,GAAG,CAAC,EAAE,OAAO,IAAI;EAElC,MAAMC,KAAK,GAAGC,IAAI,CAACC,IAAI,CAAEJ,eAAe,GAAGC,aAAa,GAAI,GAAG,CAAC;EAEhE,IAAIC,KAAK,IAAI,EAAE,EAAE,OAAOH,UAAU,CAACM,MAAM,CAACF,IAAI,CAACG,KAAK,CAACH,IAAI,CAACI,MAAM,CAAC,CAAC,GAAGR,UAAU,CAACM,MAAM,CAACG,MAAM,CAAC,CAAC;EAC/F,IAAIN,KAAK,IAAI,EAAE,EAAE,OAAOH,UAAU,CAACU,MAAM,CAACN,IAAI,CAACG,KAAK,CAACH,IAAI,CAACI,MAAM,CAAC,CAAC,GAAGR,UAAU,CAACU,MAAM,CAACD,MAAM,CAAC,CAAC;EAC/F,IAAIN,KAAK,IAAI,EAAE,EAAE,OAAOH,UAAU,CAACW,MAAM,CAACP,IAAI,CAACG,KAAK,CAACH,IAAI,CAACI,MAAM,CAAC,CAAC,GAAGR,UAAU,CAACW,MAAM,CAACF,MAAM,CAAC,CAAC;EAE/F,OAAO,IAAI;AACb,CAAC;AAED,OAAO,MAAMG,wBAAwB,GAAIV,aAAqB,IAAK;EACjE,IAAIA,aAAa,IAAI,EAAE,EAAE,OAAO;IAAE,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,GAAG;EAAE,CAAC;EAEtE,IAAIA,aAAa,IAAI,EAAE,EAAE;IACvB,OAAO;MACL,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,IAAI,CAAC;MACnC,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,IAAI;IACpC,CAAC;EACH;EAEA,IAAIA,aAAa,IAAI,EAAE,EAAE;IACvB,OAAO;MACL,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,IAAI,CAAC;MACnC,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,GAAG,CAAC;MAClC,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,IAAI;IACpC,CAAC;EACH;EAEA,IAAIA,aAAa,IAAI,EAAE,EAAE;IACvB,OAAO;MACL,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,GAAG,CAAC;MAClC,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,GAAG,CAAC;MAClC,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,GAAG,CAAC;MAClC,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,GAAG;IACnC,CAAC;EACH;EAEA,OAAO;IACL,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,IAAI,CAAC;IACnC,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,GAAG,CAAC;IAClC,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,IAAI,CAAC;IACnC,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,GAAG,CAAC;IAClC,EAAE,EAAEE,IAAI,CAACC,IAAI,CAACH,aAAa,GAAG,IAAI;EACpC,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["calculatePercentageTable","totalProblems","Math","ceil","generateGifsStructure","gifs","Object","fromEntries","entries","map","key","value","url","isShown","group"],"sourceRoot":"../../../../src","sources":["features/gifCelebrations/helpers.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,wBAAwB,GAAIC,aAAqB,IAAK;EACjE,IAAIA,aAAa,IAAI,EAAE,EAAE,OAAO;IAAE,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,GAAG;EAAE,CAAC;EAEtE,IAAIA,aAAa,IAAI,EAAE,EAAE;IACvB,OAAO;MACL,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,IAAI,CAAC;MACnC,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,IAAI;IACpC,CAAC;EACH;EAEA,IAAIA,aAAa,IAAI,EAAE,EAAE;IACvB,OAAO;MACL,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,IAAI,CAAC;MACnC,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,GAAG,CAAC;MAClC,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,IAAI;IACpC,CAAC;EACH;EAEA,IAAIA,aAAa,IAAI,EAAE,EAAE;IACvB,OAAO;MACL,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,GAAG,CAAC;MAClC,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,GAAG,CAAC;MAClC,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,GAAG,CAAC;MAClC,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,GAAG;IACnC,CAAC;EACH;EAEA,OAAO;IACL,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,IAAI,CAAC;IACnC,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,GAAG,CAAC;IAClC,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,IAAI,CAAC;IACnC,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,GAAG,CAAC;IAClC,EAAE,EAAEC,IAAI,CAACC,IAAI,CAACF,aAAa,GAAG,IAAI;EACpC,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,qBAAqB,GAAIC,IAAgB,IACpDC,MAAM,CAACC,WAAW,CAChBD,MAAM,CAACE,OAAO,CAACH,IAAI,CAAC,CAACI,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK,CACzCD,GAAG,EACHC,KAAK,CAACF,GAAG,CAAEG,GAAG,KAAM;EAClBA,GAAG;EACHC,OAAO,EAAE,KAAK;EACdC,KAAK,EAAEJ;AACT,CAAC,CAAC,CAAC,CACJ,CACH,CAAC","ignoreList":[]}
@@ -1,14 +1,27 @@
1
1
  "use strict";
2
2
 
3
- import { createEvent, createStore } from 'effector';
3
+ import { createEffect, createEvent, createStore } from 'effector';
4
+ import { generateGifsStructure } from "../helpers.js";
5
+ import { Image } from 'react-native';
4
6
  export class GifCelebrationsCache {
5
7
  initialSet = createEvent();
6
8
  set = createEvent();
7
9
  reset = createEvent();
8
- $gifs = createStore(null).reset(this.reset).on(this.initialSet, (_, gifs) => Object.fromEntries(Object.entries(gifs).map(([key, value]) => [key, value.map(url => ({
9
- url,
10
- isShown: false,
11
- group: key
12
- }))]))).on(this.set, (_, gifs) => gifs);
10
+ prefetchGifs = createEffect(data => {
11
+ Object.values(data).forEach(group => {
12
+ group.forEach(gifUrl => {
13
+ Image.prefetch(gifUrl);
14
+ });
15
+ });
16
+ this.initialSet(data);
17
+ });
18
+ $gifs = createStore(null).reset(this.reset).on(this.initialSet, (_, gifs) => generateGifsStructure(gifs)).on(this.set, (_, gifs) => gifs);
19
+ constructor({
20
+ customPrefetchMethod,
21
+ customGetCachePathMethod
22
+ }) {
23
+ this.prefetchMethod = customPrefetchMethod || Image.prefetch;
24
+ this.getCachePathMethod = customGetCachePathMethod;
25
+ }
13
26
  }
14
27
  //# sourceMappingURL=GifCelebrations.cache.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createEvent","createStore","GifCelebrationsCache","initialSet","set","reset","$gifs","on","_","gifs","Object","fromEntries","entries","map","key","value","url","isShown","group"],"sourceRoot":"../../../../../src","sources":["features/gifCelebrations/model/GifCelebrations.cache.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,WAAW,QAAQ,UAAU;AAGnD,OAAO,MAAMC,oBAAoB,CAAC;EAChBC,UAAU,GAAGH,WAAW,CAAa,CAAC;EACtCI,GAAG,GAAGJ,WAAW,CAAgB,CAAC;EAClCK,KAAK,GAAGL,WAAW,CAAC,CAAC;EAErBM,KAAK,GAAGL,WAAW,CAAuB,IAAI,CAAC,CAC5DI,KAAK,CAAC,IAAI,CAACA,KAAK,CAAC,CACjBE,EAAE,CAAC,IAAI,CAACJ,UAAU,EAAE,CAACK,CAAC,EAAEC,IAAI,KAC3BC,MAAM,CAACC,WAAW,CAChBD,MAAM,CAACE,OAAO,CAACH,IAAI,CAAC,CAACI,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK,CACzCD,GAAG,EACHC,KAAK,CAACF,GAAG,CAAEG,GAAG,KAAM;IAClBA,GAAG;IACHC,OAAO,EAAE,KAAK;IACdC,KAAK,EAAEJ;EACT,CAAC,CAAC,CAAC,CACJ,CACH,CACF,CAAC,CACAP,EAAE,CAAC,IAAI,CAACH,GAAG,EAAE,CAACI,CAAC,EAAEC,IAAI,KAAKA,IAAI,CAAC;AACpC","ignoreList":[]}
1
+ {"version":3,"names":["createEffect","createEvent","createStore","generateGifsStructure","Image","GifCelebrationsCache","initialSet","set","reset","prefetchGifs","data","Object","values","forEach","group","gifUrl","prefetch","$gifs","on","_","gifs","constructor","customPrefetchMethod","customGetCachePathMethod","prefetchMethod","getCachePathMethod"],"sourceRoot":"../../../../../src","sources":["features/gifCelebrations/model/GifCelebrations.cache.ts"],"mappings":";;AAAA,SAASA,YAAY,EAAEC,WAAW,EAAEC,WAAW,QAAQ,UAAU;AAOjE,SAASC,qBAAqB,QAAQ,eAAY;AAClD,SAASC,KAAK,QAAQ,cAAc;AAOpC,OAAO,MAAMC,oBAAoB,CAAC;EAChBC,UAAU,GAAGL,WAAW,CAAa,CAAC;EACtCM,GAAG,GAAGN,WAAW,CAAgB,CAAC;EAClCO,KAAK,GAAGP,WAAW,CAAC,CAAC;EAKrBQ,YAAY,GAAGT,YAAY,CAAoBU,IAAI,IAAK;IACtEC,MAAM,CAACC,MAAM,CAACF,IAAI,CAAC,CAACG,OAAO,CAAEC,KAAK,IAAK;MACrCA,KAAK,CAACD,OAAO,CAAEE,MAAM,IAAK;QACxBX,KAAK,CAACY,QAAQ,CAACD,MAAM,CAAC;MACxB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,CAACT,UAAU,CAACI,IAAI,CAAC;EACvB,CAAC,CAAC;EAEcO,KAAK,GAAGf,WAAW,CAAuB,IAAI,CAAC,CAC5DM,KAAK,CAAC,IAAI,CAACA,KAAK,CAAC,CACjBU,EAAE,CAAC,IAAI,CAACZ,UAAU,EAAE,CAACa,CAAC,EAAEC,IAAI,KAAKjB,qBAAqB,CAACiB,IAAI,CAAC,CAAC,CAC7DF,EAAE,CAAC,IAAI,CAACX,GAAG,EAAE,CAACY,CAAC,EAAEC,IAAI,KAAKA,IAAI,CAAC;EAElCC,WAAWA,CAAC;IAAEC,oBAAoB;IAAEC;EAAoD,CAAC,EAAE;IACzF,IAAI,CAACC,cAAc,GAAGF,oBAAoB,IAAIlB,KAAK,CAACY,QAAQ;IAC5D,IAAI,CAACS,kBAAkB,GAAGF,wBAAwB;EACpD;AACF","ignoreList":[]}
@@ -4,15 +4,7 @@ import { createEffect, createEvent, createStore, sample } from 'effector';
4
4
  import { GifCelebrationsApi } from "./GifCelebrationsApi.js";
5
5
  import { GifCelebrationsCache } from "./GifCelebrations.cache.js";
6
6
  import { calculatePercentageTable } from "../helpers.js";
7
- import { Image } from 'react-native';
8
- import { MIN_PROBLEMS_TO_SHOW_GIF } from "../constants.js";
9
- const GROUPS_PERCENTAGES = {
10
- group1: [15, 20, 25, 30],
11
- // Early celebrations
12
- group2: [33, 40, 45, 50],
13
- // Mid celebrations
14
- group3: [60, 66, 75, 80] // Party
15
- };
7
+ import { GROUPS_PERCENTAGES, MIN_PROBLEMS_TO_SHOW_GIF } from "../constants.js";
16
8
  export class GifCelebrationsModel {
17
9
  triggerPlay = createEvent();
18
10
  stop = createEvent();
@@ -25,10 +17,15 @@ export class GifCelebrationsModel {
25
17
  constructor({
26
18
  api,
27
19
  totalProblems,
28
- resolvedProblems
20
+ resolvedProblems,
21
+ customPrefetchMethod,
22
+ customGetCachePathMethod
29
23
  }) {
30
24
  this.api = new GifCelebrationsApi(api);
31
- this.cache = new GifCelebrationsCache();
25
+ this.cache = new GifCelebrationsCache({
26
+ customPrefetchMethod,
27
+ customGetCachePathMethod
28
+ });
32
29
  this.$totalProblems = totalProblems;
33
30
  this.$resolvedProblems = resolvedProblems;
34
31
  this.setupEventHandlers();
@@ -36,17 +33,9 @@ export class GifCelebrationsModel {
36
33
  setupEventHandlers() {
37
34
  sample({
38
35
  source: this.api.getGifsFx.doneData,
39
- fn: response => response.ok ? response.data : (() => {
40
- throw new Error('Failed to fetch GIFs');
41
- })(),
42
- target: createEffect(data => {
43
- Object.values(data).forEach(group => {
44
- group.forEach(gifUrl => {
45
- Image.prefetch(gifUrl);
46
- });
47
- });
48
- this.cache.initialSet(data);
49
- })
36
+ filter: response => response.ok,
37
+ fn: response => response.data,
38
+ target: this.cache.prefetchGifs
50
39
  });
51
40
  sample({
52
41
  clock: this.initialize,
@@ -84,24 +73,14 @@ export class GifCelebrationsModel {
84
73
  resolvedProblem,
85
74
  problemsPercentageTable
86
75
  }) => {
87
- // Find which percentage milestone this resolved problem represents
88
76
  const percentageMilestone = Object.keys(problemsPercentageTable).find(key => problemsPercentageTable[Number(key)] === resolvedProblem);
89
77
  if (!percentageMilestone) return null;
90
-
91
- // Find which group this percentage belongs to
92
78
  const groupName = this.findGroupForPercentage(Number(percentageMilestone));
93
79
  if (!groupName) return null;
94
-
95
- // Get available gifs for this group
96
80
  const gifsForGroup = gifsGroups[groupName];
97
81
  if (!gifsForGroup || gifsForGroup.length === 0) return null;
98
-
99
- // Find the first gif that hasn't been shown yet
100
82
  const unusedGifIndex = gifsForGroup.findIndex(gif => !gif.isShown);
101
-
102
- // If all gifs have been shown, reset the group and start from the beginning
103
83
  if (unusedGifIndex === -1) {
104
- // Reset the group by setting all gifs to isShown: false
105
84
  const updatedGifsGroups = {
106
85
  ...gifsGroups
107
86
  };
@@ -109,27 +88,19 @@ export class GifCelebrationsModel {
109
88
  ...gif,
110
89
  isShown: false
111
90
  }));
112
- // Select the first gif from the group
113
91
  const gifObject = {
114
92
  ...updatedGifsGroups[groupName][0],
115
93
  isShown: true
116
94
  };
117
95
  updatedGifsGroups[groupName][0].isShown = true;
118
96
  this.setActiveGif(gifObject);
119
- // Update the cache with the shown gif
120
97
  this.cache.set(updatedGifsGroups);
121
98
  }
122
-
123
- // Otherwise, use the first unused gif
124
99
  const selectedGif = gifsForGroup[unusedGifIndex];
125
-
126
- // Create a new gif object with isShown set to true
127
100
  const gifObject = {
128
101
  ...selectedGif,
129
102
  isShown: true
130
103
  };
131
-
132
- // Update the cache with the shown gif
133
104
  const updatedGifsGroups = {
134
105
  ...gifsGroups
135
106
  };
@@ -1 +1 @@
1
- {"version":3,"names":["createEffect","createEvent","createStore","sample","GifCelebrationsApi","GifCelebrationsCache","calculatePercentageTable","Image","MIN_PROBLEMS_TO_SHOW_GIF","GROUPS_PERCENTAGES","group1","group2","group3","GifCelebrationsModel","triggerPlay","stop","resetPercentageTable","$problemsPercentageTable","reset","setActiveGif","$activeGif","on","_","gif","initialize","resetGroupGifs","constructor","api","totalProblems","resolvedProblems","cache","$totalProblems","$resolvedProblems","setupEventHandlers","source","getGifsFx","doneData","fn","response","ok","data","Error","target","Object","values","forEach","group","gifUrl","prefetch","initialSet","clock","$gifs","filter","gifs","gifsGroups","resolvedProblem","problemsPercentageTable","undefined","sources","handleGifSelection","percentageMilestone","keys","find","key","Number","groupName","findGroupForPercentage","gifsForGroup","length","unusedGifIndex","findIndex","isShown","updatedGifsGroups","map","gifObject","set","selectedGif","percentage","includes"],"sourceRoot":"../../../../../src","sources":["features/gifCelebrations/model/GifCelebrations.model.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createEffect","createEvent","createStore","sample","GifCelebrationsApi","GifCelebrationsCache","calculatePercentageTable","GROUPS_PERCENTAGES","MIN_PROBLEMS_TO_SHOW_GIF","GifCelebrationsModel","triggerPlay","stop","resetPercentageTable","$problemsPercentageTable","reset","setActiveGif","$activeGif","on","_","gif","initialize","resetGroupGifs","constructor","api","totalProblems","resolvedProblems","customPrefetchMethod","customGetCachePathMethod","cache","$totalProblems","$resolvedProblems","setupEventHandlers","source","getGifsFx","doneData","filter","response","ok","fn","data","target","prefetchGifs","clock","$gifs","gifs","gifsGroups","resolvedProblem","problemsPercentageTable","undefined","sources","handleGifSelection","percentageMilestone","Object","keys","find","key","Number","groupName","findGroupForPercentage","gifsForGroup","length","unusedGifIndex","findIndex","isShown","updatedGifsGroups","map","gifObject","set","selectedGif","percentage","includes"],"sourceRoot":"../../../../../src","sources":["features/gifCelebrations/model/GifCelebrations.model.ts"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
+ import { CustomGetCachePathMethod } from '../types/model.types';
2
3
  type GifProps = {
3
4
  uri: string;
5
+ getCachePathMethod?: CustomGetCachePathMethod;
4
6
  };
5
- export declare const Gif: ({ uri }: GifProps) => React.JSX.Element;
7
+ export declare const Gif: ({ uri, getCachePathMethod }: GifProps) => React.JSX.Element;
6
8
  export {};
7
9
  //# sourceMappingURL=Gif.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Gif.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/components/Gif.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoC,MAAM,OAAO,CAAA;AAMxD,KAAK,QAAQ,GAAG;IACd,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAOD,eAAO,MAAM,GAAG,YAAa,QAAQ,sBA2BpC,CAAA"}
1
+ {"version":3,"file":"Gif.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/components/Gif.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoC,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAG/D,KAAK,QAAQ,GAAG;IACd,GAAG,EAAE,MAAM,CAAA;IACX,kBAAkB,CAAC,EAAE,wBAAwB,CAAA;CAC9C,CAAA;AAOD,eAAO,MAAM,GAAG,gCAAiC,QAAQ,sBAsCxD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/components/Progress.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAiB,EAAoB,WAAW,EAAe,MAAM,yBAAyB,CAAA;AAO9F,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC7B,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,QAAQ,mCAAoC,aAAa,sBAuCrE,CAAA"}
1
+ {"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/components/Progress.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAiB,EAAoB,WAAW,EAAe,MAAM,yBAAyB,CAAA;AAM9F,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC7B,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,QAAQ,mCAAoC,aAAa,sBAuCrE,CAAA"}
@@ -9,4 +9,13 @@ export declare const CONTENT_CONTAINER: {
9
9
  };
10
10
  export declare const ANIMATION_DURATION = 1750;
11
11
  export declare const MIN_PROBLEMS_TO_SHOW_GIF = 6;
12
+ export declare const MAX_GIF_SIZE: {
13
+ WIDTH: number;
14
+ HEIGHT: number;
15
+ };
16
+ export declare const GROUPS_PERCENTAGES: {
17
+ group1: number[];
18
+ group2: number[];
19
+ group3: number[];
20
+ };
12
21
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/gifCelebrations/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;CAG1B,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;CAI7B,CAAA;AAED,eAAO,MAAM,kBAAkB,OAAO,CAAA;AACtC,eAAO,MAAM,wBAAwB,IAAI,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/gifCelebrations/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;CAG1B,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;CAI7B,CAAA;AAED,eAAO,MAAM,kBAAkB,OAAO,CAAA;AACtC,eAAO,MAAM,wBAAwB,IAAI,CAAA;AAEzC,eAAO,MAAM,YAAY;;;CAGxB,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAA"}
@@ -1,10 +1,18 @@
1
- import { GifsGroups } from './types/model.types';
2
- type GifSelectProps = {
3
- gifsGroups: GifsGroups;
4
- resolvedProblem: number;
5
- totalProblems: number;
6
- };
7
- export declare const gifSelect: ({ gifsGroups, resolvedProblem, totalProblems }: GifSelectProps) => string | null;
1
+ import { GifsGroups, GifsStructure } from './types/model.types';
2
+ /**
3
+ * Number of problems When we show gif
4
+ * <6 Never
5
+ * 7-12 50% completion
6
+ * 13-18 33%, 66% completion
7
+ * 19-24 25%, 50%, 75 completion
8
+ * 25-30 20%, 40%, 60%, 80% completion
9
+ * .>30 15%, 30%, 45%, 60%, 75% completion
10
+ *
11
+ * We are also going to have different buckets with different gifs. The logic is as follows:
12
+ * Group 1: 15%, 20%, 25%, 30% - Early celebrations
13
+ * Group 2: 33%, 40%, 45%, 50% - Mid celebrations
14
+ * Group 3: 60%, 66%, 75%, 80% - Party
15
+ */
8
16
  export declare const calculatePercentageTable: (totalProblems: number) => {
9
17
  50: number;
10
18
  33?: undefined;
@@ -71,5 +79,5 @@ export declare const calculatePercentageTable: (totalProblems: number) => {
71
79
  40?: undefined;
72
80
  80?: undefined;
73
81
  };
74
- export {};
82
+ export declare const generateGifsStructure: (gifs: GifsGroups) => GifsStructure;
75
83
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/features/gifCelebrations/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAeD,eAAO,MAAM,SAAS,mDAAoD,cAAc,kBAUvF,CAAA;AAED,eAAO,MAAM,wBAAwB,kBAAmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC7D,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/features/gifCelebrations/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE/D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,kBAAmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC7D,CAAA;AAED,eAAO,MAAM,qBAAqB,SAAU,UAAU,KAAG,aAUtD,CAAA"}
@@ -1,8 +1,18 @@
1
- import { GifsGroups, GifsStructure } from '../types/model.types';
1
+ import { GifsGroups, GifsStructure, CustomPrefetchMethod, CustomGetCachePathMethod } from '../types/model.types';
2
+ import { Image } from 'react-native';
3
+ type GifCelebrationsCacheProps = {
4
+ customPrefetchMethod?: CustomPrefetchMethod;
5
+ customGetCachePathMethod?: CustomGetCachePathMethod;
6
+ };
2
7
  export declare class GifCelebrationsCache {
3
8
  readonly initialSet: import("effector").EventCallable<GifsGroups>;
4
9
  readonly set: import("effector").EventCallable<GifsStructure>;
5
10
  readonly reset: import("effector").EventCallable<void>;
11
+ readonly prefetchMethod: CustomPrefetchMethod | typeof Image.prefetch;
12
+ readonly getCachePathMethod?: CustomGetCachePathMethod;
13
+ readonly prefetchGifs: import("effector").Effect<GifsGroups, void, Error>;
6
14
  readonly $gifs: import("effector").StoreWritable<GifsStructure | null>;
15
+ constructor({ customPrefetchMethod, customGetCachePathMethod }: GifCelebrationsCacheProps);
7
16
  }
17
+ export {};
8
18
  //# sourceMappingURL=GifCelebrations.cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GifCelebrations.cache.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/model/GifCelebrations.cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEhE,qBAAa,oBAAoB;IAC/B,SAAgB,UAAU,+CAA4B;IACtD,SAAgB,GAAG,kDAA+B;IAClD,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,KAAK,yDAca;CACnC"}
1
+ {"version":3,"file":"GifCelebrations.cache.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/model/GifCelebrations.cache.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,KAAK,yBAAyB,GAAG;IAC/B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;CACpD,CAAA;AAED,qBAAa,oBAAoB;IAC/B,SAAgB,UAAU,+CAA4B;IACtD,SAAgB,GAAG,kDAA+B;IAClD,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,cAAc,EAAE,oBAAoB,GAAG,OAAO,KAAK,CAAC,QAAQ,CAAA;IAC5E,SAAgB,kBAAkB,CAAC,EAAE,wBAAwB,CAAA;IAE7D,SAAgB,YAAY,qDAQ1B;IAEF,SAAgB,KAAK,yDAGa;gBAEtB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,EAAE,yBAAyB;CAI1F"}
@@ -15,7 +15,7 @@ export declare class GifCelebrationsModel {
15
15
  readonly $activeGif: import("effector").StoreWritable<GifObject | null>;
16
16
  readonly initialize: import("effector").EventCallable<void>;
17
17
  readonly resetGroupGifs: import("effector").EventCallable<string>;
18
- constructor({ api, totalProblems, resolvedProblems }: GifCelebrationsModelProps);
18
+ constructor({ api, totalProblems, resolvedProblems, customPrefetchMethod, customGetCachePathMethod, }: GifCelebrationsModelProps);
19
19
  private setupEventHandlers;
20
20
  private readonly handleGifSelection;
21
21
  private findGroupForPercentage;
@@ -1 +1 @@
1
- {"version":3,"file":"GifCelebrations.model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/model/GifCelebrations.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,EAAE,MAAM,UAAU,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACL,yBAAyB,EACzB,SAAS,EAGT,uBAAuB,EACxB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAiB9D,qBAAa,oBAAoB;IAC/B,SAAgB,GAAG,EAAE,kBAAkB,CAAA;IACvC,SAAgB,KAAK,EAAE,oBAAoB,CAAA;IAE3C,SAAgB,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC7C,SAAgB,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAEhD,SAAgB,WAAW,yCAAgB;IAC3C,SAAgB,IAAI,yCAAgB;IAEpC,SAAgB,oBAAoB,yCAAgB;IACpD,SAAgB,wBAAwB,mEAEN;IAElC,SAAgB,YAAY,8CAA2B;IACvD,SAAgB,UAAU,qDAEe;IAEzC,SAAgB,UAAU,yCAAgB;IAC1C,SAAgB,cAAc,2CAAwB;gBAE1C,EAAE,GAAG,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,yBAAyB;IAU/E,OAAO,CAAC,kBAAkB;IAmD1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAyDlC;IAED,OAAO,CAAC,sBAAsB;CAK/B"}
1
+ {"version":3,"file":"GifCelebrations.model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/model/GifCelebrations.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,EAAE,MAAM,UAAU,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACL,yBAAyB,EACzB,SAAS,EAET,uBAAuB,EACxB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAU9D,qBAAa,oBAAoB;IAC/B,SAAgB,GAAG,EAAE,kBAAkB,CAAA;IACvC,SAAgB,KAAK,EAAE,oBAAoB,CAAA;IAE3C,SAAgB,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC7C,SAAgB,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAEhD,SAAgB,WAAW,yCAAgB;IAC3C,SAAgB,IAAI,yCAAgB;IAEpC,SAAgB,oBAAoB,yCAAgB;IACpD,SAAgB,wBAAwB,mEAEN;IAElC,SAAgB,YAAY,8CAA2B;IACvD,SAAgB,UAAU,qDAEe;IAEzC,SAAgB,UAAU,yCAAgB;IAC1C,SAAgB,cAAc,2CAAwB;gBAE1C,EACV,GAAG,EACH,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,GACzB,EAAE,yBAAyB;IAU5B,OAAO,CAAC,kBAAkB;IAuC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA+ClC;IAED,OAAO,CAAC,sBAAsB;CAK/B"}
@@ -1,11 +1,18 @@
1
1
  import { Store } from 'effector';
2
+ export type CustomPrefetchMethod = (gifs: string[] | string) => Promise<unknown>;
3
+ export type CustomGetCachePathMethod = (uri: string) => Promise<string | null>;
2
4
  export type GifCelebrationApiRequests = {
3
5
  getGifs: () => Promise<GifResponse>;
4
6
  };
7
+ export type GifCelebrationCache = {
8
+ prefetchMethod?: CustomPrefetchMethod;
9
+ };
5
10
  export type GifCelebrationsModelProps = {
6
11
  api: GifCelebrationApiRequests;
7
12
  totalProblems: Store<number>;
8
13
  resolvedProblems: Store<number>;
14
+ customPrefetchMethod?: CustomPrefetchMethod;
15
+ customGetCachePathMethod?: CustomGetCachePathMethod;
9
16
  };
10
17
  export type GifsGroup = string[];
11
18
  export type GifsGroups = Record<`group${number}`, GifsGroup>;
@@ -1 +1 @@
1
- {"version":3,"file":"model.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/types/model.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,GAAG,EAAE,yBAAyB,CAAA;IAC9B,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5B,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,EAAE,CAAA;AAChC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,MAAM,EAAE,EAAE,SAAS,CAAC,CAAA;AAE5D,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,QAAQ,MAAM,EAAE,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;AACjE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,UAAU,CAAA;IAChB,EAAE,EAAE,OAAO,CAAA;CACZ,CAAA;AACD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"model.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/types/model.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAChF,MAAM,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AAE9E,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;CACpC,CAAA;AACD,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,GAAG,EAAE,yBAAyB,CAAA;IAC9B,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5B,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC/B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,EAAE,CAAA;AAChC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,MAAM,EAAE,EAAE,SAAS,CAAC,CAAA;AAE5D,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,QAAQ,MAAM,EAAE,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;AACjE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,UAAU,CAAA;IAChB,EAAE,EAAE,OAAO,CAAA;CACZ,CAAA;AACD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA"}
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
+ import { CustomGetCachePathMethod } from '../types/model.types';
2
3
  type GifProps = {
3
4
  uri: string;
5
+ getCachePathMethod?: CustomGetCachePathMethod;
4
6
  };
5
- export declare const Gif: ({ uri }: GifProps) => React.JSX.Element;
7
+ export declare const Gif: ({ uri, getCachePathMethod }: GifProps) => React.JSX.Element;
6
8
  export {};
7
9
  //# sourceMappingURL=Gif.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Gif.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/components/Gif.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoC,MAAM,OAAO,CAAA;AAMxD,KAAK,QAAQ,GAAG;IACd,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAOD,eAAO,MAAM,GAAG,YAAa,QAAQ,sBA2BpC,CAAA"}
1
+ {"version":3,"file":"Gif.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/components/Gif.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoC,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAG/D,KAAK,QAAQ,GAAG;IACd,GAAG,EAAE,MAAM,CAAA;IACX,kBAAkB,CAAC,EAAE,wBAAwB,CAAA;CAC9C,CAAA;AAOD,eAAO,MAAM,GAAG,gCAAiC,QAAQ,sBAsCxD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/components/Progress.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAiB,EAAoB,WAAW,EAAe,MAAM,yBAAyB,CAAA;AAO9F,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC7B,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,QAAQ,mCAAoC,aAAa,sBAuCrE,CAAA"}
1
+ {"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../../../../../src/features/gifCelebrations/components/Progress.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAiB,EAAoB,WAAW,EAAe,MAAM,yBAAyB,CAAA;AAM9F,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC7B,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,QAAQ,mCAAoC,aAAa,sBAuCrE,CAAA"}
@@ -9,4 +9,13 @@ export declare const CONTENT_CONTAINER: {
9
9
  };
10
10
  export declare const ANIMATION_DURATION = 1750;
11
11
  export declare const MIN_PROBLEMS_TO_SHOW_GIF = 6;
12
+ export declare const MAX_GIF_SIZE: {
13
+ WIDTH: number;
14
+ HEIGHT: number;
15
+ };
16
+ export declare const GROUPS_PERCENTAGES: {
17
+ group1: number[];
18
+ group2: number[];
19
+ group3: number[];
20
+ };
12
21
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/gifCelebrations/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;CAG1B,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;CAI7B,CAAA;AAED,eAAO,MAAM,kBAAkB,OAAO,CAAA;AACtC,eAAO,MAAM,wBAAwB,IAAI,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/gifCelebrations/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;CAG1B,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;CAI7B,CAAA;AAED,eAAO,MAAM,kBAAkB,OAAO,CAAA;AACtC,eAAO,MAAM,wBAAwB,IAAI,CAAA;AAEzC,eAAO,MAAM,YAAY;;;CAGxB,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAA"}
@@ -1,10 +1,18 @@
1
- import { GifsGroups } from './types/model.types';
2
- type GifSelectProps = {
3
- gifsGroups: GifsGroups;
4
- resolvedProblem: number;
5
- totalProblems: number;
6
- };
7
- export declare const gifSelect: ({ gifsGroups, resolvedProblem, totalProblems }: GifSelectProps) => string | null;
1
+ import { GifsGroups, GifsStructure } from './types/model.types';
2
+ /**
3
+ * Number of problems When we show gif
4
+ * <6 Never
5
+ * 7-12 50% completion
6
+ * 13-18 33%, 66% completion
7
+ * 19-24 25%, 50%, 75 completion
8
+ * 25-30 20%, 40%, 60%, 80% completion
9
+ * .>30 15%, 30%, 45%, 60%, 75% completion
10
+ *
11
+ * We are also going to have different buckets with different gifs. The logic is as follows:
12
+ * Group 1: 15%, 20%, 25%, 30% - Early celebrations
13
+ * Group 2: 33%, 40%, 45%, 50% - Mid celebrations
14
+ * Group 3: 60%, 66%, 75%, 80% - Party
15
+ */
8
16
  export declare const calculatePercentageTable: (totalProblems: number) => {
9
17
  50: number;
10
18
  33?: undefined;
@@ -71,5 +79,5 @@ export declare const calculatePercentageTable: (totalProblems: number) => {
71
79
  40?: undefined;
72
80
  80?: undefined;
73
81
  };
74
- export {};
82
+ export declare const generateGifsStructure: (gifs: GifsGroups) => GifsStructure;
75
83
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/features/gifCelebrations/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAeD,eAAO,MAAM,SAAS,mDAAoD,cAAc,kBAUvF,CAAA;AAED,eAAO,MAAM,wBAAwB,kBAAmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC7D,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/features/gifCelebrations/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE/D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,kBAAmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC7D,CAAA;AAED,eAAO,MAAM,qBAAqB,SAAU,UAAU,KAAG,aAUtD,CAAA"}
@@ -1,8 +1,18 @@
1
- import { GifsGroups, GifsStructure } from '../types/model.types';
1
+ import { GifsGroups, GifsStructure, CustomPrefetchMethod, CustomGetCachePathMethod } from '../types/model.types';
2
+ import { Image } from 'react-native';
3
+ type GifCelebrationsCacheProps = {
4
+ customPrefetchMethod?: CustomPrefetchMethod;
5
+ customGetCachePathMethod?: CustomGetCachePathMethod;
6
+ };
2
7
  export declare class GifCelebrationsCache {
3
8
  readonly initialSet: import("effector").EventCallable<GifsGroups>;
4
9
  readonly set: import("effector").EventCallable<GifsStructure>;
5
10
  readonly reset: import("effector").EventCallable<void>;
11
+ readonly prefetchMethod: CustomPrefetchMethod | typeof Image.prefetch;
12
+ readonly getCachePathMethod?: CustomGetCachePathMethod;
13
+ readonly prefetchGifs: import("effector").Effect<GifsGroups, void, Error>;
6
14
  readonly $gifs: import("effector").StoreWritable<GifsStructure | null>;
15
+ constructor({ customPrefetchMethod, customGetCachePathMethod }: GifCelebrationsCacheProps);
7
16
  }
17
+ export {};
8
18
  //# sourceMappingURL=GifCelebrations.cache.d.ts.map