Add dismiss button to progress widget completion state
Shows an × button in the top-right of the completion card so users can permanently hide the widget once they've seen the success message. Dismissal is stored in localStorage (same pattern as the collapse state) so it persists across page loads without requiring a DB migration. The widget hides itself on the next load before any layout is shown, avoiding a flash. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,11 +1,20 @@
|
||||
(function () {
|
||||
var STORAGE_KEY = 'shopProgressCollapsed';
|
||||
var STORAGE_KEY = 'shopProgressCollapsed';
|
||||
var DISMISSED_KEY = 'shopProgressDismissed';
|
||||
var widget = document.getElementById('shopProgressWidget');
|
||||
if (!widget) return;
|
||||
|
||||
var body = document.getElementById('shopProgressBody');
|
||||
var toggle = document.getElementById('shopProgressToggle');
|
||||
var chevron = document.getElementById('shopProgressChevron');
|
||||
// Hide permanently if user dismissed the completion state
|
||||
try {
|
||||
if (localStorage.getItem(DISMISSED_KEY) === '1') {
|
||||
widget.style.display = 'none';
|
||||
return;
|
||||
}
|
||||
} catch (e) { }
|
||||
|
||||
var body = document.getElementById('shopProgressBody');
|
||||
var toggle = document.getElementById('shopProgressToggle');
|
||||
var chevron = document.getElementById('shopProgressChevron');
|
||||
|
||||
function setCollapsed(collapsed) {
|
||||
body.style.display = collapsed ? 'none' : '';
|
||||
@@ -14,7 +23,7 @@
|
||||
try { localStorage.setItem(STORAGE_KEY, collapsed ? '1' : '0'); } catch (e) { }
|
||||
}
|
||||
|
||||
// Restore on load
|
||||
// Restore collapse state on load
|
||||
try {
|
||||
if (localStorage.getItem(STORAGE_KEY) === '1') setCollapsed(true);
|
||||
} catch (e) { }
|
||||
@@ -22,4 +31,13 @@
|
||||
toggle.addEventListener('click', function () {
|
||||
setCollapsed(body.style.display === 'none' ? false : true);
|
||||
});
|
||||
|
||||
// Dismiss button — completion state only
|
||||
var dismiss = document.getElementById('shopProgressDismiss');
|
||||
if (dismiss) {
|
||||
dismiss.addEventListener('click', function () {
|
||||
widget.style.display = 'none';
|
||||
try { localStorage.setItem(DISMISSED_KEY, '1'); } catch (e) { }
|
||||
});
|
||||
}
|
||||
}());
|
||||
|
||||
Reference in New Issue
Block a user