Mailspring/internal_packages/composer-signature/lib/signature-composer-extension.es6
Ben Gotow 2e2ecf0647 fix(quoted-text): div vs blockquote, signature cleanup #1746
Summary:
Previously we always created <blockquote class="gmail_quote"> to wrap quoted text. This is not correct.
Gmail uses blockquotes only when it wants visual indentation, and <div>s to wrap other quoted text, like forwarded
messages which are not displayed indented.

This diff updates N1 to match Gmail exactly. Note that for replies, Gmail actually nests a blockquote.gmail_quote
inside a div.gmail_quote.

I also updated signature handling because it turns out the regexp that was removing existing signatures would blow
away any and all divs until it reached a <blockquote> tag.

Test Plan: See updated specs. Manually tested by creating a thread in Google Inbox and then performing fwd and reply in both N1 and Inbox. Results match.

Reviewers: juan, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2750
2016-03-17 13:11:00 -07:00

25 lines
821 B
JavaScript

import {ComposerExtension} from 'nylas-exports';
import SignatureUtils from './signature-utils';
import SignatureStore from './signature-store';
export default class SignatureComposerExtension extends ComposerExtension {
static prepareNewDraft = ({draft}) => {
const accountId = draft.accountId;
const signature = SignatureStore.signatureForAccountId(accountId);
if (!signature) {
return;
}
draft.body = SignatureUtils.applySignature(draft.body, signature);
}
static finalizeSessionBeforeSending = ({session}) => {
// remove the <signature> element from the DOM,
// essentially unwraps the signature
const body = session.draft().body;
const changed = body.replace(/<\/?signature>/g, '');
if (body !== changed) {
session.changes.add({body: changed})
}
}
}