Support #10430
openWeb to Mobile App Replication (Customers & Projects & Quotations &Follow-Ups Modules)
100%
Subtasks
Related issues
Updated by Ramu Kodali 29 days ago
- Status changed from New to Resolved
- % Done changed from 0 to 100
Today I worked on the Regal Solar mobile app, bringing across functionality that so far existed only in the web admin so both clients behave the same way. The largest piece was the notification system: I ported the web's role-based notification policy, access rules and customer-visibility rules to mobile, added a shared useNotifications hook so the bell badge on the dashboards and the notification centre stay in sync, and rebuilt the Notifications screen on top of it. It fetches from the same endpoint, subscribes to the notification socket event for realtime pushes, re-applies the role policy locally because socket pushes bypass the server-side filter (exactly as web does), and falls back to 30-second polling whenever the socket is disconnected; tapping a notification now routes to the equivalent screen the web would open, using the same decision tree translated to React Navigation targets. Supporting that, I ported the web's role-access matrix and legacy-role aliases into the mobile app so the access sets stay identical across web, mobile and the backend middleware — drifting there only produces screens that render and then fail with a 403. I also refactored customer creation: the form was duplicated between the create-customer screen and the customer modal, so I extracted a single shared CustomerForm component that both now use, removing roughly 1,200 lines of duplication. On top of that I extended the follow-ups feature with a follow-up notes modal and improvements to the follow-up and add-note modals and the follow-ups screen; brought the quotation financial calculations across into a quotationFinancials helper that mirrors the backend, so the Total System Cost previewed on the mobile form matches exactly what the server will store (including keeping depreciation reference-only and out of the total, as the backend does); added an admin project stage update screen; and ported the SREC Part 1 (NJ ADI) application field definitions 1:1 from the web form, keeping the field keys identical so drafts saved on one client read back correctly on the other.