diff --git a/src/components/compose.jsx b/src/components/compose.jsx
index 21bf5ea2..b9118354 100644
--- a/src/components/compose.jsx
+++ b/src/components/compose.jsx
@@ -23,6 +23,7 @@ import showToast from '../utils/show-toast';
import states, { saveStatus } from '../utils/states';
import store from '../utils/store';
import {
+ getAPIVersions,
getCurrentAccount,
getCurrentAccountNS,
getCurrentInstanceConfiguration,
@@ -178,6 +179,8 @@ function Compose({
const prefs = getPreferences();
+ const supportsNativeQuote = getAPIVersions()?.mastodon >= 7;
+
const oninputTextarea = () => {
if (!textareaRef.current) return;
textareaRef.current.dispatchEvent(new Event('input'));
@@ -595,9 +598,11 @@ function Compose({
scheduledAt,
quoteApprovalPolicy,
},
- quoteStatus: {
- ...quoteStatus,
- },
+ quoteStatus: quoteStatus
+ ? {
+ ...quoteStatus,
+ }
+ : null,
};
if (
!deepEqual(backgroundDraft, prevBackgroundDraft.current) &&
@@ -1204,18 +1209,23 @@ function Compose({
params.quoted_status_id = quoteStatus.id;
params.quote_approval_policy = quoteApprovalPolicy;
}
- if (editStatus && supports('@mastodon/edit-media-attributes')) {
- params.media_attributes = mediaAttachments.map(
- (attachment) => {
- return {
- id: attachment.id,
- description: attachment.description,
- // focus
- // thumbnail
- };
- },
- );
- } else if (!editStatus) {
+ if (editStatus) {
+ if (supportsNativeQuote) {
+ params.quote_approval_policy = quoteApprovalPolicy;
+ }
+ if (supports('@mastodon/edit-media-attributes')) {
+ params.media_attributes = mediaAttachments.map(
+ (attachment) => {
+ return {
+ id: attachment.id,
+ description: attachment.description,
+ // focus
+ // thumbnail
+ };
+ },
+ );
+ }
+ } else {
params.visibility = visibility;
// params.inReplyToId = replyToStatus?.id || undefined;
params.in_reply_to_id = replyToStatus?.id || undefined;
@@ -1674,36 +1684,38 @@ function Compose({
hidden={uiState === 'loading'}
/>
)}
-
+
+ {quoteApprovalPolicy === 'followers' && (
+
+ )}
+ {quoteApprovalPolicy === 'nobody' && (
+
+ )}
+
+
+ )}
f.name), )
-#: src/components/compose.jsx:653
+#: src/components/compose.jsx:658
msgid "{0, plural, one {File {1} is not supported.} other {Files {2} are not supported.}}"
msgstr "{0, plural, one {File {1} is not supported.} other {Files {2} are not supported.}}"
-#: src/components/compose.jsx:663
-#: src/components/compose.jsx:681
-#: src/components/compose.jsx:1878
+#: src/components/compose.jsx:668
+#: src/components/compose.jsx:686
+#: src/components/compose.jsx:1890
#: src/components/file-picker-input.jsx:38
msgid "{maxMediaAttachments, plural, one {You can only attach up to 1 file.} other {You can only attach up to # files.}}"
msgstr ""
-#: src/components/compose.jsx:905
+#: src/components/compose.jsx:910
msgid "Pop out"
msgstr "Pop out"
-#: src/components/compose.jsx:912
+#: src/components/compose.jsx:917
msgid "Minimize"
msgstr "Minimize"
-#: src/components/compose.jsx:948
+#: src/components/compose.jsx:953
msgid "Looks like you closed the parent window."
msgstr "Looks like you closed the parent window."
-#: src/components/compose.jsx:955
+#: src/components/compose.jsx:960
msgid "Looks like you already have a compose field open in the parent window and currently publishing. Please wait for it to be done and try again later."
msgstr "Looks like you already have a compose field open in the parent window and currently publishing. Please wait for it to be done and try again later."
-#: src/components/compose.jsx:960
+#: src/components/compose.jsx:965
msgid "Looks like you already have a compose field open in the parent window. Popping in this window will discard the changes you made in the parent window. Continue?"
msgstr "Looks like you already have a compose field open in the parent window. Popping in this window will discard the changes you made in the parent window. Continue?"
-#: src/components/compose.jsx:1005
+#: src/components/compose.jsx:1010
msgid "Pop in"
msgstr "Pop in"
#. placeholder {0}: replyToStatus.account.acct || replyToStatus.account.username
#. placeholder {1}: rtf.format(-replyToStatusMonthsAgo, 'month')
-#: src/components/compose.jsx:1015
+#: src/components/compose.jsx:1020
msgid "Replying to @{0}’s post (<0>{1}0>)"
msgstr ""
#. placeholder {0}: replyToStatus.account.acct || replyToStatus.account.username
-#: src/components/compose.jsx:1025
+#: src/components/compose.jsx:1030
msgid "Replying to @{0}’s post"
msgstr ""
-#: src/components/compose.jsx:1038
+#: src/components/compose.jsx:1043
msgid "Editing source post"
msgstr ""
-#: src/components/compose.jsx:1107
+#: src/components/compose.jsx:1112
msgid "Poll must have at least 2 options"
msgstr "Poll must have at least 2 options"
-#: src/components/compose.jsx:1111
+#: src/components/compose.jsx:1116
msgid "Some poll choices are empty"
msgstr "Some poll choices are empty"
-#: src/components/compose.jsx:1124
+#: src/components/compose.jsx:1129
msgid "Some media have no descriptions. Continue?"
msgstr "Some media have no descriptions. Continue?"
-#: src/components/compose.jsx:1176
+#: src/components/compose.jsx:1181
msgid "Attachment #{i} failed"
msgstr "Attachment #{i} failed"
-#: src/components/compose.jsx:1295
+#: src/components/compose.jsx:1305
#: src/components/status.jsx:2190
#: src/components/timeline.jsx:1016
msgid "Content warning"
msgstr ""
-#: src/components/compose.jsx:1316
-#: src/components/compose.jsx:1459
+#: src/components/compose.jsx:1326
+#: src/components/compose.jsx:1469
#: src/components/edit-profile-sheet.jsx:323
#: src/components/open-link-sheet.jsx:74
#: src/components/private-note-sheet.jsx:94
msgid "Cancel"
msgstr ""
-#: src/components/compose.jsx:1324
+#: src/components/compose.jsx:1334
msgid "Post your reply"
msgstr "Post your reply"
-#: src/components/compose.jsx:1326
+#: src/components/compose.jsx:1336
msgid "Edit your post"
msgstr "Edit your post"
-#: src/components/compose.jsx:1328
+#: src/components/compose.jsx:1338
msgid "Ask a question"
msgstr "Ask a question"
-#: src/components/compose.jsx:1329
+#: src/components/compose.jsx:1339
msgid "What are you doing?"
msgstr "What are you doing?"
-#: src/components/compose.jsx:1399
+#: src/components/compose.jsx:1409
msgid "Mark media as sensitive"
msgstr ""
-#: src/components/compose.jsx:1439
+#: src/components/compose.jsx:1449
msgid "Posting on <0/>"
msgstr "Posting on <0/>"
-#: src/components/compose.jsx:1697
+#: src/components/compose.jsx:1708
#: src/pages/settings.jsx:375
msgid "Anyone can quote"
msgstr "Anyone can quote"
-#: src/components/compose.jsx:1700
+#: src/components/compose.jsx:1711
#: src/pages/settings.jsx:378
msgid "Your followers can quote"
msgstr "Your followers can quote"
-#: src/components/compose.jsx:1703
+#: src/components/compose.jsx:1714
#: src/pages/settings.jsx:381
msgid "Only you can quote"
msgstr "Only you can quote"
-#: src/components/compose.jsx:1735
+#: src/components/compose.jsx:1747
#: src/pages/settings.jsx:322
#: src/utils/visibility-text.jsx:4
msgid "Public"
msgstr ""
-#: src/components/compose.jsx:1740
+#: src/components/compose.jsx:1752
#: src/components/nav-menu.jsx:349
#: src/components/shortcuts-settings.jsx:165
#: src/utils/visibility-text.jsx:5
msgid "Local"
msgstr ""
-#: src/components/compose.jsx:1744
+#: src/components/compose.jsx:1756
#: src/pages/settings.jsx:325
#: src/utils/visibility-text.jsx:6
msgid "Quiet public"
msgstr "Quiet public"
-#: src/components/compose.jsx:1750
+#: src/components/compose.jsx:1762
#: src/components/status.jsx:2070
#: src/utils/visibility-text.jsx:8
msgid "Private mention"
msgstr ""
-#: src/components/compose.jsx:1802
+#: src/components/compose.jsx:1814
msgid "Schedule"
msgstr "Schedule"
-#: src/components/compose.jsx:1804
+#: src/components/compose.jsx:1816
#: src/components/keyboard-shortcuts-help.jsx:155
#: src/components/status.jsx:1015
#: src/components/status.jsx:1833
@@ -582,20 +582,20 @@ msgstr "Schedule"
msgid "Reply"
msgstr ""
-#: src/components/compose.jsx:1806
+#: src/components/compose.jsx:1818
msgid "Update"
msgstr "Update"
-#: src/components/compose.jsx:1807
+#: src/components/compose.jsx:1819
msgctxt "Submit button in composer"
msgid "Post"
msgstr "Post"
-#: src/components/compose.jsx:1890
+#: src/components/compose.jsx:1902
msgid "Downloading GIF…"
msgstr "Downloading GIF…"
-#: src/components/compose.jsx:1918
+#: src/components/compose.jsx:1930
msgid "Failed to download GIF"
msgstr "Failed to download GIF"