@@ -34,24 +34,18 @@ const sortModeSelect = document.getElementById("sort-mode");
3434const themeToggleBtn = document . getElementById ( "theme-toggle" ) ;
3535const installBtn = document . getElementById ( "install-btn" ) ;
3636const weeklySummaryEl = document . getElementById ( "task-weekly-summary" ) ;
37- const advancedFieldsToggleBtn = document . getElementById (
38- "toggle-advanced-fields" ,
39- ) ;
40- const advancedFieldsContainer = document . getElementById (
41- "advanced-task-options" ,
42- ) ;
43- const advancedFiltersToggleBtn = document . getElementById (
44- "toggle-advanced-filters" ,
45- ) ;
46- const advancedFiltersContainer = document . getElementById (
47- "advanced-filters-container" ,
48- ) ;
37+ const advancedFieldsToggleBtn = document . getElementById ( "toggle-advanced-fields" ) ;
38+ const advancedFieldsContainer = document . getElementById ( "advanced-task-options" ) ;
39+ const advancedFiltersToggleBtn = document . getElementById ( "toggle-advanced-filters" ) ;
40+ const advancedFiltersContainer = document . getElementById ( "advanced-filters-container" ) ;
41+ const advancedFiltersToggleContainer = document . querySelector ( ".advanced-filters-toggle-container" ) ;
4942
5043// Global Variables
5144let activeTab = "schedule" ; // or: no-time
5245const taskTimers = { } ; // store timeout IDs per task id
5346let hasShownNotificationsPrompt = false ; // to show notifications popup only once
5447let deferredPrompt = null ; // for PWA install
48+ let cachedTasks = [ ] ; // store tasks in memory for faster access
5549
5650// ============== Event Listeners ================
5751// when click on tab buttons
@@ -420,6 +414,7 @@ async function updateUI() {
420414 showLoadingState ( ) ;
421415
422416 const allTasks = await getAllTasksFromDB ( ) ;
417+ cachedTasks = allTasks ;
423418
424419 // Ensure any tasks whose endTime has passed are marked as overdue in DB
425420 const now = new Date ( ) ;
@@ -447,6 +442,11 @@ async function updateUI() {
447442 renderTasksInPage ( tasksToRender ) ;
448443 updateFilterBadges ( ) ;
449444 updateWeeklySummary ( ) ;
445+
446+ // show advanced filters toggle button if there are tasks
447+ if ( cachedTasks . length > 0 && advancedFiltersToggleContainer ) {
448+ advancedFiltersToggleContainer . classList . remove ( 'd-none' ) ;
449+ }
450450 } catch ( error ) {
451451 showToast (
452452 "✗ Failed to fetch tasks. Please refresh the page." ,
@@ -755,7 +755,12 @@ function updateFilterBadges() {
755755function updateWeeklySummary ( ) {
756756 if ( ! weeklySummaryEl ) return ;
757757 const count = getCompletedThisWeekCount ( ) ;
758- weeklySummaryEl . textContent = `Tasks completed this week: ${ count } ` ;
758+ if ( cachedTasks . length > 0 ) {
759+ weeklySummaryEl . textContent = `Tasks completed this week: ${ count } ` ;
760+ weeklySummaryEl . classList . remove ( "d-none" ) ;
761+ } else {
762+ weeklySummaryEl . classList . add ( "d-none" ) ;
763+ }
759764}
760765
761766/* =================== Theme Handling =================== */
0 commit comments