Advanced — Frontend#
Recipes for non-default flows on the React side. Each topic is standalone.
| Topic | Scenario |
|---|---|
| Building filterable dashboards | Multi-chart pages with shared filter context and ChartStore |
| Custom DataGridControls | Reusable toolbar with search, filter, export, and navigation |
| File upload with drag-and-drop | react-dropzone + Palmyra store post() for document uploads |
| Workflow timeline visualization | Mantine Timeline modal for approval history |
| Client-side Excel export | xlsx + file-saver for exporting the current grid page |
| Frontend ACL with permission codes | Login → cache → useAclAccess hook → conditional button/menu rendering |
| Dark/light theme switching | localStorage-persisted toggle with route-based overrides and pub-sub sync |
| Multilingual support with i18n | react-i18next setup with language switcher + translated Palmyra form labels |
| In-app discussion threads | Chat UI built on Palmyra form stores — no WebSocket needed |
| Production error handling | Centralized PalmyraStoreFactory error handler with cooldown, SweetAlert2, and toast dedup |