LearnNewsExamplesServices
Frontmatter
id7052
titlePhase 2: Email List View
stateClosed
labels
enhancement
assigneestobiu
createdAtJul 14, 2025, 5:47 PM
updatedAtJul 14, 2025, 6:08 PM
githubUrlhttps://github.com/neomjs/neo/issues/7052
authortobiu
commentsCount0
parentIssue7048
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJul 14, 2025, 6:08 PM

Phase 2: Email List View

Closed v10.0.0-beta.6 enhancement
tobiu
tobiu commented on Jul 14, 2025, 5:47 PM

Goal: Implement the email list pane using a Neo.mjs grid to display a list of emails.

Sub-Tasks:

  1. Create Mock Data:
    • Populated the apps/email/store/Emails.mjs with hardcoded sample email data.
  2. 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.
  3. 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.
  4. 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.
tobiu assigned to @tobiu on Jul 14, 2025, 5:47 PM
tobiu added the enhancement label on Jul 14, 2025, 5:47 PM
tobiu added parent issue #7048 on Jul 14, 2025, 5:47 PM
tobiu referenced in commit 7e70ab9 - "Phase 2: Email List View #7052" on Jul 14, 2025, 5:53 PM
tobiu closed this issue on Jul 14, 2025, 6:08 PM