@revrag-ai/embed-react-native 1.0.31 → 1.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/api/api.js +49 -21
- package/dist/commonjs/api/api.js.map +1 -1
- package/dist/commonjs/components/DynamicComponent/Typewriter.js +6 -5
- package/dist/commonjs/components/DynamicComponent/Typewriter.js.map +1 -1
- package/dist/commonjs/components/Embed/EmbedAudioWave.js +87 -130
- package/dist/commonjs/components/Embed/EmbedAudioWave.js.map +1 -1
- package/dist/commonjs/components/Embed/EmbedButton.js +181 -68
- package/dist/commonjs/components/Embed/EmbedButton.js.map +1 -1
- package/dist/commonjs/components/styles/EmbedButton.style.js +32 -22
- package/dist/commonjs/components/styles/EmbedButton.style.js.map +1 -1
- package/dist/commonjs/context/EmbedProvider.js +5 -10
- package/dist/commonjs/context/EmbedProvider.js.map +1 -1
- package/dist/commonjs/events/clickEventTracker.js +15 -4
- package/dist/commonjs/events/clickEventTracker.js.map +1 -1
- package/dist/commonjs/events/embed.event.js +18 -7
- package/dist/commonjs/events/embed.event.js.map +1 -1
- package/dist/commonjs/hooks/EmbedButton.animations.js +47 -17
- package/dist/commonjs/hooks/EmbedButton.animations.js.map +1 -1
- package/dist/commonjs/hooks/EmbedButton.helpers.js +37 -1
- package/dist/commonjs/hooks/EmbedButton.helpers.js.map +1 -1
- package/dist/commonjs/hooks/initialize.js +10 -0
- package/dist/commonjs/hooks/initialize.js.map +1 -1
- package/dist/commonjs/hooks/voiceagent.js +41 -24
- package/dist/commonjs/hooks/voiceagent.js.map +1 -1
- package/dist/commonjs/store/store.key.js +22 -4
- package/dist/commonjs/store/store.key.js.map +1 -1
- package/dist/commonjs/utils/constant.js +1 -1
- package/dist/commonjs/utils/permision.js +34 -13
- package/dist/commonjs/utils/permision.js.map +1 -1
- package/dist/commonjs/utils/reanimated.helper.js +2 -0
- package/dist/commonjs/utils/reanimated.helper.js.map +1 -1
- package/dist/module/api/api.js +49 -21
- package/dist/module/api/api.js.map +1 -1
- package/dist/module/components/DynamicComponent/Typewriter.js +6 -5
- package/dist/module/components/DynamicComponent/Typewriter.js.map +1 -1
- package/dist/module/components/Embed/EmbedAudioWave.js +88 -132
- package/dist/module/components/Embed/EmbedAudioWave.js.map +1 -1
- package/dist/module/components/Embed/EmbedButton.js +186 -73
- package/dist/module/components/Embed/EmbedButton.js.map +1 -1
- package/dist/module/components/styles/EmbedButton.style.js +32 -22
- package/dist/module/components/styles/EmbedButton.style.js.map +1 -1
- package/dist/module/context/EmbedProvider.js +5 -10
- package/dist/module/context/EmbedProvider.js.map +1 -1
- package/dist/module/events/clickEventTracker.js +15 -4
- package/dist/module/events/clickEventTracker.js.map +1 -1
- package/dist/module/events/embed.event.js +18 -7
- package/dist/module/events/embed.event.js.map +1 -1
- package/dist/module/hooks/EmbedButton.animations.js +44 -17
- package/dist/module/hooks/EmbedButton.animations.js.map +1 -1
- package/dist/module/hooks/EmbedButton.helpers.js +35 -0
- package/dist/module/hooks/EmbedButton.helpers.js.map +1 -1
- package/dist/module/hooks/initialize.js +10 -0
- package/dist/module/hooks/initialize.js.map +1 -1
- package/dist/module/hooks/voiceagent.js +41 -24
- package/dist/module/hooks/voiceagent.js.map +1 -1
- package/dist/module/store/store.key.js +20 -3
- package/dist/module/store/store.key.js.map +1 -1
- package/dist/module/utils/constant.js +1 -1
- package/dist/module/utils/permision.js +34 -13
- package/dist/module/utils/permision.js.map +1 -1
- package/dist/module/utils/reanimated.helper.js +2 -0
- package/dist/module/utils/reanimated.helper.js.map +1 -1
- package/dist/typescript/src/api/api.d.ts.map +1 -1
- package/dist/typescript/src/components/DynamicComponent/Typewriter.d.ts.map +1 -1
- package/dist/typescript/src/components/Embed/EmbedAudioWave.d.ts +11 -1
- package/dist/typescript/src/components/Embed/EmbedAudioWave.d.ts.map +1 -1
- package/dist/typescript/src/components/Embed/EmbedButton.d.ts.map +1 -1
- package/dist/typescript/src/components/styles/EmbedButton.style.d.ts +3 -0
- package/dist/typescript/src/components/styles/EmbedButton.style.d.ts.map +1 -1
- package/dist/typescript/src/context/EmbedProvider.d.ts.map +1 -1
- package/dist/typescript/src/events/clickEventTracker.d.ts.map +1 -1
- package/dist/typescript/src/events/embed.event.d.ts +4 -0
- package/dist/typescript/src/events/embed.event.d.ts.map +1 -1
- package/dist/typescript/src/hooks/EmbedButton.animations.d.ts +24 -7
- package/dist/typescript/src/hooks/EmbedButton.animations.d.ts.map +1 -1
- package/dist/typescript/src/hooks/EmbedButton.helpers.d.ts +5 -4
- package/dist/typescript/src/hooks/EmbedButton.helpers.d.ts.map +1 -1
- package/dist/typescript/src/hooks/initialize.d.ts.map +1 -1
- package/dist/typescript/src/hooks/voiceagent.d.ts.map +1 -1
- package/dist/typescript/src/store/store.key.d.ts +2 -0
- package/dist/typescript/src/store/store.key.d.ts.map +1 -1
- package/dist/typescript/src/utils/__tests__/permision.test.d.ts +11 -0
- package/dist/typescript/src/utils/__tests__/permision.test.d.ts.map +1 -0
- package/dist/typescript/src/utils/constant.d.ts +1 -1
- package/dist/typescript/src/utils/permision.d.ts.map +1 -1
- package/dist/typescript/src/utils/reanimated.helper.d.ts +1 -0
- package/dist/typescript/src/utils/reanimated.helper.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/commonjs/api/api.js
CHANGED
|
@@ -75,14 +75,21 @@ class APIService {
|
|
|
75
75
|
try {
|
|
76
76
|
await this.ensureInitialized();
|
|
77
77
|
const headers = await this.getHeaders();
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
const controller = new AbortController();
|
|
79
|
+
const timeoutId = setTimeout(() => controller.abort(), 15000);
|
|
80
|
+
try {
|
|
81
|
+
response = await fetch(`${this.apiBaseUrl}/embedded-agent/initialize`, {
|
|
82
|
+
method: 'GET',
|
|
83
|
+
headers: headers,
|
|
84
|
+
signal: controller.signal
|
|
85
|
+
});
|
|
86
|
+
} finally {
|
|
87
|
+
clearTimeout(timeoutId);
|
|
88
|
+
}
|
|
83
89
|
if (!response.ok) {
|
|
84
90
|
return await (0, _apiError.processApiError)(null, response, this.apiBaseUrl || undefined);
|
|
85
91
|
}
|
|
92
|
+
const data = await response.json();
|
|
86
93
|
await (0, _storeKey.setAgentData)(data, '@config_data');
|
|
87
94
|
return {
|
|
88
95
|
success: true,
|
|
@@ -103,11 +110,18 @@ class APIService {
|
|
|
103
110
|
try {
|
|
104
111
|
await this.ensureInitialized();
|
|
105
112
|
const headers = await this.getHeaders();
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
113
|
+
const controller = new AbortController();
|
|
114
|
+
const timeoutId = setTimeout(() => controller.abort(), 15000);
|
|
115
|
+
try {
|
|
116
|
+
response = await fetch(`${this.apiBaseUrl}/embedded-agent/user-context/update?app_user_id=${params.app_user_id}`, {
|
|
117
|
+
method: 'PUT',
|
|
118
|
+
headers,
|
|
119
|
+
body: JSON.stringify(params),
|
|
120
|
+
signal: controller.signal
|
|
121
|
+
});
|
|
122
|
+
} finally {
|
|
123
|
+
clearTimeout(timeoutId);
|
|
124
|
+
}
|
|
111
125
|
if (!response.ok) {
|
|
112
126
|
return await (0, _apiError.processApiError)(null, response, this.apiBaseUrl || undefined);
|
|
113
127
|
}
|
|
@@ -129,15 +143,22 @@ class APIService {
|
|
|
129
143
|
try {
|
|
130
144
|
await this.ensureInitialized();
|
|
131
145
|
const headers = await this.getHeaders();
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
146
|
+
const controller = new AbortController();
|
|
147
|
+
const timeoutId = setTimeout(() => controller.abort(), 15000);
|
|
148
|
+
try {
|
|
149
|
+
response = await fetch(`${this.apiBaseUrl}/embedded-agent/token`, {
|
|
150
|
+
method: 'POST',
|
|
151
|
+
headers,
|
|
152
|
+
body: JSON.stringify(params),
|
|
153
|
+
signal: controller.signal
|
|
154
|
+
});
|
|
155
|
+
} finally {
|
|
156
|
+
clearTimeout(timeoutId);
|
|
157
|
+
}
|
|
138
158
|
if (!response.ok) {
|
|
139
159
|
return await (0, _apiError.processApiError)(null, response, this.apiBaseUrl || undefined);
|
|
140
160
|
}
|
|
161
|
+
const data = await response.json();
|
|
141
162
|
return {
|
|
142
163
|
success: true,
|
|
143
164
|
data: data
|
|
@@ -151,14 +172,21 @@ class APIService {
|
|
|
151
172
|
try {
|
|
152
173
|
await this.ensureInitialized();
|
|
153
174
|
const headers = await this.getHeaders();
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
175
|
+
const controller = new AbortController();
|
|
176
|
+
const timeoutId = setTimeout(() => controller.abort(), 15000);
|
|
177
|
+
try {
|
|
178
|
+
response = await fetch(`${this.apiBaseUrl}/embedded-agent/dynamic-popup?app_user_id=${params.app_user_id}`, {
|
|
179
|
+
method: 'GET',
|
|
180
|
+
headers,
|
|
181
|
+
signal: controller.signal
|
|
182
|
+
});
|
|
183
|
+
} finally {
|
|
184
|
+
clearTimeout(timeoutId);
|
|
185
|
+
}
|
|
159
186
|
if (!response.ok) {
|
|
160
187
|
return await (0, _apiError.processApiError)(null, response, this.apiBaseUrl || undefined);
|
|
161
188
|
}
|
|
189
|
+
const data = await response.json();
|
|
162
190
|
return {
|
|
163
191
|
success: true,
|
|
164
192
|
data: data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_storeKey","require","_apiError","_constant","APIService","instance","apiBaseUrl","isInitialized","constructor","getInstance","initialize","AgentData","getAgentData","Error","resolvedEmbedUrl","embedUrl","DEFAULT_EMBED_URL","ensureInitialized","getHeaders","apiKey","registerOnInitialize","response","headers","fetch","method","
|
|
1
|
+
{"version":3,"names":["_storeKey","require","_apiError","_constant","APIService","instance","apiBaseUrl","isInitialized","constructor","getInstance","initialize","AgentData","getAgentData","Error","resolvedEmbedUrl","embedUrl","DEFAULT_EMBED_URL","ensureInitialized","getHeaders","apiKey","registerOnInitialize","response","headers","controller","AbortController","timeoutId","setTimeout","abort","fetch","method","signal","clearTimeout","ok","processApiError","undefined","data","json","setAgentData","success","error","updateUserData","params","app_user_id","body","JSON","stringify","getTokenDetails","getPopupDescription","exports","initializeApi","apiService"],"sourceRoot":"../../../src","sources":["api/api.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -72,11 +72,12 @@ const Typewriter = ({
|
|
|
72
72
|
return () => clearTimeout(timer);
|
|
73
73
|
}, [handleTyping, typingSpeed, isAllDone]);
|
|
74
74
|
(0, _react.useEffect)(() => {
|
|
75
|
-
if (isAllDone)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
75
|
+
if (!isAllDone) return;
|
|
76
|
+
const closeTimer = setTimeout(() => {
|
|
77
|
+
onViewClose?.(true);
|
|
78
|
+
}, viewCloseDelay);
|
|
79
|
+
// Clear on unmount to avoid calling onViewClose on an already-cleaned parent
|
|
80
|
+
return () => clearTimeout(closeTimer);
|
|
80
81
|
}, [isAllDone, onViewClose, viewCloseDelay]);
|
|
81
82
|
const currentLine = lines[currentLineIndex] ?? '';
|
|
82
83
|
const typedText = currentLine.substring(0, currentCharIndex);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_jsxRuntime","Typewriter","lines","linesProp","typingSpeed","pauseDuration","containerStyle","textStyle","cursorStyle","showCursor","onViewClose","viewCloseDelay","useMemo","Array","isArray","completedLines","setCompletedLines","useState","currentCharIndex","setCurrentCharIndex","currentLineIndex","setCurrentLineIndex","isDone","setIsDone","blinkAnim","useRef","Animated","Value","current","linesKey","JSON","stringify","useEffect","isAllDone","length","loop","sequence","timing","toValue","duration","useNativeDriver","start","stop","handleTyping","useCallback","currentLine","undefined","prev","setTimeout","timer","clearTimeout","typedText","substring","isShowingCursor","jsxs","View","style","styles","container","children","map","line","index","jsx","Text","text","cursor","opacity","_default","exports","default","typewriterFont","Platform","OS","StyleSheet","create","flexDirection","fontSize","color","fontFamily","alignItems","marginLeft","width","height","backgroundColor"],"sourceRoot":"../../../../src","sources":["components/DynamicComponent/Typewriter.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_jsxRuntime","Typewriter","lines","linesProp","typingSpeed","pauseDuration","containerStyle","textStyle","cursorStyle","showCursor","onViewClose","viewCloseDelay","useMemo","Array","isArray","completedLines","setCompletedLines","useState","currentCharIndex","setCurrentCharIndex","currentLineIndex","setCurrentLineIndex","isDone","setIsDone","blinkAnim","useRef","Animated","Value","current","linesKey","JSON","stringify","useEffect","isAllDone","length","loop","sequence","timing","toValue","duration","useNativeDriver","start","stop","handleTyping","useCallback","currentLine","undefined","prev","setTimeout","timer","clearTimeout","closeTimer","typedText","substring","isShowingCursor","jsxs","View","style","styles","container","children","map","line","index","jsx","Text","text","cursor","opacity","_default","exports","default","typewriterFont","Platform","OS","StyleSheet","create","flexDirection","fontSize","color","fontFamily","alignItems","marginLeft","width","height","backgroundColor"],"sourceRoot":"../../../../src","sources":["components/DynamicComponent/Typewriter.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,148 +6,110 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.WaveformVisualizer = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
9
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
|
+
/**
|
|
13
|
+
* EmbedAudioWave — Waveform visualizer for the voice agent.
|
|
14
|
+
*
|
|
15
|
+
* Replaced the original implementation which used two JS-thread setInterval loops
|
|
16
|
+
* and useNativeDriver:false (causing jank on iOS physical devices) with:
|
|
17
|
+
* - A single 500ms interval that only writes to a Reanimated shared value
|
|
18
|
+
* (no React state updates, no re-renders from audio polling)
|
|
19
|
+
* - Per-bar Reanimated useAnimatedStyle running on the UI thread (no JS thread animation)
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
const BAR_COUNT = 10;
|
|
23
|
+
|
|
24
|
+
// Max height (px) for each bar — edge bars are shorter for a natural wave shape
|
|
25
|
+
const BAR_MAX_HEIGHTS = [6, 10, 16, 22, 25, 22, 16, 10, 6, 4];
|
|
26
|
+
|
|
27
|
+
// Phase offset per bar so bars animate at staggered times (creates wave effect)
|
|
28
|
+
const BAR_PHASE_OFFSETS = [0, 60, 120, 180, 240, 180, 120, 60, 0, 30];
|
|
29
|
+
const AnimatedBar = ({
|
|
30
|
+
waveProgress,
|
|
31
|
+
isActive,
|
|
32
|
+
maxHeight,
|
|
33
|
+
phaseOffset,
|
|
34
|
+
isEdge
|
|
35
|
+
}) => {
|
|
36
|
+
const barStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
37
|
+
'worklet';
|
|
38
|
+
|
|
39
|
+
if (!isActive.value) {
|
|
40
|
+
return {
|
|
41
|
+
height: 2
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
// Compute a sine-wave height from the shared progress value + per-bar phase offset
|
|
45
|
+
const phase = (waveProgress.value + phaseOffset) % 1000 / 1000;
|
|
46
|
+
const height = Math.max(2, Math.abs(Math.sin(phase * Math.PI * 2)) * maxHeight);
|
|
47
|
+
return {
|
|
48
|
+
height
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
52
|
+
style: [styles.bar, isEdge ? styles.barEdge : styles.barCenter, barStyle]
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
const WaveformVisualizer = ({
|
|
56
|
+
roomRef
|
|
57
|
+
}) => {
|
|
58
|
+
// Shared values live on the UI thread — no React re-renders needed
|
|
59
|
+
const isActive = (0, _reactNativeReanimated.useSharedValue)(false);
|
|
60
|
+
const waveProgress = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
61
|
+
const lastActiveState = (0, _react.useRef)(false);
|
|
23
62
|
const intervalRef = (0, _react.useRef)(null);
|
|
24
|
-
const [currentHeights, setCurrentHeights] = (0, _react.useState)(Array(10).fill(0));
|
|
25
|
-
|
|
26
|
-
// Create animated values for each bar
|
|
27
|
-
const barCount = 10;
|
|
28
|
-
const animatedBars = (0, _react.useRef)(Array(barCount).fill(0).map(() => new _reactNative.Animated.Value(0))).current;
|
|
29
63
|
(0, _react.useEffect)(() => {
|
|
30
|
-
// Check if there's an active room connection AND if agent is talking
|
|
31
64
|
const checkAudioActivity = () => {
|
|
32
65
|
const room = roomRef.current;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Check if any remote participant is currently speaking
|
|
39
|
-
let isAgentSpeaking = false;
|
|
40
|
-
|
|
41
|
-
// Loop through all remote participants
|
|
42
|
-
room.remoteParticipants.forEach(participant => {
|
|
43
|
-
const audioTrackPublications = Array.from(participant.getTrackPublications().values());
|
|
44
|
-
const remoteAudioTrack = audioTrackPublications.find(pub => pub.track?.kind === 'audio');
|
|
45
|
-
|
|
46
|
-
// Check if this participant has audio track, is not muted, and is actively speaking
|
|
47
|
-
if (remoteAudioTrack?.track && !remoteAudioTrack?.isMuted) {
|
|
48
|
-
// Check audio level to detect actual speech (optional but more accurate)
|
|
66
|
+
let speaking = false;
|
|
67
|
+
if (room?.state === 'connected') {
|
|
68
|
+
room.remoteParticipants.forEach(participant => {
|
|
49
69
|
const audioLevel = participant.audioLevel || 0;
|
|
50
|
-
if (audioLevel > 0.05) {
|
|
51
|
-
|
|
52
|
-
isAgentSpeaking = true;
|
|
70
|
+
if (audioLevel > 0.05 || participant.isSpeaking) {
|
|
71
|
+
speaking = true;
|
|
53
72
|
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
if (speaking === lastActiveState.current) return;
|
|
76
|
+
lastActiveState.current = speaking;
|
|
77
|
+
if (speaking) {
|
|
78
|
+
isActive.value = true;
|
|
79
|
+
// Run the wave progress counter continuously on the UI thread
|
|
80
|
+
waveProgress.value = (0, _reactNativeReanimated.withRepeat)((0, _reactNativeReanimated.withSequence)((0, _reactNativeReanimated.withTiming)(1000, {
|
|
81
|
+
duration: 1200
|
|
82
|
+
}), (0, _reactNativeReanimated.withTiming)(0, {
|
|
83
|
+
duration: 0
|
|
84
|
+
})), -1, false);
|
|
85
|
+
} else {
|
|
86
|
+
isActive.value = false;
|
|
87
|
+
(0, _reactNativeReanimated.cancelAnimation)(waveProgress);
|
|
88
|
+
waveProgress.value = (0, _reactNativeReanimated.withTiming)(0, {
|
|
89
|
+
duration: 400
|
|
90
|
+
});
|
|
91
|
+
}
|
|
57
92
|
};
|
|
58
|
-
|
|
59
|
-
// Initial check
|
|
60
93
|
checkAudioActivity();
|
|
61
|
-
|
|
62
|
-
// Set up periodic checking for room state changes
|
|
63
94
|
intervalRef.current = setInterval(checkAudioActivity, 500);
|
|
64
|
-
|
|
65
|
-
// Clean up on unmount
|
|
66
95
|
return () => {
|
|
67
96
|
if (intervalRef.current) {
|
|
68
97
|
clearInterval(intervalRef.current);
|
|
69
98
|
intervalRef.current = null;
|
|
70
99
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}, [roomRef]);
|
|
74
|
-
|
|
75
|
-
// Continuous smooth animation
|
|
76
|
-
(0, _react.useEffect)(() => {
|
|
77
|
-
const animateWaveform = () => {
|
|
78
|
-
// Generate smooth waveform data - stop animation completely when not active
|
|
79
|
-
const targetHeights = isAudioActive ? Array(barCount).fill(0).map((_, index) => {
|
|
80
|
-
const timeOffset = Date.now() / 800 + index * 0.3;
|
|
81
|
-
const baseHeight = 0.5;
|
|
82
|
-
const amplitude = 0.5;
|
|
83
|
-
const height = baseHeight + amplitude * Math.abs(Math.sin(timeOffset));
|
|
84
|
-
return Math.max(0.1, Math.min(1.0, height));
|
|
85
|
-
}) : Array(barCount).fill(0); // Completely freeze animation when mic is muted
|
|
86
|
-
|
|
87
|
-
// Update current heights for conditional logic
|
|
88
|
-
setCurrentHeights(targetHeights);
|
|
89
|
-
const animations = animatedBars.map((animatedValue, index) => {
|
|
90
|
-
const targetHeight = targetHeights[index] || 0;
|
|
91
|
-
return _reactNative.Animated.timing(animatedValue, {
|
|
92
|
-
toValue: targetHeight,
|
|
93
|
-
duration: isAudioActive ? 400 : 600,
|
|
94
|
-
// Slower fade out when going inactive
|
|
95
|
-
useNativeDriver: false
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
_reactNative.Animated.parallel(animations).start();
|
|
100
|
+
(0, _reactNativeReanimated.cancelAnimation)(waveProgress);
|
|
101
|
+
isActive.value = false;
|
|
99
102
|
};
|
|
100
|
-
|
|
101
|
-
// Start animation immediately and repeat
|
|
102
|
-
animateWaveform();
|
|
103
|
-
const animationInterval = setInterval(animateWaveform, 300);
|
|
104
|
-
return () => {
|
|
105
|
-
clearInterval(animationInterval);
|
|
106
|
-
};
|
|
107
|
-
}, [isAudioActive, animatedBars]);
|
|
108
|
-
return {
|
|
109
|
-
animatedBars,
|
|
110
|
-
currentHeights,
|
|
111
|
-
isActive: isAudioActive
|
|
112
|
-
};
|
|
113
|
-
};
|
|
114
|
-
const WaveformVisualizer = ({
|
|
115
|
-
roomRef
|
|
116
|
-
}) => {
|
|
117
|
-
const {
|
|
118
|
-
animatedBars,
|
|
119
|
-
currentHeights
|
|
120
|
-
} = useReactNativeAudioWaveform(roomRef);
|
|
103
|
+
}, [roomRef, isActive, waveProgress]);
|
|
121
104
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
122
105
|
style: styles.container,
|
|
123
|
-
children:
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
conditionalValue = 1;
|
|
131
|
-
} else if (currentHeightValue >= 0.4 && currentHeightValue <= 0.5) {
|
|
132
|
-
conditionalValue = 5;
|
|
133
|
-
} else {
|
|
134
|
-
conditionalValue = 1;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// Determine bar style based on position
|
|
138
|
-
const isEdgeBar = idx <= 1 || idx >= 8;
|
|
139
|
-
const barStyle = [styles.bar, conditionalValue === 10 ? styles.barWide : styles.barNormal, isEdgeBar ? styles.barEdge : styles.barCenter];
|
|
140
|
-
|
|
141
|
-
// You can use conditionalValue for width, color, or other properties
|
|
142
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
|
|
143
|
-
style: [barStyle, {
|
|
144
|
-
height: animatedHeight.interpolate({
|
|
145
|
-
inputRange: [0, 1],
|
|
146
|
-
outputRange: [0, 25]
|
|
147
|
-
})
|
|
148
|
-
}]
|
|
149
|
-
}, idx);
|
|
150
|
-
})
|
|
106
|
+
children: BAR_MAX_HEIGHTS.map((maxH, idx) => /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedBar, {
|
|
107
|
+
waveProgress: waveProgress,
|
|
108
|
+
isActive: isActive,
|
|
109
|
+
maxHeight: maxH,
|
|
110
|
+
phaseOffset: BAR_PHASE_OFFSETS[idx] ?? 0,
|
|
111
|
+
isEdge: idx <= 1 || idx >= BAR_COUNT - 2
|
|
112
|
+
}, idx))
|
|
151
113
|
});
|
|
152
114
|
};
|
|
153
115
|
exports.WaveformVisualizer = WaveformVisualizer;
|
|
@@ -163,12 +125,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
163
125
|
bar: {
|
|
164
126
|
borderRadius: 100,
|
|
165
127
|
alignSelf: 'center',
|
|
166
|
-
margin: 1.5
|
|
167
|
-
},
|
|
168
|
-
barNormal: {
|
|
169
|
-
width: 4
|
|
170
|
-
},
|
|
171
|
-
barWide: {
|
|
128
|
+
margin: 1.5,
|
|
172
129
|
width: 4
|
|
173
130
|
},
|
|
174
131
|
barEdge: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BAR_COUNT","BAR_MAX_HEIGHTS","BAR_PHASE_OFFSETS","AnimatedBar","waveProgress","isActive","maxHeight","phaseOffset","isEdge","barStyle","useAnimatedStyle","value","height","phase","Math","max","abs","sin","PI","jsx","View","style","styles","bar","barEdge","barCenter","WaveformVisualizer","roomRef","useSharedValue","lastActiveState","useRef","intervalRef","useEffect","checkAudioActivity","room","current","speaking","state","remoteParticipants","forEach","participant","audioLevel","isSpeaking","withRepeat","withSequence","withTiming","duration","cancelAnimation","setInterval","clearInterval","container","children","map","maxH","idx","exports","StyleSheet","create","flexDirection","alignItems","alignSelf","justifyContent","zIndex","borderRadius","margin","width","backgroundColor"],"sourceRoot":"../../../../src","sources":["components/Embed/EmbedAudioWave.tsx"],"mappings":"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","ignoreList":[]}
|