Skip to content

Epic: Refactor and Enhance the Email App #7048

@tobiu

Description

@tobiu

Summary

Overhaul the existing apps/email to be a showcase application for the new functional component architecture and the framework's multi-window capabilities. The goal is to create a simplified, client-side-only version of a modern email client like Gmail.

Rationale

A well-built, real-world example application is one of the most effective tools for driving framework adoption. The Email App is a perfect candidate to demonstrate:

  • Modern Component-Based UI: How to build a complex application using the new declarative functional components.
  • State Management: How to manage application state effectively in a functional context.
  • Advanced Features: How to leverage unique Neo.mjs features like multi-window support for a superior user experience.
  • Best Practices: Establish a reference architecture for building new applications with Neo.mjs.

This will serve as a powerful learning resource and a compelling demonstration of why developers should choose Neo.mjs.

Key Features to Implement

  1. Component Structure:

    • Refactor the entire UI to use functional components (defineComponent).
    • Create a clear, hierarchical component structure (e.g., MainContainer, EmailList, EmailDetails, ComposeOverlay).
  2. Basic Email Client UI:

    • Three-pane layout: Folders/Labels list, Email list, and selected Email detail view.
    • Use dummy/mock data for emails (e.g., from a JSON file).
  3. Compose and Reply:

    • "Compose" button opens a "New Email" view.
    • This view should initially be an overlay/dialog at the bottom right of the main application window.
  4. Multi-Window Experience:

    • The "Compose Email" overlay will have a "detach" button.
    • Clicking "detach" will move the compose view from the overlay into its own separate browser window or tab, allowing the user to continue writing their email there seamlessly.
    • The state of the email (recipient, subject, body) must be perfectly preserved during this transition.

Acceptance Criteria

  • The apps/email codebase is primarily based on functional components.
  • The application presents a clean, modern, three-pane email client UI.
  • The "Compose" functionality works as described, starting in an overlay.
  • The "detach" feature successfully moves the compose view to a new window without losing state.
  • The application is well-documented and serves as a high-quality example for the community.

Sub-issues

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions