@magmamath/students-features 0.9.106-rc.0 → 0.9.107-rc.1

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 (152) hide show
  1. package/dist/commonjs/features/voiceRecord/components/VoiceRecord.js +82 -0
  2. package/dist/commonjs/features/voiceRecord/components/VoiceRecord.js.map +1 -0
  3. package/dist/commonjs/features/voiceRecord/components/VoiceRecordButton.js +45 -0
  4. package/dist/commonjs/features/voiceRecord/components/VoiceRecordButton.js.map +1 -0
  5. package/dist/commonjs/features/voiceRecord/components/VoiceRecordDelete.js +32 -0
  6. package/dist/commonjs/features/voiceRecord/components/VoiceRecordDelete.js.map +1 -0
  7. package/dist/commonjs/features/voiceRecord/components/VoiceRecordDevider.js +27 -0
  8. package/dist/commonjs/features/voiceRecord/components/VoiceRecordDevider.js.map +1 -0
  9. package/dist/commonjs/features/voiceRecord/components/VoiceRecordTimer.js +44 -0
  10. package/dist/commonjs/features/voiceRecord/components/VoiceRecordTimer.js.map +1 -0
  11. package/dist/commonjs/features/voiceRecord/helpers.js +34 -0
  12. package/dist/commonjs/features/voiceRecord/helpers.js.map +1 -0
  13. package/dist/commonjs/features/voiceRecord/hooks/useVoiceRecorder.hook.js +36 -0
  14. package/dist/commonjs/features/voiceRecord/hooks/useVoiceRecorder.hook.js.map +1 -0
  15. package/dist/commonjs/features/voiceRecord/index.js +28 -0
  16. package/dist/commonjs/features/voiceRecord/index.js.map +1 -0
  17. package/dist/commonjs/features/voiceRecord/model/VoiceRecord.model.js +37 -0
  18. package/dist/commonjs/features/voiceRecord/model/VoiceRecord.model.js.map +1 -0
  19. package/dist/commonjs/features/voiceRecord/model/VoiceRecordApi.js +9 -0
  20. package/dist/commonjs/features/voiceRecord/model/VoiceRecordApi.js.map +1 -0
  21. package/dist/commonjs/index.js +12 -0
  22. package/dist/commonjs/index.js.map +1 -1
  23. package/dist/module/features/voiceRecord/components/VoiceRecord.js +74 -0
  24. package/dist/module/features/voiceRecord/components/VoiceRecord.js.map +1 -0
  25. package/dist/module/features/voiceRecord/components/VoiceRecordButton.js +39 -0
  26. package/dist/module/features/voiceRecord/components/VoiceRecordButton.js.map +1 -0
  27. package/dist/module/features/voiceRecord/components/VoiceRecordDelete.js +26 -0
  28. package/dist/module/features/voiceRecord/components/VoiceRecordDelete.js.map +1 -0
  29. package/dist/module/features/voiceRecord/components/VoiceRecordDevider.js +21 -0
  30. package/dist/module/features/voiceRecord/components/VoiceRecordDevider.js.map +1 -0
  31. package/dist/module/features/voiceRecord/components/VoiceRecordTimer.js +38 -0
  32. package/dist/module/features/voiceRecord/components/VoiceRecordTimer.js.map +1 -0
  33. package/dist/module/features/voiceRecord/helpers.js +28 -0
  34. package/dist/module/features/voiceRecord/helpers.js.map +1 -0
  35. package/dist/module/features/voiceRecord/hooks/useVoiceRecorder.hook.js +31 -0
  36. package/dist/module/features/voiceRecord/hooks/useVoiceRecorder.hook.js.map +1 -0
  37. package/dist/module/features/voiceRecord/index.js +5 -0
  38. package/dist/module/features/voiceRecord/index.js.map +1 -0
  39. package/dist/module/features/voiceRecord/model/VoiceRecord.model.js +32 -0
  40. package/dist/module/features/voiceRecord/model/VoiceRecord.model.js.map +1 -0
  41. package/dist/module/features/voiceRecord/model/VoiceRecordApi.js +4 -0
  42. package/dist/module/features/voiceRecord/model/VoiceRecordApi.js.map +1 -0
  43. package/dist/module/index.js +1 -0
  44. package/dist/module/index.js.map +1 -1
  45. package/dist/typescript/commonjs/features/voiceRecord/components/VoiceRecord.d.ts +10 -0
  46. package/dist/typescript/commonjs/features/voiceRecord/components/VoiceRecord.d.ts.map +1 -0
  47. package/dist/typescript/commonjs/features/voiceRecord/components/VoiceRecordButton.d.ts +10 -0
  48. package/dist/typescript/commonjs/features/voiceRecord/components/VoiceRecordButton.d.ts.map +1 -0
  49. package/dist/typescript/commonjs/features/voiceRecord/components/VoiceRecordDelete.d.ts +7 -0
  50. package/dist/typescript/commonjs/features/voiceRecord/components/VoiceRecordDelete.d.ts.map +1 -0
  51. package/dist/typescript/commonjs/features/voiceRecord/components/VoiceRecordDevider.d.ts +3 -0
  52. package/dist/typescript/commonjs/features/voiceRecord/components/VoiceRecordDevider.d.ts.map +1 -0
  53. package/dist/typescript/commonjs/features/voiceRecord/components/VoiceRecordTimer.d.ts +9 -0
  54. package/dist/typescript/commonjs/features/voiceRecord/components/VoiceRecordTimer.d.ts.map +1 -0
  55. package/dist/typescript/commonjs/features/voiceRecord/helpers.d.ts +4 -0
  56. package/dist/typescript/commonjs/features/voiceRecord/helpers.d.ts.map +1 -0
  57. package/dist/typescript/commonjs/features/voiceRecord/hooks/useVoiceRecorder.hook.d.ts +9 -0
  58. package/dist/typescript/commonjs/features/voiceRecord/hooks/useVoiceRecorder.hook.d.ts.map +1 -0
  59. package/dist/typescript/commonjs/features/voiceRecord/index.d.ts +3 -0
  60. package/dist/typescript/commonjs/features/voiceRecord/index.d.ts.map +1 -0
  61. package/dist/typescript/commonjs/features/voiceRecord/model/VoiceRecord.model.d.ts +17 -0
  62. package/dist/typescript/commonjs/features/voiceRecord/model/VoiceRecord.model.d.ts.map +1 -0
  63. package/dist/typescript/commonjs/features/voiceRecord/model/VoiceRecordApi.d.ts +3 -0
  64. package/dist/typescript/commonjs/features/voiceRecord/model/VoiceRecordApi.d.ts.map +1 -0
  65. package/dist/typescript/commonjs/index.d.ts +1 -0
  66. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  67. package/dist/typescript/module/features/voiceRecord/components/VoiceRecord.d.ts +10 -0
  68. package/dist/typescript/module/features/voiceRecord/components/VoiceRecord.d.ts.map +1 -0
  69. package/dist/typescript/module/features/voiceRecord/components/VoiceRecordButton.d.ts +10 -0
  70. package/dist/typescript/module/features/voiceRecord/components/VoiceRecordButton.d.ts.map +1 -0
  71. package/dist/typescript/module/features/voiceRecord/components/VoiceRecordDelete.d.ts +7 -0
  72. package/dist/typescript/module/features/voiceRecord/components/VoiceRecordDelete.d.ts.map +1 -0
  73. package/dist/typescript/module/features/voiceRecord/components/VoiceRecordDevider.d.ts +3 -0
  74. package/dist/typescript/module/features/voiceRecord/components/VoiceRecordDevider.d.ts.map +1 -0
  75. package/dist/typescript/module/features/voiceRecord/components/VoiceRecordTimer.d.ts +9 -0
  76. package/dist/typescript/module/features/voiceRecord/components/VoiceRecordTimer.d.ts.map +1 -0
  77. package/dist/typescript/module/features/voiceRecord/helpers.d.ts +4 -0
  78. package/dist/typescript/module/features/voiceRecord/helpers.d.ts.map +1 -0
  79. package/dist/typescript/module/features/voiceRecord/hooks/useVoiceRecorder.hook.d.ts +9 -0
  80. package/dist/typescript/module/features/voiceRecord/hooks/useVoiceRecorder.hook.d.ts.map +1 -0
  81. package/dist/typescript/module/features/voiceRecord/index.d.ts +3 -0
  82. package/dist/typescript/module/features/voiceRecord/index.d.ts.map +1 -0
  83. package/dist/typescript/module/features/voiceRecord/model/VoiceRecord.model.d.ts +17 -0
  84. package/dist/typescript/module/features/voiceRecord/model/VoiceRecord.model.d.ts.map +1 -0
  85. package/dist/typescript/module/features/voiceRecord/model/VoiceRecordApi.d.ts +3 -0
  86. package/dist/typescript/module/features/voiceRecord/model/VoiceRecordApi.d.ts.map +1 -0
  87. package/dist/typescript/module/index.d.ts +1 -0
  88. package/dist/typescript/module/index.d.ts.map +1 -1
  89. package/package.json +7 -3
  90. package/src/features/voiceRecord/components/VoiceRecord.tsx +78 -0
  91. package/src/features/voiceRecord/components/VoiceRecordButton.tsx +44 -0
  92. package/src/features/voiceRecord/components/VoiceRecordDelete.tsx +24 -0
  93. package/src/features/voiceRecord/components/VoiceRecordDevider.tsx +17 -0
  94. package/src/features/voiceRecord/components/VoiceRecordTimer.tsx +37 -0
  95. package/src/features/voiceRecord/helpers.ts +30 -0
  96. package/src/features/voiceRecord/hooks/useVoiceRecorder.hook.ts +39 -0
  97. package/src/features/voiceRecord/index.ts +2 -0
  98. package/src/features/voiceRecord/model/VoiceRecord.model.ts +41 -0
  99. package/src/features/voiceRecord/model/VoiceRecordApi.ts +1 -0
  100. package/src/index.ts +1 -0
  101. package/.editorconfig +0 -15
  102. package/.eslintignore +0 -2
  103. package/.eslintrc +0 -22
  104. package/.gitattributes +0 -3
  105. package/.github/actions/setup/action.yml +0 -37
  106. package/.github/workflows/ci.yml +0 -73
  107. package/.gitignore +0 -84
  108. package/.idea/.gitignore +0 -8
  109. package/.idea/codeStyles/Project.xml +0 -62
  110. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  111. package/.idea/copilot.data.migration.agent.xml +0 -6
  112. package/.idea/copilot.data.migration.ask.xml +0 -6
  113. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  114. package/.idea/copilot.data.migration.edit.xml +0 -6
  115. package/.idea/inspectionProfiles/Project_Default.xml +0 -8
  116. package/.idea/jsLinters/eslint.xml +0 -6
  117. package/.idea/modules.xml +0 -8
  118. package/.idea/prettier.xml +0 -7
  119. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_30_12_2025,_11_06_[Changes]/shelved.patch +0 -18
  120. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_30_12_2025,_11_07_[Changes]/shelved.patch +0 -18
  121. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_30_12_2025__11_06__Changes_.xml +0 -4
  122. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_30_12_2025__11_07__Changes_.xml +0 -4
  123. package/.idea/students-features.iml +0 -12
  124. package/.idea/vcs.xml +0 -6
  125. package/.idea/workspace.xml +0 -647
  126. package/.nvmrc +0 -1
  127. package/.prettierrc +0 -11
  128. package/.release-it.json +0 -17
  129. package/.watchmanconfig +0 -1
  130. package/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +0 -541
  131. package/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs +0 -28
  132. package/.yarn/releases/yarn-3.6.1.cjs +0 -874
  133. package/babel.config.js +0 -5
  134. package/bob.config.js +0 -25
  135. package/example/.expo/README.md +0 -8
  136. package/example/.expo/devices.json +0 -3
  137. package/example/.expo/web/cache/production/images/favicon/favicon-24272cdaeff82cc5facdaccd982a6f05b60c4504704bbf94c19a6388659880bb-contain-transparent/favicon-48.png +0 -0
  138. package/example/app.json +0 -30
  139. package/example/assets/adaptive-icon.png +0 -0
  140. package/example/assets/favicon.png +0 -0
  141. package/example/assets/icon.png +0 -0
  142. package/example/assets/splash-icon.png +0 -0
  143. package/example/babel.config.js +0 -28
  144. package/example/index.js +0 -8
  145. package/example/metro.config.js +0 -18
  146. package/example/package.json +0 -25
  147. package/example/src/App.tsx +0 -8
  148. package/example/tsconfig.json +0 -6
  149. package/example/yarn.lock +0 -6552
  150. package/tsconfig.build.json +0 -4
  151. package/tsconfig.json +0 -34
  152. package/yarn.lock +0 -8623
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VoiceRecord = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _VoiceRecordButton = require("./VoiceRecordButton.js");
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _reactNativeUi = require("@magmamath/react-native-ui");
11
+ var _VoiceRecordDelete = require("./VoiceRecordDelete.js");
12
+ var _VoiceRecordDevider = require("./VoiceRecordDevider.js");
13
+ var _VoiceRecordTimer = _interopRequireDefault(require("./VoiceRecordTimer.js"));
14
+ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
15
+ var _useVoiceRecorderHook = require("../hooks/useVoiceRecorder.hook.js");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
+ const CONTAINER_SIZES = {
21
+ COLLAPSED: 61,
22
+ EXPANDED: 152
23
+ };
24
+ const VoiceRecord = ({
25
+ style,
26
+ model
27
+ }) => {
28
+ const {
29
+ recorder,
30
+ recorderState,
31
+ player,
32
+ startRecording,
33
+ stopRecording
34
+ } = (0, _useVoiceRecorderHook.useVoiceRecorder)(model);
35
+ const aniamtedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
36
+ return {
37
+ height: (0, _reactNativeReanimated.withTiming)(recorderState.isRecording ? CONTAINER_SIZES.EXPANDED : CONTAINER_SIZES.COLLAPSED, {
38
+ duration: 280
39
+ })
40
+ };
41
+ }, [recorderState]);
42
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeReanimated.default.View, {
43
+ style: [styles.container, style, aniamtedStyle],
44
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_VoiceRecordButton.VoiceRecordButton
45
+ // onPress={() => setIsRecording((prev) => !prev)}
46
+ , {
47
+ onPress: recorderState.isRecording ? stopRecording : startRecording,
48
+ isRecording: recorderState.isRecording
49
+ }), recorderState.isRecording && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeReanimated.default.View, {
50
+ entering: _reactNativeReanimated.FadeIn,
51
+ exiting: _reactNativeReanimated.FadeOut,
52
+ style: styles.expendedContainer,
53
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_VoiceRecordTimer.default, {
54
+ style: styles.timer
55
+ //0:00 as default value and format mm:ss
56
+ ,
57
+ time: recorderState.durationMillis ? new Date(recorderState.durationMillis).toISOString().substr(14, 5) : '0:00'
58
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_VoiceRecordDevider.VoiceRecordDevider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_VoiceRecordDelete.VoiceRecordDelete, {
59
+ onPress: model.deleteFile
60
+ })]
61
+ })]
62
+ });
63
+ };
64
+ exports.VoiceRecord = VoiceRecord;
65
+ const styles = _reactNative.StyleSheet.create({
66
+ container: {
67
+ alignItems: 'center',
68
+ padding: 3,
69
+ paddingBottom: 6,
70
+ backgroundColor: _reactNativeUi.COLORS.NEUTRAL_3,
71
+ borderRadius: 32,
72
+ boxShadow: '0 1px 3px 0 rgba(51, 51, 51, 0.10), 0 0 1px 0 rgba(51, 51, 51, 0.40)',
73
+ overflow: 'hidden'
74
+ },
75
+ timer: {
76
+ marginTop: _reactNativeUi.SPACING[400]
77
+ },
78
+ expendedContainer: {
79
+ alignItems: 'center'
80
+ }
81
+ });
82
+ //# sourceMappingURL=VoiceRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_VoiceRecordButton","_react","_interopRequireDefault","_reactNativeUi","_VoiceRecordDelete","_VoiceRecordDevider","_VoiceRecordTimer","_reactNativeReanimated","_interopRequireWildcard","_useVoiceRecorderHook","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CONTAINER_SIZES","COLLAPSED","EXPANDED","VoiceRecord","style","model","recorder","recorderState","player","startRecording","stopRecording","useVoiceRecorder","aniamtedStyle","useAnimatedStyle","height","withTiming","isRecording","duration","jsxs","View","styles","container","children","jsx","VoiceRecordButton","onPress","entering","FadeIn","exiting","FadeOut","expendedContainer","timer","time","durationMillis","Date","toISOString","substr","VoiceRecordDevider","VoiceRecordDelete","deleteFile","exports","StyleSheet","create","alignItems","padding","paddingBottom","backgroundColor","COLORS","NEUTRAL_3","borderRadius","boxShadow","overflow","marginTop","SPACING"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/components/VoiceRecord.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VoiceRecordButton = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNativeUi = require("@magmamath/react-native-ui");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ const VoiceRecordButton = ({
13
+ style,
14
+ onPress,
15
+ isRecording
16
+ }) => {
17
+ const combinedStyles = (0, _react.useMemo)(() => {
18
+ return {
19
+ button: {
20
+ width: 50,
21
+ ...style?.button
22
+ },
23
+ container: {
24
+ ...style?.container
25
+ },
26
+ text: {
27
+ ...style?.text
28
+ }
29
+ };
30
+ }, [style]);
31
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.Button, {
32
+ onPress: onPress,
33
+ style: combinedStyles,
34
+ size: _reactNativeUi.ButtonSize.LARGE,
35
+ variant: _reactNativeUi.ButtonVariant.PRIMARY,
36
+ colorScheme: _reactNativeUi.ButtonColor.WHITE,
37
+ icon: isRecording ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.CheckIcon, {
38
+ size: 25
39
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.MicrophoneIcon, {
40
+ size: 19
41
+ })
42
+ });
43
+ };
44
+ exports.VoiceRecordButton = VoiceRecordButton;
45
+ //# sourceMappingURL=VoiceRecordButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeUi","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","VoiceRecordButton","style","onPress","isRecording","combinedStyles","useMemo","button","width","container","text","jsx","Button","size","ButtonSize","LARGE","variant","ButtonVariant","PRIMARY","colorScheme","ButtonColor","WHITE","icon","CheckIcon","MicrophoneIcon","exports"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/components/VoiceRecordButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAMmC,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAU5B,MAAMW,iBAAiB,GAAGA,CAAC;EAAEC,KAAK;EAAEC,OAAO;EAAEC;AAAoC,CAAC,KAAK;EAC5F,MAAMC,cAAc,GAAG,IAAAC,cAAO,EAAC,MAAmB;IAChD,OAAO;MACLC,MAAM,EAAE;QACNC,KAAK,EAAE,EAAE;QACT,GAAIN,KAAK,EAAEK;MACb,CAAC;MACDE,SAAS,EAAE;QACT,GAAIP,KAAK,EAAEO;MACb,CAAC;MACDC,IAAI,EAAE;QACJ,GAAIR,KAAK,EAAEQ;MACb;IACF,CAAC;EACH,CAAC,EAAE,CAACR,KAAK,CAAC,CAAC;EAEX,oBACE,IAAAtB,WAAA,CAAA+B,GAAA,EAAChC,cAAA,CAAAiC,MAAM;IACLT,OAAO,EAAEA,OAAQ;IACjBD,KAAK,EAAEG,cAAe;IACtBQ,IAAI,EAAEC,yBAAU,CAACC,KAAM;IACvBC,OAAO,EAAEC,4BAAa,CAACC,OAAQ;IAC/BC,WAAW,EAAEC,0BAAW,CAACC,KAAM;IAC/BC,IAAI,EAAElB,WAAW,gBAAG,IAAAxB,WAAA,CAAA+B,GAAA,EAAChC,cAAA,CAAA4C,SAAS;MAACV,IAAI,EAAE;IAAG,CAAE,CAAC,gBAAG,IAAAjC,WAAA,CAAA+B,GAAA,EAAChC,cAAA,CAAA6C,cAAc;MAACX,IAAI,EAAE;IAAG,CAAE;EAAE,CAC5E,CAAC;AAEN,CAAC;AAAAY,OAAA,CAAAxB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VoiceRecordDelete = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _reactNativeUi = require("@magmamath/react-native-ui");
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const VoiceRecordDelete = ({
13
+ onPress
14
+ }) => {
15
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
16
+ style: styles.container,
17
+ onPress: onPress,
18
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.TrashcanIcon, {
19
+ size: 20
20
+ })
21
+ });
22
+ };
23
+ exports.VoiceRecordDelete = VoiceRecordDelete;
24
+ const styles = _reactNative.StyleSheet.create({
25
+ container: {
26
+ width: 36,
27
+ height: 36,
28
+ alignItems: 'center',
29
+ justifyContent: 'center'
30
+ }
31
+ });
32
+ //# sourceMappingURL=VoiceRecordDelete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_reactNativeUi","_react","_interopRequireDefault","_jsxRuntime","e","__esModule","default","VoiceRecordDelete","onPress","jsx","TouchableOpacity","style","styles","container","children","TrashcanIcon","size","exports","StyleSheet","create","width","height","alignItems","justifyContent"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/components/VoiceRecordDelete.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAAyB,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAMlB,MAAMG,iBAAiB,GAAGA,CAAC;EAAEC;AAAgC,CAAC,KAAK;EACxE,oBACE,IAAAL,WAAA,CAAAM,GAAA,EAACX,YAAA,CAAAY,gBAAgB;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAACL,OAAO,EAAEA,OAAQ;IAAAM,QAAA,eAC1D,IAAAX,WAAA,CAAAM,GAAA,EAACT,cAAA,CAAAe,YAAY;MAACC,IAAI,EAAE;IAAG,CAAE;EAAC,CACV,CAAC;AAEvB,CAAC;AAAAC,OAAA,CAAAV,iBAAA,GAAAA,iBAAA;AAED,MAAMK,MAAM,GAAGM,uBAAU,CAACC,MAAM,CAAC;EAC/BN,SAAS,EAAE;IACTO,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VoiceRecordDevider = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactNativeUi = require("@magmamath/react-native-ui");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const VoiceRecordDevider = () => {
13
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
14
+ style: styles.container
15
+ });
16
+ };
17
+ exports.VoiceRecordDevider = VoiceRecordDevider;
18
+ const styles = _reactNative.StyleSheet.create({
19
+ container: {
20
+ height: 1,
21
+ borderRadius: 1,
22
+ width: 28,
23
+ margin: 8,
24
+ backgroundColor: _reactNativeUi.COLORS.NEUTRAL_6
25
+ }
26
+ });
27
+ //# sourceMappingURL=VoiceRecordDevider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_react","_interopRequireDefault","_reactNativeUi","_jsxRuntime","e","__esModule","default","VoiceRecordDevider","jsx","View","style","styles","container","exports","StyleSheet","create","height","borderRadius","width","margin","backgroundColor","COLORS","NEUTRAL_6"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/components/VoiceRecordDevider.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAAmD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5C,MAAMG,kBAAkB,GAAGA,CAAA,KAAM;EACtC,oBAAO,IAAAJ,WAAA,CAAAK,GAAA,EAACV,YAAA,CAAAW,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC;EAAU,CAAE,CAAC;AAC1C,CAAC;AAAAC,OAAA,CAAAN,kBAAA,GAAAA,kBAAA;AAED,MAAMI,MAAM,GAAGG,uBAAU,CAACC,MAAM,CAAC;EAC/BH,SAAS,EAAE;IACTI,MAAM,EAAE,CAAC;IACTC,YAAY,EAAE,CAAC;IACfC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,CAAC;IACTC,eAAe,EAAEC,qBAAM,CAACC;EAC1B;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.VoiceRecordTimer = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _reactNativeUi = require("@magmamath/react-native-ui");
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const VoiceRecordTimer = ({
13
+ style,
14
+ time
15
+ }) => {
16
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
17
+ style: [styles.container, style],
18
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.Typography, {
19
+ style: styles.text,
20
+ children: time
21
+ })
22
+ });
23
+ };
24
+ exports.VoiceRecordTimer = VoiceRecordTimer;
25
+ var _default = exports.default = VoiceRecordTimer;
26
+ const styles = _reactNative.StyleSheet.create({
27
+ container: {
28
+ backgroundColor: _reactNativeUi.COLORS.NEUTRAL_1,
29
+ paddingHorizontal: 8,
30
+ paddingVertical: 2,
31
+ alignItems: 'center',
32
+ borderWidth: 0.5,
33
+ borderColor: _reactNativeUi.COLORS.NEUTRAL_4,
34
+ borderRadius: 18
35
+ },
36
+ text: {
37
+ color: _reactNativeUi.COLORS.NEUTRAL_10,
38
+ fontSize: 13,
39
+ fontWeight: '600',
40
+ lineHeight: 18,
41
+ textTransform: 'uppercase'
42
+ }
43
+ });
44
+ //# sourceMappingURL=VoiceRecordTimer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_reactNativeUi","_react","_interopRequireDefault","_jsxRuntime","e","__esModule","default","VoiceRecordTimer","style","time","jsx","View","styles","container","children","Typography","text","exports","_default","StyleSheet","create","backgroundColor","COLORS","NEUTRAL_1","paddingHorizontal","paddingVertical","alignItems","borderWidth","borderColor","NEUTRAL_4","borderRadius","color","NEUTRAL_10","fontSize","fontWeight","lineHeight","textTransform"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/components/VoiceRecordTimer.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAAyB,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAOlB,MAAMG,gBAAgB,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAA4B,CAAC,KAAK;EAC1E,oBACE,IAAAN,WAAA,CAAAO,GAAA,EAACZ,YAAA,CAAAa,IAAI;IAACH,KAAK,EAAE,CAACI,MAAM,CAACC,SAAS,EAAEL,KAAK,CAAE;IAAAM,QAAA,eACrC,IAAAX,WAAA,CAAAO,GAAA,EAACV,cAAA,CAAAe,UAAU;MAACP,KAAK,EAAEI,MAAM,CAACI,IAAK;MAAAF,QAAA,EAAEL;IAAI,CAAa;EAAC,CAC/C,CAAC;AAEX,CAAC;AAAAQ,OAAA,CAAAV,gBAAA,GAAAA,gBAAA;AAAA,IAAAW,QAAA,GAAAD,OAAA,CAAAX,OAAA,GAEcC,gBAAgB;AAE/B,MAAMK,MAAM,GAAGO,uBAAU,CAACC,MAAM,CAAC;EAC/BP,SAAS,EAAE;IACTQ,eAAe,EAAEC,qBAAM,CAACC,SAAS;IACjCC,iBAAiB,EAAE,CAAC;IACpBC,eAAe,EAAE,CAAC;IAClBC,UAAU,EAAE,QAAQ;IACpBC,WAAW,EAAE,GAAG;IAChBC,WAAW,EAAEN,qBAAM,CAACO,SAAS;IAC7BC,YAAY,EAAE;EAChB,CAAC;EACDd,IAAI,EAAE;IACJe,KAAK,EAAET,qBAAM,CAACU,UAAU;IACxBC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,UAAU,EAAE,EAAE;IACdC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getAvailableInputs = exports.ensureRecordingPermissions = void 0;
7
+ var _reactNativeUi = require("@magmamath/react-native-ui");
8
+ var _expoAudio = require("expo-audio");
9
+ const ensureRecordingPermissions = async () => {
10
+ const {
11
+ status
12
+ } = await (0, _expoAudio.getRecordingPermissionsAsync)();
13
+ if (status !== 'granted') {
14
+ const {
15
+ granted
16
+ } = await (0, _expoAudio.requestRecordingPermissionsAsync)();
17
+ return granted;
18
+ }
19
+ return true;
20
+ };
21
+ exports.ensureRecordingPermissions = ensureRecordingPermissions;
22
+ const getAvailableInputs = async recorder => {
23
+ if (_reactNativeUi.IS_WEB) {
24
+ if (!navigator.mediaDevices?.enumerateDevices) return [];
25
+ const devices = await navigator.mediaDevices.enumerateDevices();
26
+ return devices.filter(d => d.kind === 'audioinput');
27
+ }
28
+ if (_reactNativeUi.IS_MOBILE) {
29
+ return await recorder.getAvailableInputs();
30
+ }
31
+ return [];
32
+ };
33
+ exports.getAvailableInputs = getAvailableInputs;
34
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeUi","require","_expoAudio","ensureRecordingPermissions","status","getRecordingPermissionsAsync","granted","requestRecordingPermissionsAsync","exports","getAvailableInputs","recorder","IS_WEB","navigator","mediaDevices","enumerateDevices","devices","filter","d","kind","IS_MOBILE"],"sourceRoot":"../../../../src","sources":["features/voiceRecord/helpers.ts"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAMO,MAAME,0BAA0B,GAAG,MAAAA,CAAA,KAAY;EACpD,MAAM;IAAEC;EAAO,CAAC,GAAG,MAAM,IAAAC,uCAA4B,EAAC,CAAC;EAEvD,IAAID,MAAM,KAAK,SAAS,EAAE;IACxB,MAAM;MAAEE;IAAQ,CAAC,GAAG,MAAM,IAAAC,2CAAgC,EAAC,CAAC;IAC5D,OAAOD,OAAO;EAChB;EAEA,OAAO,IAAI;AACb,CAAC;AAAAE,OAAA,CAAAL,0BAAA,GAAAA,0BAAA;AAEM,MAAMM,kBAAkB,GAAG,MAAOC,QAAuB,IAAK;EACnE,IAAIC,qBAAM,EAAE;IACV,IAAI,CAACC,SAAS,CAACC,YAAY,EAAEC,gBAAgB,EAAE,OAAO,EAAE;IAExD,MAAMC,OAAO,GAAG,MAAMH,SAAS,CAACC,YAAY,CAACC,gBAAgB,CAAC,CAAC;IAC/D,OAAOC,OAAO,CAACC,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,YAAY,CAAC;EACvD;EACA,IAAIC,wBAAS,EAAE;IACb,OAAO,MAAMT,QAAQ,CAACD,kBAAkB,CAAC,CAAC;EAC5C;EACA,OAAO,EAAE;AACX,CAAC;AAAAD,OAAA,CAAAC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useVoiceRecorder = void 0;
7
+ var _expoAudio = require("expo-audio");
8
+ var _helpers = require("../helpers.js");
9
+ const useVoiceRecorder = model => {
10
+ const recorder = (0, _expoAudio.useAudioRecorder)(_expoAudio.RecordingPresets.LOW_QUALITY, status => console.log('Recording status:', status));
11
+ const recorderState = (0, _expoAudio.useAudioRecorderState)(recorder);
12
+ const player = (0, _expoAudio.useAudioPlayer)();
13
+ const startRecording = async () => {
14
+ if (!(await (0, _helpers.ensureRecordingPermissions)())) return model.showError('No microphone access');
15
+ await recorder.prepareToRecordAsync();
16
+ if (await (0, _helpers.getAvailableInputs)(recorder).then(inputs => inputs.length === 0)) {
17
+ return model.showError('No microphone found');
18
+ }
19
+ recorder.record();
20
+ };
21
+ const stopRecording = async () => {
22
+ await recorder.stop();
23
+ recorder.uri && console.log('Recording stopped and stored at', recorder.uri);
24
+ player.replace(recorder.uri);
25
+ player.play();
26
+ };
27
+ return {
28
+ recorder,
29
+ recorderState,
30
+ player,
31
+ startRecording,
32
+ stopRecording
33
+ };
34
+ };
35
+ exports.useVoiceRecorder = useVoiceRecorder;
36
+ //# sourceMappingURL=useVoiceRecorder.hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_expoAudio","require","_helpers","useVoiceRecorder","model","recorder","useAudioRecorder","RecordingPresets","LOW_QUALITY","status","console","log","recorderState","useAudioRecorderState","player","useAudioPlayer","startRecording","ensureRecordingPermissions","showError","prepareToRecordAsync","getAvailableInputs","then","inputs","length","record","stopRecording","stop","uri","replace","play","exports"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/hooks/useVoiceRecorder.hook.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAMA,IAAAC,QAAA,GAAAD,OAAA;AAGO,MAAME,gBAAgB,GAAIC,KAAuB,IAAK;EAC3D,MAAMC,QAAQ,GAAG,IAAAC,2BAAgB,EAACC,2BAAgB,CAACC,WAAW,EAAGC,MAAM,IACrEC,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAEF,MAAM,CACzC,CAAC;EACD,MAAMG,aAAa,GAAG,IAAAC,gCAAqB,EAACR,QAAQ,CAAC;EAErD,MAAMS,MAAM,GAAG,IAAAC,yBAAc,EAAC,CAAC;EAE/B,MAAMC,cAAc,GAAG,MAAAA,CAAA,KAAY;IACjC,IAAI,EAAE,MAAM,IAAAC,mCAA0B,EAAC,CAAC,CAAC,EAAE,OAAOb,KAAK,CAACc,SAAS,CAAC,sBAAsB,CAAC;IAEzF,MAAMb,QAAQ,CAACc,oBAAoB,CAAC,CAAC;IAErC,IAAI,MAAM,IAAAC,2BAAkB,EAACf,QAAQ,CAAC,CAACgB,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACC,MAAM,KAAK,CAAC,CAAC,EAAE;MAC5E,OAAOnB,KAAK,CAACc,SAAS,CAAC,qBAAqB,CAAC;IAC/C;IAEAb,QAAQ,CAACmB,MAAM,CAAC,CAAC;EACnB,CAAC;EAED,MAAMC,aAAa,GAAG,MAAAA,CAAA,KAAY;IAChC,MAAMpB,QAAQ,CAACqB,IAAI,CAAC,CAAC;IACrBrB,QAAQ,CAACsB,GAAG,IAAIjB,OAAO,CAACC,GAAG,CAAC,iCAAiC,EAAEN,QAAQ,CAACsB,GAAG,CAAC;IAE5Eb,MAAM,CAACc,OAAO,CAACvB,QAAQ,CAACsB,GAAI,CAAC;IAC7Bb,MAAM,CAACe,IAAI,CAAC,CAAC;EACf,CAAC;EAED,OAAO;IAAExB,QAAQ;IAAEO,aAAa;IAAEE,MAAM;IAAEE,cAAc;IAAES;EAAc,CAAC;AAC3E,CAAC;AAAAK,OAAA,CAAA3B,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _VoiceRecord = require("./components/VoiceRecord.js");
7
+ Object.keys(_VoiceRecord).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _VoiceRecord[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _VoiceRecord[key];
14
+ }
15
+ });
16
+ });
17
+ var _VoiceRecordModel = require("./model/VoiceRecord.model.js");
18
+ Object.keys(_VoiceRecordModel).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _VoiceRecordModel[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _VoiceRecordModel[key];
25
+ }
26
+ });
27
+ });
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_VoiceRecord","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_VoiceRecordModel"],"sourceRoot":"../../../../src","sources":["features/voiceRecord/index.ts"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,YAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,YAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,YAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,iBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,iBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,iBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,iBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VoiceRecordModel = void 0;
7
+ var _effector = require("effector");
8
+ class VoiceRecordModel {
9
+ startRecord = (0, _effector.createEvent)();
10
+ stop = (0, _effector.createEvent)();
11
+ deleteFile = (0, _effector.createEvent)();
12
+ setAudioFilePath = (0, _effector.createEvent)();
13
+ clearAudioFilePath = (0, _effector.createEvent)();
14
+ $audioFilePath = (0, _effector.restore)(this.setAudioFilePath, '').reset(this.clearAudioFilePath);
15
+ constructor({
16
+ showToatInfo,
17
+ showToastError
18
+ }) {
19
+ this.showInfo = showToatInfo;
20
+ this.showError = showToastError;
21
+ (0, _effector.sample)({
22
+ clock: this.deleteFile,
23
+ target: (0, _effector.createEffect)(async () => {
24
+ this.clearAudioFilePath();
25
+ showToatInfo('Recording deleted');
26
+ })
27
+ });
28
+ (0, _effector.sample)({
29
+ clock: this.startRecord,
30
+ target: (0, _effector.createEffect)(async () => {
31
+ showToatInfo('Recording started');
32
+ })
33
+ });
34
+ }
35
+ }
36
+ exports.VoiceRecordModel = VoiceRecordModel;
37
+ //# sourceMappingURL=VoiceRecord.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_effector","require","VoiceRecordModel","startRecord","createEvent","stop","deleteFile","setAudioFilePath","clearAudioFilePath","$audioFilePath","restore","reset","constructor","showToatInfo","showToastError","showInfo","showError","sample","clock","target","createEffect","exports"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/model/VoiceRecord.model.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAQO,MAAMC,gBAAgB,CAAC;EACZC,WAAW,GAAG,IAAAC,qBAAW,EAAC,CAAC;EAC3BC,IAAI,GAAG,IAAAD,qBAAW,EAAC,CAAC;EAEpBE,UAAU,GAAG,IAAAF,qBAAW,EAAC,CAAC;EAE1BG,gBAAgB,GAAG,IAAAH,qBAAW,EAAS,CAAC;EACxCI,kBAAkB,GAAG,IAAAJ,qBAAW,EAAC,CAAC;EAClCK,cAAc,GAAG,IAAAC,iBAAO,EAAC,IAAI,CAACH,gBAAgB,EAAE,EAAE,CAAC,CAACI,KAAK,CAAC,IAAI,CAACH,kBAAkB,CAAC;EAKlGI,WAAWA,CAAC;IAAEC,YAAY;IAAEC;EAAuC,CAAC,EAAE;IACpE,IAAI,CAACC,QAAQ,GAAGF,YAAY;IAC5B,IAAI,CAACG,SAAS,GAAGF,cAAc;IAE/B,IAAAG,gBAAM,EAAC;MACLC,KAAK,EAAE,IAAI,CAACZ,UAAU;MACtBa,MAAM,EAAE,IAAAC,sBAAY,EAAC,YAAY;QAC/B,IAAI,CAACZ,kBAAkB,CAAC,CAAC;QACzBK,YAAY,CAAC,mBAAmB,CAAC;MACnC,CAAC;IACH,CAAC,CAAC;IAEF,IAAAI,gBAAM,EAAC;MACLC,KAAK,EAAE,IAAI,CAACf,WAAW;MACvBgB,MAAM,EAAE,IAAAC,sBAAY,EAAC,YAAY;QAC/BP,YAAY,CAAC,mBAAmB,CAAC;MACnC,CAAC;IACH,CAAC,CAAC;EACJ;AACF;AAACQ,OAAA,CAAAnB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VoiceRecordApi = void 0;
7
+ class VoiceRecordApi {}
8
+ exports.VoiceRecordApi = VoiceRecordApi;
9
+ //# sourceMappingURL=VoiceRecordApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["VoiceRecordApi","exports"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/model/VoiceRecordApi.ts"],"mappings":";;;;;;AAAO,MAAMA,cAAc,CAAC;AAAEC,OAAA,CAAAD,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -155,4 +155,16 @@ Object.keys(_index11).forEach(function (key) {
155
155
  }
156
156
  });
157
157
  });
158
+ var _index12 = require("./features/voiceRecord/index.js");
159
+ Object.keys(_index12).forEach(function (key) {
160
+ if (key === "default" || key === "__esModule") return;
161
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
162
+ if (key in exports && exports[key] === _index12[key]) return;
163
+ Object.defineProperty(exports, key, {
164
+ enumerable: true,
165
+ get: function () {
166
+ return _index12[key];
167
+ }
168
+ });
169
+ });
158
170
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_index","require","_helpers","_index2","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_index3","_index4","_index5","_index6","_index7","_index8","_index9","_index10","_index11"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_index","require","_helpers","_index2","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_index3","_index4","_index5","_index6","_index7","_index8","_index9","_index10","_index11","_index12"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ import { StyleSheet } from 'react-native';
4
+ import { VoiceRecordButton } from "./VoiceRecordButton.js";
5
+ import React from 'react';
6
+ import { COLORS, SPACING } from '@magmamath/react-native-ui';
7
+ import { VoiceRecordDelete } from "./VoiceRecordDelete.js";
8
+ import { VoiceRecordDevider } from "./VoiceRecordDevider.js";
9
+ import VoiceRecordTimer from "./VoiceRecordTimer.js";
10
+ import Animated, { FadeIn, FadeOut, useAnimatedStyle, withTiming } from 'react-native-reanimated';
11
+ import { useVoiceRecorder } from "../hooks/useVoiceRecorder.hook.js";
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ const CONTAINER_SIZES = {
14
+ COLLAPSED: 61,
15
+ EXPANDED: 152
16
+ };
17
+ export const VoiceRecord = ({
18
+ style,
19
+ model
20
+ }) => {
21
+ const {
22
+ recorder,
23
+ recorderState,
24
+ player,
25
+ startRecording,
26
+ stopRecording
27
+ } = useVoiceRecorder(model);
28
+ const aniamtedStyle = useAnimatedStyle(() => {
29
+ return {
30
+ height: withTiming(recorderState.isRecording ? CONTAINER_SIZES.EXPANDED : CONTAINER_SIZES.COLLAPSED, {
31
+ duration: 280
32
+ })
33
+ };
34
+ }, [recorderState]);
35
+ return /*#__PURE__*/_jsxs(Animated.View, {
36
+ style: [styles.container, style, aniamtedStyle],
37
+ children: [/*#__PURE__*/_jsx(VoiceRecordButton
38
+ // onPress={() => setIsRecording((prev) => !prev)}
39
+ , {
40
+ onPress: recorderState.isRecording ? stopRecording : startRecording,
41
+ isRecording: recorderState.isRecording
42
+ }), recorderState.isRecording && /*#__PURE__*/_jsxs(Animated.View, {
43
+ entering: FadeIn,
44
+ exiting: FadeOut,
45
+ style: styles.expendedContainer,
46
+ children: [/*#__PURE__*/_jsx(VoiceRecordTimer, {
47
+ style: styles.timer
48
+ //0:00 as default value and format mm:ss
49
+ ,
50
+ time: recorderState.durationMillis ? new Date(recorderState.durationMillis).toISOString().substr(14, 5) : '0:00'
51
+ }), /*#__PURE__*/_jsx(VoiceRecordDevider, {}), /*#__PURE__*/_jsx(VoiceRecordDelete, {
52
+ onPress: model.deleteFile
53
+ })]
54
+ })]
55
+ });
56
+ };
57
+ const styles = StyleSheet.create({
58
+ container: {
59
+ alignItems: 'center',
60
+ padding: 3,
61
+ paddingBottom: 6,
62
+ backgroundColor: COLORS.NEUTRAL_3,
63
+ borderRadius: 32,
64
+ boxShadow: '0 1px 3px 0 rgba(51, 51, 51, 0.10), 0 0 1px 0 rgba(51, 51, 51, 0.40)',
65
+ overflow: 'hidden'
66
+ },
67
+ timer: {
68
+ marginTop: SPACING[400]
69
+ },
70
+ expendedContainer: {
71
+ alignItems: 'center'
72
+ }
73
+ });
74
+ //# sourceMappingURL=VoiceRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StyleSheet","VoiceRecordButton","React","COLORS","SPACING","VoiceRecordDelete","VoiceRecordDevider","VoiceRecordTimer","Animated","FadeIn","FadeOut","useAnimatedStyle","withTiming","useVoiceRecorder","jsx","_jsx","jsxs","_jsxs","CONTAINER_SIZES","COLLAPSED","EXPANDED","VoiceRecord","style","model","recorder","recorderState","player","startRecording","stopRecording","aniamtedStyle","height","isRecording","duration","View","styles","container","children","onPress","entering","exiting","expendedContainer","timer","time","durationMillis","Date","toISOString","substr","deleteFile","create","alignItems","padding","paddingBottom","backgroundColor","NEUTRAL_3","borderRadius","boxShadow","overflow","marginTop"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/components/VoiceRecord.tsx"],"mappings":";;AAAA,SAA+BA,UAAU,QAAQ,cAAc;AAC/D,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,EAAEC,OAAO,QAAQ,4BAA4B;AAC5D,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,OAAOC,gBAAgB,MAAM,uBAAoB;AACjD,OAAOC,QAAQ,IAAIC,MAAM,EAAEC,OAAO,EAAEC,gBAAgB,EAAEC,UAAU,QAAQ,yBAAyB;AAEjG,SAASC,gBAAgB,QAAQ,mCAAgC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOjE,MAAMC,eAAe,GAAG;EACtBC,SAAS,EAAE,EAAE;EACbC,QAAQ,EAAE;AACZ,CAAC;AAED,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAAwB,CAAC,KAAK;EACjE,MAAM;IAAEC,QAAQ;IAAEC,aAAa;IAAEC,MAAM;IAAEC,cAAc;IAAEC;EAAc,CAAC,GAAGf,gBAAgB,CAACU,KAAK,CAAC;EAElG,MAAMM,aAAa,GAAGlB,gBAAgB,CAAC,MAAM;IAC3C,OAAO;MACLmB,MAAM,EAAElB,UAAU,CAChBa,aAAa,CAACM,WAAW,GAAGb,eAAe,CAACE,QAAQ,GAAGF,eAAe,CAACC,SAAS,EAChF;QACEa,QAAQ,EAAE;MACZ,CACF;IACF,CAAC;EACH,CAAC,EAAE,CAACP,aAAa,CAAC,CAAC;EAEnB,oBACER,KAAA,CAACT,QAAQ,CAACyB,IAAI;IAACX,KAAK,EAAE,CAACY,MAAM,CAACC,SAAS,EAAEb,KAAK,EAAEO,aAAa,CAAE;IAAAO,QAAA,gBAC7DrB,IAAA,CAACd;IACC;IAAA;MACAoC,OAAO,EAAEZ,aAAa,CAACM,WAAW,GAAGH,aAAa,GAAGD,cAAe;MACpEI,WAAW,EAAEN,aAAa,CAACM;IAAY,CACxC,CAAC,EACDN,aAAa,CAACM,WAAW,iBACxBd,KAAA,CAACT,QAAQ,CAACyB,IAAI;MAACK,QAAQ,EAAE7B,MAAO;MAAC8B,OAAO,EAAE7B,OAAQ;MAACY,KAAK,EAAEY,MAAM,CAACM,iBAAkB;MAAAJ,QAAA,gBACjFrB,IAAA,CAACR,gBAAgB;QACfe,KAAK,EAAEY,MAAM,CAACO;QACd;QAAA;QACAC,IAAI,EACFjB,aAAa,CAACkB,cAAc,GACxB,IAAIC,IAAI,CAACnB,aAAa,CAACkB,cAAc,CAAC,CAACE,WAAW,CAAC,CAAC,CAACC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,GAClE;MACL,CACF,CAAC,eACF/B,IAAA,CAACT,kBAAkB,IAAE,CAAC,eACtBS,IAAA,CAACV,iBAAiB;QAACgC,OAAO,EAAEd,KAAK,CAACwB;MAAW,CAAE,CAAC;IAAA,CACnC,CAChB;EAAA,CACY,CAAC;AAEpB,CAAC;AAED,MAAMb,MAAM,GAAGlC,UAAU,CAACgD,MAAM,CAAC;EAC/Bb,SAAS,EAAE;IACTc,UAAU,EAAE,QAAQ;IACpBC,OAAO,EAAE,CAAC;IACVC,aAAa,EAAE,CAAC;IAChBC,eAAe,EAAEjD,MAAM,CAACkD,SAAS;IACjCC,YAAY,EAAE,EAAE;IAChBC,SAAS,EAAE,sEAAsE;IACjFC,QAAQ,EAAE;EACZ,CAAC;EACDf,KAAK,EAAE;IACLgB,SAAS,EAAErD,OAAO,CAAC,GAAG;EACxB,CAAC;EACDoC,iBAAiB,EAAE;IACjBS,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ import React, { useMemo } from 'react';
4
+ import { Button, ButtonColor, ButtonSize, ButtonVariant } from '@magmamath/react-native-ui';
5
+ import { MicrophoneIcon, CheckIcon } from '@magmamath/react-native-ui';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const VoiceRecordButton = ({
8
+ style,
9
+ onPress,
10
+ isRecording
11
+ }) => {
12
+ const combinedStyles = useMemo(() => {
13
+ return {
14
+ button: {
15
+ width: 50,
16
+ ...style?.button
17
+ },
18
+ container: {
19
+ ...style?.container
20
+ },
21
+ text: {
22
+ ...style?.text
23
+ }
24
+ };
25
+ }, [style]);
26
+ return /*#__PURE__*/_jsx(Button, {
27
+ onPress: onPress,
28
+ style: combinedStyles,
29
+ size: ButtonSize.LARGE,
30
+ variant: ButtonVariant.PRIMARY,
31
+ colorScheme: ButtonColor.WHITE,
32
+ icon: isRecording ? /*#__PURE__*/_jsx(CheckIcon, {
33
+ size: 25
34
+ }) : /*#__PURE__*/_jsx(MicrophoneIcon, {
35
+ size: 19
36
+ })
37
+ });
38
+ };
39
+ //# sourceMappingURL=VoiceRecordButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","Button","ButtonColor","ButtonSize","ButtonVariant","MicrophoneIcon","CheckIcon","jsx","_jsx","VoiceRecordButton","style","onPress","isRecording","combinedStyles","button","width","container","text","size","LARGE","variant","PRIMARY","colorScheme","WHITE","icon"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/components/VoiceRecordButton.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SACEC,MAAM,EACNC,WAAW,EACXC,UAAU,EAEVC,aAAa,QACR,4BAA4B;AAEnC,SAASC,cAAc,EAAEC,SAAS,QAAQ,4BAA4B;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAQtE,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,KAAK;EAAEC,OAAO;EAAEC;AAAoC,CAAC,KAAK;EAC5F,MAAMC,cAAc,GAAGb,OAAO,CAAC,MAAmB;IAChD,OAAO;MACLc,MAAM,EAAE;QACNC,KAAK,EAAE,EAAE;QACT,GAAIL,KAAK,EAAEI;MACb,CAAC;MACDE,SAAS,EAAE;QACT,GAAIN,KAAK,EAAEM;MACb,CAAC;MACDC,IAAI,EAAE;QACJ,GAAIP,KAAK,EAAEO;MACb;IACF,CAAC;EACH,CAAC,EAAE,CAACP,KAAK,CAAC,CAAC;EAEX,oBACEF,IAAA,CAACP,MAAM;IACLU,OAAO,EAAEA,OAAQ;IACjBD,KAAK,EAAEG,cAAe;IACtBK,IAAI,EAAEf,UAAU,CAACgB,KAAM;IACvBC,OAAO,EAAEhB,aAAa,CAACiB,OAAQ;IAC/BC,WAAW,EAAEpB,WAAW,CAACqB,KAAM;IAC/BC,IAAI,EAAEZ,WAAW,gBAAGJ,IAAA,CAACF,SAAS;MAACY,IAAI,EAAE;IAAG,CAAE,CAAC,gBAAGV,IAAA,CAACH,cAAc;MAACa,IAAI,EAAE;IAAG,CAAE;EAAE,CAC5E,CAAC;AAEN,CAAC","ignoreList":[]}