- Implemented ProfilePageSkeleton for loading state in staff profile. - Added ReliabilityScoreSkeleton and ReliabilityStatsSkeleton for reliability metrics. - Created CertificatesSkeleton and related components for loading certificates. - Developed DocumentsSkeleton and associated document card skeletons. - Introduced TaxFormsSkeleton for loading tax forms. - Added BankAccountSkeleton and its components for bank account loading state. - Created TimeCardSkeleton for displaying time card loading state. - Implemented AttireSkeleton for loading attire items. - Added PersonalInfoSkeleton for loading personal information. - Developed FaqsSkeleton for loading FAQ sections. - Created PrivacySecuritySkeleton for loading privacy settings.
3.7 KiB
3.7 KiB
Mobile Builder Agent Memory
Design System - Shimmer Primitives
- Shimmer widgets are in
packages/design_system/lib/src/widgets/shimmer/ - Available:
UiShimmer,UiShimmerBox,UiShimmerCircle,UiShimmerLine,UiShimmerListItem,UiShimmerStatsCard,UiShimmerSectionHeader,UiShimmerList UiShimmerList.itemBuildertakes(int index)-- single parameter, not(BuildContext, int)UiShimmerBox.borderRadiusacceptsBorderRadius?(nullable), usesUiConstants.radiusMdas default- All shimmer shapes render as solid white containers; the parent
UiShimmerapplies the animated gradient - Exported via
design_system.dartbarrel
Staff App Feature Locations
- Shifts:
packages/features/staff/shifts/-- has ShiftsPage (tabbed: MyShifts/Find/History) + ShiftDetailsPage - Home:
packages/features/staff/home/-- WorkerHomePage with sections (TodaysShifts, TomorrowsShifts, Recommended, Benefits, QuickActions) - Payments:
packages/features/staff/payments/-- PaymentsPage with gradient header + stats + payment history - Home cubit:
HomeStatusenum (initial, loading, loaded, error) - Shifts bloc:
ShiftsStatusenum + sub-loading flags (availableLoading,historyLoading) - Payments bloc: uses sealed state classes (
PaymentsLoading,PaymentsLoaded,PaymentsError)
UiConstants Spacing Tokens
- Use
UiConstants.space1throughUiConstants.space24for spacing - Radius:
UiConstants.radiusSm,radiusMd,radiusLg,radiusFull,radiusBase,radiusMdValue(double) UiConstants.radiusFullis aBorderRadius,UiConstants.radiusMdValueis adouble
Barrel Files (Staff Features)
- Shifts:
lib/staff_shifts.dartexports modules only - Payments:
lib/staff_payements.dart(note: typo in filename) exports module only - Home:
lib/staff_home.dartexports module only - These barrel files only export modules, not individual widgets -- skeleton widgets don't need to be added
Client App Feature Locations
- Coverage:
packages/features/client/client_coverage/ - Home:
packages/features/client/home/(no loading spinner -- renders default data during load) - Billing:
packages/features/client/billing/(billing_page, pending_invoices_page, invoice_ready_page) - Reports:
packages/features/client/reports/(reports_page with metrics_grid, plus 6 sub-report pages) - Reports barrel:
widgets/reports_page/index.dart - Hubs:
packages/features/client/hubs/(client_hubs_page + hub_details_page + edit_hub_page)
Staff Profile Sections (shimmer done)
- Compliance: certificates, documents, tax_forms -- all have shimmer skeletons
- Finances: staff_bank_account, time_card -- all have shimmer skeletons
- Onboarding: attire, profile_info (personal_info_page only) -- have shimmer skeletons
- Support: faqs, privacy_security (including legal sub-pages) -- have shimmer skeletons
- Pages that intentionally keep CircularProgressIndicator (action/submit spinners):
- form_i9_page, form_w4_page (submit button spinners)
- experience_page (save button spinner)
- preferred_locations_page (save button + overlay spinner)
- certificate_upload_page, document_upload_page, attire_capture_page (form/upload pages, no initial load)
- language_selection_page (no loading state, static list)
- LegalDocumentSkeleton is shared between PrivacyPolicyPage and TermsOfServicePage
Key Patterns Observed
- BenefitsOverviewPage also has CircularProgressIndicator (not shimmer-ified yet)
- ShiftDetailsPage has a dialog-level spinner in the "applying" dialog -- this is intentional, not a page loading state
- Hub details/edit pages use CircularProgressIndicator as action overlays (save/delete) -- keep as-is, not initial load
- Client home page has no loading spinner; it renders with default empty dashboard data