MCPcopy Create free account
hub / github.com/Threadfin/Threadfin / updateHeaderProgress

Function updateHeaderProgress

ts/base_ts.ts:818–910  ·  view source on GitHub ↗
(progress: any)

Source from the content-addressed store, hash-verified

816let progressHideTimeout: number | null = null; // Global timeout reference
817
818function updateHeaderProgress(progress: any): void {
819 const progressNav = document.getElementById("processing-status-nav") as HTMLElement;
820 if (!progressNav) return;
821
822 // Only hide progress bar if we explicitly get a progress update with 0 percentage
823 // and isProcessing is false, or if no progress data is provided
824 if (progress && progress.percentage === 0 && !progress.isProcessing) {
825 // This is an explicit "clear progress" signal
826 console.log("Progress: Clearing progress bar");
827 progressNav.style.display = "none";
828 // Reset progress bar classes for next use
829 const progressBar = progressNav.querySelector('.progress-bar') as HTMLElement;
830 if (progressBar) {
831 progressBar.classList.remove('bg-success');
832 progressBar.classList.add('progress-bar-striped', 'progress-bar-animated');
833 }
834 // Clear any existing timeout
835 if (progressHideTimeout) {
836 clearTimeout(progressHideTimeout);
837 progressHideTimeout = null;
838 }
839 return;
840 }
841
842 if (progress && progress.percentage > 0) {
843 console.log("Progress: Showing progress bar with percentage:", progress.percentage);
844 // Show processing status for any percentage > 0
845 progressNav.style.display = "block";
846
847 // Update progress bar
848 const progressBar = progressNav.querySelector('.progress-bar') as HTMLElement;
849 if (progressBar) {
850 progressBar.style.width = `${progress.percentage}%`;
851 progressBar.setAttribute('aria-valuenow', progress.percentage.toString());
852
853 // Change to green when reaching 100%
854 if (progress.percentage >= 100) {
855 progressBar.classList.remove('progress-bar-striped', 'progress-bar-animated');
856 progressBar.classList.add('bg-success');
857 } else {
858 progressBar.classList.add('progress-bar-striped', 'progress-bar-animated');
859 progressBar.classList.remove('bg-success');
860 }
861 }
862
863 // Update percentage text
864 const percentageText = progressNav.querySelector('.text-light');
865 if (percentageText) {
866 percentageText.textContent = `${progress.percentage}%`;
867 }
868
869 // Update operation text
870 const operationText = progressNav.querySelector('span');
871 if (operationText && progress.operation) {
872 operationText.textContent = progress.operation;
873 }
874
875 // Show spinner for progress < 100%

Callers 1

initWebSocketFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected