Mail · Writing: the composer, recipients that suggest, a signature, send later
MailComposer writes a message: To, and Cc and Bcc once asked for, as tag fields that suggest contacts and mark what is not an address; the subject and the words; the files, each with a way off; the signature under the words. Send wakes once there is someone to send to and every address is one; it hands over the draft now or at a time, and Discard lets it go. A new start from the owner begins the draft over. forms::TagInput now suggests: the rows that hold the typed words float under it through the list Combobox uses; Up, Down and Enter pick, and Escape sets them aside. RecipientInput points to it. ScheduleSend offers tomorrow morning, tomorrow afternoon, Monday morning, or a day and hour picked in a dialog. SignatureEditor writes the lines and shows how they sit under a message; it tells the owner's echo from a new signature, so the caret stays. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
48118499ae
commit
84c3dc16de
14 files changed
+1425
-12
No files matched your search
@@ -9,6 +9,7 @@ use gpui::{AnyElement, App, IntoElement, ParentElement, SharedString, Styled, Wi
|
||||
use jiff::{SignedDuration, Timestamp};
|
||||
|
||||
mod read;
|
||||
mod write;
|
||||
|
||||
use super::Page;
|
||||
use crate::{
|
||||
@@ -43,6 +44,14 @@ const SCRIPT: &[Step] = &[
|
||||
Step::UpAt("mail-thread", 200.0, 120.0),
|
||||
Step::Wait(300),
|
||||
Step::Shot("thread-opened"),
|
||||
Step::DownAt("mail-composer", 270.0, 31.0),
|
||||
Step::UpAt("mail-composer", 270.0, 31.0),
|
||||
Step::Type("an"),
|
||||
Step::Wait(200),
|
||||
Step::Shot("recipient-suggested"),
|
||||
Step::Key("enter"),
|
||||
Step::Wait(200),
|
||||
Step::Shot("recipient-added"),
|
||||
];
|
||||
|
||||
fn boxes(window: &mut Window, cx: &mut App) -> impl IntoElement + use<> {
|
||||
@@ -212,5 +221,8 @@ fn render(window: &mut Window, cx: &mut App) -> AnyElement {
|
||||
.child(zero(cx))
|
||||
.child(read::reader(cx))
|
||||
.child(read::thread(cx))
|
||||
.child(write::composer(window, cx))
|
||||
.child(write::signature(window, cx))
|
||||
.child(write::schedule(window, cx))
|
||||
.into_any_element()
|
||||
}
|
||||
Reference in new issue
Block a user