Skip to content

[Feature]: A cleaner composer header, and an Attach sheet with icons and clearer names #137

Closed

Description

@wmcparla

Problem / Motivation

Two small things in the composer make it look less finished than the rest of the app:

  • The header of a new message reads "New Message". The empty From, To and Subject fields right below already say what the screen is, so the title repeats them and adds clutter to the header.
  • On a server with Files, the Attach sheet has two options that read like the same thing: "Upload from this device" and "Attach from Files". On a phone, "Files" is also the name of the system file app, so it isn't clear that the second one means the user's Files on the mail server. The rows are also plain text, while other sheets in the app (the attachment actions in a message, for example) show an icon on each row.

Proposed Solution

  • A new message has no header title. Reply, Reply All and Forward keep theirs, since those tell you something, and the draft status line under the title still shows.
  • Icons on the Attach sheet rows, sized and coloured like the attachment action sheet: image, camera, phone, folder (the folder icon is the one "Save to Files" already uses).
  • Names that tell the sources apart: Gallery, Camera, This device, Bulwark Files.
    • "This device" opens the system file picker, and "Bulwark Files" opens the Files picker.
    • Without server Files, the third row reads "This device" too, so the label doesn't change with the server.
    • On iOS the first row keeps "Photos & Videos", since iOS calls its library Photos.

The three new strings would be app-only keys in locales/rn, in every locale. "This device" and "Files" can reuse the webmail's existing translations. A PR with this is coming shortly.

Alternatives Considered

  • Merging "Upload from this device" and "Attach from Files" into one option: that would drop attaching from server Files, which the webmail has ([Feature]: Attach items from files webmail#1179), so it is not an option.
  • Keeping the current labels and adding icons only: the icons help, but "Attach from Files" next to a phone's own Files app still reads as the same thing.

Feature Area

Email

Mockups / Examples

The sheet would read, top to bottom: Gallery, Camera, This device, Bulwark Files, Cancel, each row with its icon on the left. Screenshots from a device build will be in the PR.

Additional Context

The header change is for new messages only, including a draft reopened from Drafts, which also showed "New Message" until now.

🤖 Generated with Claude Code

Activity

  1. bulwark-warden commented on Nov 13, 2026

    @bulwark-warden

    One thing for the PR: the Maestro flows use the "New Message" title as their sign that the composer is open, so removing it means giving them another anchor.

    For the icons, the Attach sheet is built from the composer's own SheetOption, which has only label, destructive and onPress (ComposeScreen.tsx#L324-L328). The email ActionSheetItem already has an icon?: React.ReactNode (ActionSheet.tsx#L12-L20). The current labels and the hasServerFiles switch are in ComposeScreen.tsx#L2150-L2165.

    Bulwark Warden is an AI assistant and can be wrong. It answers from the docs, the code and earlier issues, and links its sources.

  2. rathlinus commented on Nov 15, 2026

    @rathlinus
    Member

    Shipped in #138. A new message no longer has a title in the header (Reply, Reply All and Forward keep theirs), and the Attach sheet has an icon on each row. The rows are now Gallery (Photos & Videos on iOS), Camera, This device and Bulwark Files.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions