Goal: Implement the email list pane using a Neo.mjs grid to display a list of emails.
Sub-Tasks:
- Create Mock Data:
- Populated the
apps/email/store/Emails.mjs with hardcoded sample email data.
- Integrate Grid:
- Replaced the "Email List" placeholder in
MainView.mjs with a Neo.grid.Container.
- Configured the grid to use the
Emails store and defined the columns.
- Styling & Layout:
- Wrapped the grid in a styled
div to ensure correct flexbox layout.
- Used the
wrapperStyle config on the grid to control its internal dimensions, which is necessary for the grid's layout engine.
- Enable Interoperability:
- Enhanced
functional.component.Base to propagate the parent's windowId to all child components. This was a critical fix to ensure the classic grid component could function correctly when rendered inside our functional MainView.
Learnings & Decisions:
- Complex Component Integration: Integrating a complex classic component like
grid.Container into a functional component requires more than just placing it in the VDOM. We must provide layout-critical styles (like height and width) via the component's specific config (wrapperStyle) for it to render correctly.
windowId is Crucial: The windowId must be manually propagated from functional parents to classic children. This is a fundamental requirement for interoperability and ensuring that events, theming, and other window-specific functionalities work correctly. This led to enhancing functional.component.Base and creating a dedicated ticket for it.
Next Steps:
- Implement selection handling on the grid to prepare for the detail view.
Goal: Implement the email list pane using a Neo.mjs grid to display a list of emails.
Sub-Tasks:
apps/email/store/Emails.mjswith hardcoded sample email data.MainView.mjswith aNeo.grid.Container.Emailsstore and defined the columns.divto ensure correct flexbox layout.wrapperStyleconfig on the grid to control its internal dimensions, which is necessary for the grid's layout engine.functional.component.Baseto propagate the parent'swindowIdto all child components. This was a critical fix to ensure the classic grid component could function correctly when rendered inside our functionalMainView.Learnings & Decisions:
grid.Containerinto a functional component requires more than just placing it in the VDOM. We must provide layout-critical styles (likeheightandwidth) via the component's specific config (wrapperStyle) for it to render correctly.windowIdis Crucial: ThewindowIdmust be manually propagated from functional parents to classic children. This is a fundamental requirement for interoperability and ensuring that events, theming, and other window-specific functionalities work correctly. This led to enhancingfunctional.component.Baseand creating a dedicated ticket for it.Next Steps: