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

   ## What happens
   
   Three top-level menu destinations render a completely empty `main`:
   
   ```
   /accounting     main text chars=0
   /organization   main text chars=0
   /system         main text chars=0
   ```
   
   Measured as `document.querySelector('main').innerText.trim().length` after 
the route settles, against the local docker stack. No card, no list, no links, 
no table, no error — nothing.
   
   ![The Accounting screen, 
empty](https://raw.githubusercontent.com/Aman-Mittal/fineract-backoffice-ui/assets/issue-screenshots/blank-section-landing.png)
   
   The URL is right, the sidebar highlights the section, the tab title is 
right. The page is just blank.
   
   ## Why it happens
   
   Each is a parent route that declares a `title` and lazy-loads its children, 
with no component of its own and no redirect to a default child. 
`app.routes.ts` for accounting:
   
   ```ts
   {
     path: 'accounting',
     title: 'nav.accounting',
     loadChildren: () => 
import('./features/accounting/accounting.routes').then((m) => 
m.ACCOUNTING_ROUTES),
   }
   ```
   
   `ACCOUNTING_ROUTES` has no `path: ''` entry, so nothing matches the bare 
section path.
   
   ## Why it matters
   
   These are not obscure deep links — they are three of the twenty-five 
top-level groups in the navigation, and two of them (`organization`, `system`) 
are where an administrator starts. A new user clicks Accounting, gets a blank 
screen, and has no way to tell whether the application is broken, whether their 
role lacks a permission, or whether the page is still loading. All three look 
identical when nothing renders.
   
   It also makes the section unreachable by URL: bookmarking or sharing 
`/accounting` gets the recipient a blank page rather than the section.
   
   ## Two ways to fix it
   
   Either would do, and the choice is a product one:
   
   1. **Redirect to a first child.** `{ path: '', redirectTo: 
'chart-of-accounts', pathMatch: 'full' }` inside each section's routes. 
Cheapest, and matches what the sidebar already does when a group is expanded.
   2. **Give the section a landing screen** listing what is in it, which is 
also somewhere to put the section's own explanation and permission-gated tiles.
   
   Option 1 is the smaller change; option 2 is the better answer if these 
sections are meant to be navigable destinations rather than menu folders. 
Whichever is chosen, all three should be consistent with each other.
   
   ## How to check it
   
   ```
   npm start
   # sign in, then visit each directly
   /accounting        → blank
   /organization      → blank
   /system            → blank
   ```
   
   Or without a browser: none of the three sections' `*.routes.ts` files 
contains a `path: ''` entry.
   
   ```
   grep -c "path: ''" src/app/features/accounting/accounting.routes.ts
   ```
   
   ## Environment
   
   `main` at `55abe539`, `apache/fineract:latest` via 
`deploy/docker-compose-e2e.yml`, Chromium at 1440x900 and at 412x915 — blank at 
both widths.
   
   Found while working on the guided tour: the tour has nothing to point at on 
these three screens, which is what drew attention to them. Not caused by that 
work, and present on `main` before it.
   


-- 
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