Aman-Mittal opened a new issue, #577:
URL: https://github.com/apache/fineract-backoffice-ui/issues/577

   Opening a detail route for an id that does not exist leaves the operator on 
an empty screen with no explanation and no way forward.
   
   > **Screenshot:** _`/clients/view/99999` at 1280 px, dark theme — empty 
content area, toast at the bottom._ (attached below)
   
   ## What happens
   
   Navigating to `/clients/view/99999`:
   
   1. The content area renders the breadcrumb and nothing else. 
`main.content-area` contains **21 characters** of text in total — 
`"ClientsClient Details"`.
   2. A toast appears at the bottom of the viewport, then **auto-dismisses**.
   3. After it goes, the screen is blank. No message, no retry, no link back to 
the list. The breadcrumb still reads *Client Details* for a client that does 
not exist.
   
   ## The toast leaks backend copy
   
   The toast body is:
   
   ```
   The requested resource is not available.
   • [id] Client not found with valuer 99999.
   ```
   
   Two problems with showing this to an operator:
   
   - `[id]` is the API's field-name prefix, not something a user should read;
   - *"valuer"* is a typo carried straight through from the platform's error 
message.
   
   The UI is echoing the error payload rather than mapping the error to its own 
copy.
   
   ## Suggested fix
   
   - Render a persistent in-content state when the record cannot be loaded — a 
short explanation ("This client doesn't exist, or you don't have permission to 
view it") plus a **Back to clients** action. A transient toast is the wrong 
channel for a terminal state, because the information disappears while the 
broken screen stays.
   - Map API error codes to user-facing strings instead of printing the 
payload's `defaultUserMessage` / parameter name.
   - Consider the same treatment for the other `view/:id` routes (loans, 
savings, groups, centres), which share the shape.
   
   ## Related
   
   #223 covers the list case — a failed list load looking identical to an empty 
list. This is the detail-route counterpart: a failed *record* load looking 
identical to a page that simply has no content. Likely worth one shared 
error/empty component across both.
   
   ## Reproduction
   
   1. Sign in.
   2. Navigate to `/clients/view/99999`.
   3. Observe the empty content area and the toast; wait for the toast to 
dismiss.
   
   ## Tested against
   
   Deployed build of `main`, Chrome, 1280x800.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to