fix(signature): coalesce null message_signature to empty string

users.message_signature is nullable, so currentUser.message_signature can
arrive as null for accounts without a signature set. Vue prop defaults
only kick in for undefined, so the null passed through v-model to the
Editor, which called MarkdownIt.parse(null) and threw 'Input data should
be a String', breaking the profile settings page.
This commit is contained in:
gabrieljablonski 2026-04-17 18:20:37 -03:00
parent 4d155e4c01
commit 4f7683e55a

View File

@ -42,7 +42,7 @@ const { fetchInboxSignatures, getInboxSignature, hasInboxSignature } =
const selectedInboxId = ref(INBOX_OPTION_DEFAULT);
const selectedInbox = ref(null);
const signature = ref(props.messageSignature);
const signature = ref(props.messageSignature ?? '');
const signaturePosition = ref(props.signaturePosition);
const signatureSeparator = ref(props.signatureSeparator);
const isSaving = ref(false);
@ -134,7 +134,7 @@ const messagePreview = computed(() => {
const loadSignatureForSelection = () => {
if (isDefaultSelected.value) {
signature.value = props.messageSignature;
signature.value = props.messageSignature ?? '';
signaturePosition.value = props.signaturePosition;
signatureSeparator.value = props.signatureSeparator;
return;
@ -142,12 +142,12 @@ const loadSignatureForSelection = () => {
const inboxSig = getInboxSignature(selectedInboxId.value);
if (inboxSig) {
signature.value = inboxSig.message_signature;
signature.value = inboxSig.message_signature ?? '';
signaturePosition.value = inboxSig.signature_position || 'top';
signatureSeparator.value = inboxSig.signature_separator || 'blank';
} else {
// Pre-fill with global signature for convenience
signature.value = props.messageSignature;
signature.value = props.messageSignature ?? '';
signaturePosition.value = props.signaturePosition;
signatureSeparator.value = props.signatureSeparator;
}