- current locale is obtained using
navigator.language
. In case no locale is set, 'sv-SE' is used - search is debounced with a 300ms delay and shows result in search as you type manner. Only customer name is used as a search key for now
- if a different club is choosen from the menu, the filters will be reset
- filters will be preserved across pages (i.e the paginated data) for the same club's invoices
- There are two backend apis:
/clubs
and/invoices
- First all the clubs are fetched and the first one is choosen as default
- Then all the invoices associated to this club are fetched and shown. Changing the club triggers call to the
invoices
api
components
: contains react components, with most of state being located incomponents/homeTabs/InvoicesPanel.tsx
config
: global constantshooks
: some hooks for data fetchingicons
: svg icons with their fill color set tocurrentColor
store
: contains Jotai atoms for app's state managementimages.d.ts
: see last heading below
- write tests
- perf audit
- cleanup code
- Reach UI as a building block for accessible components
- jotai for client state management
- swr for data fetching and server state management
- SVGR for handling svg icons
- react-intl for localization
- react-error-boundary
- react-focus-lock to lock foucs in filter ui when it is open