Skip to content

Full-width mail list  #8811

Closed
Closed
@marcoambrosini

Description

Feature Request

As a Nextcloud Mail user I may prefer to see as much information about a messages/thread as possible before I open it. The current view, for example, shows only a small part of the subject and preview text:

Screenshot 2023-08-25 at 14 37 17

Describe the solution you'd like

Allow me to switch to a full-width message/thread list. In other words, the three column design (nav + list + content) becomes two column: nav + list or nav + content. The user will see the list. When they navigate to a message/thread, the content shows.

To switch between the views we need a three way button or actions menu. This button is places next to the button for advanced search.

References

This is the trend in some of the major email apps as UX people realize that the idea of multitasking was a bit overrated.

Product Screenshot
Hey Screenshot 2023-08-25 at 15 29 18
Gmail Screenshot 2023-08-25 at 15 22 46
Spark Mail Screenshot 2023-08-25 at 15 25 36

Implementation

Right now Mail uses the following structure:

<NcContent>
  <Navigation />
  <AppContent>
    <div slot="list">
      <SearchMessages />
      <AppContentList>
        <Mailbox />
      </AppContentList>
    </div>
    <AppContentDetails />
  </AppContent>
</NcContent>

Ideally, we can keep the structure as-is, but enhance AppContent and ListItem to work with one or two columns:

List + content List only Content only
<NcContent>
  <Navigation />
  <AppContent layout="vertical-split">
    <div slot="list">
      <SearchMessages />
      <AppContentList>
        <ListItem layout="compact" />
      </AppContentList>
    </div>
    <AppContentDetails />
  </AppContent>
</NcContent>
<NcContent>
  <Navigation />
  <AppContent layout="list">
    <div slot="list">
      <SearchMessages />
      <AppContentList>
        <ListItem layout="wide" />
      </AppContentList>
    </div>
    <AppContentDetails /><!-- not rendered -->
  </AppContent>
</NcContent>
<NcContent>
  <Navigation />
  <AppContent layout="content">
    <div slot="list"><!-- not rendered -->
      <SearchMessages />
      <AppContentList>
        <ListItem layout="wide" />
      </AppContentList>
    </div>
    <AppContentDetails />
  </AppContent>
</NcContent>

Long code snipped short, we don't control the rendering, we just tell AppContent and ListItem the layout to render.

This gives us the following advantages

  1. We do not have to rip apart the ListItem with deep selectors or write a completely new component.
  2. The new layouts streamlines mobile view with desktop view.
  3. Other apps can use this too, e.g. to offer a better mobile view or a layout switch, if desired.
  4. It will be easy to implement Allow stacking message list and reading pane vertically #8309

Challenges

  • The table(-like) structure of AppContentList and ListItem for the list-only mode and potential wrapping components between (currently Mailbox, EnvelopeList and transition)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Type

No type

Projects

  • Status

    🎉 Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions