Files
Krow-workspace/.claude/agent-memory/mobile-builder/MEMORY.md
Achintha Isuru bd98a112a0 feat: add shimmer skeletons for various sections in the staff profile and onboarding features
- 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.
2026-03-10 15:20:24 -04:00

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.itemBuilder takes (int index) -- single parameter, not (BuildContext, int)
  • UiShimmerBox.borderRadius accepts BorderRadius? (nullable), uses UiConstants.radiusMd as default
  • All shimmer shapes render as solid white containers; the parent UiShimmer applies the animated gradient
  • Exported via design_system.dart barrel

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: HomeStatus enum (initial, loading, loaded, error)
  • Shifts bloc: ShiftsStatus enum + sub-loading flags (availableLoading, historyLoading)
  • Payments bloc: uses sealed state classes (PaymentsLoading, PaymentsLoaded, PaymentsError)

UiConstants Spacing Tokens

  • Use UiConstants.space1 through UiConstants.space24 for spacing
  • Radius: UiConstants.radiusSm, radiusMd, radiusLg, radiusFull, radiusBase, radiusMdValue (double)
  • UiConstants.radiusFull is a BorderRadius, UiConstants.radiusMdValue is a double

Barrel Files (Staff Features)

  • Shifts: lib/staff_shifts.dart exports modules only
  • Payments: lib/staff_payements.dart (note: typo in filename) exports module only
  • Home: lib/staff_home.dart exports 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