fix: split category fetch, safe localStorage, aria-labels on icon buttons
- TreeLibraryPage: split categories into a mount-only fetch so filter changes only re-fetch trees (not categories every time) - Add safeGetItem/safeSetItem/safeRemoveItem helpers in utils.ts to prevent crashes in private browsing or when storage is unavailable - Replace raw localStorage calls in ScratchpadSidebar, TreeNavigationPage, TreeEditorPage, and treeEditorStore with safe wrappers - Add aria-label to 20 icon-only buttons across 8 component files for screen reader accessibility Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -81,6 +81,7 @@ export function CategoryRow({
|
||||
'hover:bg-white/10 hover:text-white'
|
||||
)}
|
||||
title="Edit category"
|
||||
aria-label="Edit category"
|
||||
>
|
||||
<Edit className="h-4 w-4" />
|
||||
</button>
|
||||
@@ -94,6 +95,7 @@ export function CategoryRow({
|
||||
'hover:bg-accent hover:text-accent-foreground'
|
||||
)}
|
||||
title="Archive category"
|
||||
aria-label="Archive category"
|
||||
>
|
||||
<Archive className="h-4 w-4" />
|
||||
</button>
|
||||
@@ -106,6 +108,7 @@ export function CategoryRow({
|
||||
'hover:bg-accent hover:text-accent-foreground'
|
||||
)}
|
||||
title="Restore category"
|
||||
aria-label="Restore category"
|
||||
>
|
||||
<RotateCcw className="h-4 w-4" />
|
||||
</button>
|
||||
|
||||
Reference in New Issue
Block a user