## Overview No `loading.tsx` exists in `frontend/app/`, so navigating to assets, dashboard, or reports shows nothing until data resolves. ## Tasks - [ ] Add `loading.tsx` to `app/(dashboard)/dashboard`, `assets`, `assets/[id]`, `reports`, `users`, and `departments`. - [ ] Build a reusable `Skeleton` primitive in `components/ui/` if absent. - [ ] Match each skeleton to its real layout (table rows, stat tiles, chart blocks) so content swaps in without layout shift. - [ ] Add inline loading states for React Query refetches, distinct from initial page load. - [ ] Respect `prefers-reduced-motion` — no shimmer when reduced motion is requested. ## Acceptance Criteria - [ ] Each listed route shows an immediate skeleton on navigation. - [ ] Layout does not shift when real content replaces the skeleton. - [ ] Animation is disabled under `prefers-reduced-motion`. ## Notes for Contributors Comment below to be assigned.
Overview
No
loading.tsxexists infrontend/app/, so navigating to assets, dashboard, or reports shows nothing until data resolves.Tasks
loading.tsxtoapp/(dashboard)/dashboard,assets,assets/[id],reports,users, anddepartments.Skeletonprimitive incomponents/ui/if absent.prefers-reduced-motion— no shimmer when reduced motion is requested.Acceptance Criteria
prefers-reduced-motion.Notes for Contributors
Comment below to be assigned.