|
|
009ab50b47
|
major refactor of the dashboard and react-openapi integration (#1)
## Summary
This MR introduces a major refactor of the dashboard and react-openapi integration, focusing on configurability, separation of concerns, and improved extensibility.
---
## Key Changes
### 1. OpenAPI / Admin Refactor
* Extracted `ConfigContext` into a dedicated provider.
* Introduced `AppProvider` to encapsulate:
* Config loading
* API client initialization
* React Query setup
* Removed internal `QueryClientProvider` from `Admin` for better composability.
* `Admin` now supports both:
* Standalone usage
* Nested usage inside an existing provider
### 2. Resource System Improvements
* Added `hidden` flag to `ResourceConfig` and overrides.
* Admin UI now filters out hidden resources.
* Added `useResourceByName` helper for dynamic resource access.
* Improved `useResource`:
* Handles undefined config safely
* Adds guards for missing endpoints
* Disables queries when endpoint is absent
### 3. API Client Enhancements
* Added custom `paramsSerializer`:
* Serializes arrays without `[]`
* Ensures backend-compatible query formats
### 4. Dashboard Architecture Overhaul
* Replaced hardcoded dashboard with **config-driven system**:
* Introduced `ConfigurableDashboard`
* Dashboard sections defined via config
* New state model:
* `mode` (expense/income)
* `periodType` (rolling/calendar)
* `comparison`
* `selectedPeriodId`
### 5. Component Refactor (View / Logic Split)
* Split major components into:
* `.tsx` (logic/controller)
* `.view.tsx` (presentation)
* `.models.ts` (types)
* Applied to:
* Dashboard
* HistoryChart
* ProgressCard
* LatestItems
### 6. HistoryChart Redesign
* Fully rebuilt using report-driven data
* Supports:
* Weekly / Monthly / Yearly / FY / Full views
* Rolling vs Calendar periods
* Comparison mode (auto-aligned offsets)
* Introduced:
* Bucket merging logic
* Dynamic comparison attachment
### 7. Reporting Integration
* Dashboard now powered by:
* `useReport`
* `prepareReport`
* Removes need for multiple manual API calls
### 8. UI / UX Improvements
* Theme-aware color system
* Dynamic accent colors per mode
* Cleaner layout using section-based rendering
* Improved selection and interaction in charts
### 9. Cleanup & Removals
* Removed legacy components:
* Old `HistoryChart`
* Old `ProgressCard`
* Simplified Header layout spacing
---
## Behavior Changes
* Hidden resources are no longer visible in Admin UI.
* Dashboard is now entirely configuration-driven.
* API query params for arrays no longer use `[]`.
* Resource hooks no longer crash on missing config.
---
## Risks / Considerations
* Dashboard depends on correct configuration structure.
* Hidden flag may unintentionally hide resources if misconfigured.
* Query param serialization change must align with backend expectations.
---
## Follow-ups
* Add typing improvements to remove `@ts-ignore` in `GenericForm`.
* Extend dashboard config with more reusable section presets.
* Add tests for report aggregation and comparison logic.
---
Reviewed-on: #1
Co-authored-by: Vishesh 'ironeagle' Bangotra <aetoskia@gmail.com>
Co-committed-by: Vishesh 'ironeagle' Bangotra <aetoskia@gmail.com>
|
2026-05-07 11:00:54 +00:00 |
|
|
|
3f51d2f869
|
fixes
|
2026-04-07 12:01:22 +05:30 |
|
|
|
3704bd0c23
|
refactored types from HistoryChart.tsx
|
2026-04-07 11:32:32 +05:30 |
|
|
|
f4e5979c00
|
fixed compare
|
2026-04-07 10:49:10 +05:30 |
|
|
|
e6c7778c08
|
comparison
|
2026-04-06 18:39:19 +05:30 |
|
|
|
fc88703a38
|
rolling and calender toggle
|
2026-04-06 18:27:05 +05:30 |
|
|
|
787324260c
|
rolling and calender toggle
|
2026-04-06 18:07:38 +05:30 |
|
|
|
8a866566ba
|
aggre based time week, month, year renamed to daily, weekly, monthly
|
2026-04-06 17:37:45 +05:30 |
|
|
|
4eca3b7124
|
calcuation fixes
|
2026-04-04 22:35:17 +05:30 |
|
|
|
6abed4e72a
|
grid fixes
|
2026-04-04 22:30:30 +05:30 |
|
|
|
214c0be44e
|
dashboard fixes
|
2026-04-04 22:08:39 +05:30 |
|
|
|
68337ba312
|
dashboard loader
|
2026-04-04 20:14:39 +05:30 |
|
|
|
84059a84b5
|
rough dashboard components
|
2026-04-04 19:45:52 +05:30 |
|