import React, { useState, useEffect } from 'react';
import { View, TouchableOpacity, Text, StyleSheet } from 'react-native';
import { CometChatCalls } from '@cometchat/calls-sdk-react-native';
function RecordingControls() {
const [isRecording, setIsRecording] = useState(false);
useEffect(() => {
const unsubscribeStart = CometChatCalls.addEventListener(
'onRecordingStarted',
() => {
setIsRecording(true);
}
);
const unsubscribeStop = CometChatCalls.addEventListener(
'onRecordingStopped',
() => {
setIsRecording(false);
}
);
return () => {
unsubscribeStart();
unsubscribeStop();
};
}, []);
const toggleRecording = () => {
if (isRecording) {
CometChatCalls.stopRecording();
} else {
CometChatCalls.startRecording();
}
};
return (
<TouchableOpacity
style={[styles.button, isRecording && styles.recordingButton]}
onPress={toggleRecording}
>
<View style={[styles.indicator, isRecording && styles.recordingIndicator]} />
<Text style={styles.buttonText}>
{isRecording ? 'Stop Recording' : 'Start Recording'}
</Text>
</TouchableOpacity>
);
}
const styles = StyleSheet.create({
button: {
flexDirection: 'row',
alignItems: 'center',
backgroundColor: '#333',
paddingHorizontal: 16,
paddingVertical: 12,
borderRadius: 8,
gap: 8,
},
recordingButton: {
backgroundColor: '#ff4444',
},
indicator: {
width: 12,
height: 12,
borderRadius: 6,
backgroundColor: '#666',
},
recordingIndicator: {
backgroundColor: '#fff',
},
buttonText: {
color: '#fff',
fontSize: 14,
fontWeight: '600',
},
});
export default RecordingControls;