@@ -608,7 +608,7 @@ function handleConnectionSuccess() {
608
608
btn . disabled = true ;
609
609
} ) ;
610
610
611
- showStatus ( `Connected via ${ selectedProtocol . toUpperCase ( ) } ` , 'fa-check-circle' , 'text-green-500' ) ;
611
+ showStatus ( `Connected via ${ selectedProtocol . toUpperCase ( ) } ` , 'fa-check-circle' ) ;
612
612
613
613
// Start console updates
614
614
startConsoleUpdates ( ) ;
@@ -793,7 +793,7 @@ initializeFilename(); // Set default filename with timestamp
793
793
function showStatus ( text , icon , colorClass ) {
794
794
const statusDiv = document . getElementById ( 'connection-status' ) ;
795
795
statusText . textContent = text ;
796
- statusIcon . innerHTML = `<i class="fas ${ icon } ${ colorClass } "></i>` ;
796
+ statusIcon . innerHTML = `<i class="fas ${ icon } text-white "></i>` ;
797
797
statusDiv . classList . remove ( 'hidden' ) ;
798
798
setTimeout ( ( ) => {
799
799
statusDiv . classList . add ( 'hidden' ) ;
@@ -811,6 +811,7 @@ function checkStreamStatus() {
811
811
if ( data . connected ) {
812
812
// If connected, update the frontend
813
813
if ( ! isConnected ) {
814
+ handleConnectionSuccess ( ) ;
814
815
isConnected = true ;
815
816
connectBtn . classList . add ( 'hidden' ) ;
816
817
connectingBtn . classList . add ( 'hidden' ) ;
@@ -822,6 +823,7 @@ function checkStreamStatus() {
822
823
} else {
823
824
// If not connected, update the frontend
824
825
if ( isConnected ) {
826
+ handleDisconnection ( ) ;
825
827
isConnected = false ;
826
828
disconnectBtn . classList . add ( 'hidden' ) ;
827
829
disconnectingBtn . classList . add ( 'hidden' ) ;
@@ -860,6 +862,38 @@ function checkStreamStatus() {
860
862
} ) ;
861
863
}
862
864
865
+ function handleDisconnection ( ) {
866
+ isConnected = false ;
867
+ disconnectBtn . classList . add ( 'hidden' ) ;
868
+ disconnectingBtn . classList . add ( 'hidden' ) ;
869
+ connectingBtn . classList . add ( 'hidden' ) ;
870
+ connectBtn . classList . remove ( 'hidden' ) ;
871
+ showStatus ( 'Stream disconnected!' , 'fa-times-circle' , 'text-red-500' ) ;
872
+
873
+ // Reset protocol buttons
874
+ connectionBtns . forEach ( btn => {
875
+ btn . disabled = false ;
876
+ btn . classList . remove ( 'bg-cyan-600' , 'dark:bg-cyan-700' , 'cursor-default' ) ;
877
+ btn . classList . add ( 'hover:bg-cyan-500' , 'hover:text-white' ) ;
878
+ } ) ;
879
+
880
+ // Handle recording state
881
+ if ( isRecording ) {
882
+ isRecording = false ;
883
+ recordBtn . innerHTML = 'Start Recording' ;
884
+ recordBtn . classList . remove ( 'bg-gray-500' ) ;
885
+ recordBtn . classList . add ( 'bg-red-500' , 'hover:bg-red-600' ) ;
886
+ recordingStatus . classList . add ( 'hidden' ) ;
887
+ filenameInput . disabled = false ;
888
+ showStatus ( 'Recording stopped (stream lost)' , 'fa-stop-circle' , 'text-red-500' ) ;
889
+ }
890
+
891
+ if ( eventSource ) {
892
+ eventSource . close ( ) ;
893
+ eventSource = null ;
894
+ }
895
+ }
896
+
863
897
// Call the checkStreamStatus function every 1 second
864
898
setInterval ( checkStreamStatus , 1000 ) ;
865
899
0 commit comments