kopia lustrzana https://github.com/cheeaun/phanpy
Fix edit post to allow change quote settings
Also hide Quote Settings if native quote post not supportedpull/1274/merge
rodzic
6278fba62d
commit
0a1503515b
|
@ -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'}
|
||||
/>
|
||||
)}
|
||||
<label
|
||||
class={`toolbar-button ${highlightQuoteApprovalPolicyField ? 'highlight' : ''}`}
|
||||
>
|
||||
<Icon icon="quote2" alt="Quote visibility" />
|
||||
{quoteApprovalPolicy === 'followers' && (
|
||||
<Icon icon="group" class="insignificant" />
|
||||
)}
|
||||
{quoteApprovalPolicy === 'nobody' && (
|
||||
<Icon icon="block" class="insignificant" />
|
||||
)}
|
||||
<select
|
||||
name="quoteApprovalPolicy"
|
||||
value={quoteApprovalPolicy}
|
||||
onChange={(e) => {
|
||||
setQuoteApprovalPolicy(e.target.value);
|
||||
}}
|
||||
disabled={uiState === 'loading'}
|
||||
dir="auto"
|
||||
{supportsNativeQuote && (
|
||||
<label
|
||||
class={`toolbar-button ${highlightQuoteApprovalPolicyField ? 'highlight' : ''}`}
|
||||
>
|
||||
<option value="public" disabled={disableQuotePolicy}>
|
||||
<Trans>Anyone can quote</Trans>
|
||||
</option>
|
||||
<option value="followers" disabled={disableQuotePolicy}>
|
||||
<Trans>Your followers can quote</Trans>
|
||||
</option>
|
||||
<option value="nobody">
|
||||
<Trans>Only you can quote</Trans>
|
||||
</option>
|
||||
</select>
|
||||
</label>
|
||||
<Icon icon="quote2" alt="Quote visibility" />
|
||||
{quoteApprovalPolicy === 'followers' && (
|
||||
<Icon icon="group" class="insignificant" />
|
||||
)}
|
||||
{quoteApprovalPolicy === 'nobody' && (
|
||||
<Icon icon="block" class="insignificant" />
|
||||
)}
|
||||
<select
|
||||
name="quoteApprovalPolicy"
|
||||
value={quoteApprovalPolicy}
|
||||
onChange={(e) => {
|
||||
setQuoteApprovalPolicy(e.target.value);
|
||||
}}
|
||||
disabled={uiState === 'loading'}
|
||||
dir="auto"
|
||||
>
|
||||
<option value="public" disabled={disableQuotePolicy}>
|
||||
<Trans>Anyone can quote</Trans>
|
||||
</option>
|
||||
<option value="followers" disabled={disableQuotePolicy}>
|
||||
<Trans>Your followers can quote</Trans>
|
||||
</option>
|
||||
<option value="nobody">
|
||||
<Trans>Only you can quote</Trans>
|
||||
</option>
|
||||
</select>
|
||||
</label>
|
||||
)}
|
||||
<label
|
||||
class={`toolbar-button ${highlightVisibilityField ? 'highlight' : ''}`}
|
||||
title={_(visibilityText[visibility])}
|
||||
|
|
|
@ -91,7 +91,7 @@ msgstr "Go to account page"
|
|||
|
||||
#: src/components/account-info.jsx:407
|
||||
#: src/components/account-info.jsx:740
|
||||
#: src/components/compose.jsx:1747
|
||||
#: src/components/compose.jsx:1759
|
||||
#: src/pages/settings.jsx:328
|
||||
#: src/utils/visibility-text.jsx:7
|
||||
msgid "Followers"
|
||||
|
@ -251,7 +251,7 @@ msgstr "View post stats"
|
|||
|
||||
#: src/components/account-sheet.jsx:38
|
||||
#: src/components/add-remove-lists-sheet.jsx:45
|
||||
#: src/components/compose.jsx:924
|
||||
#: src/components/compose.jsx:929
|
||||
#: src/components/custom-emojis-modal.jsx:256
|
||||
#: src/components/drafts.jsx:57
|
||||
#: src/components/edit-profile-sheet.jsx:87
|
||||
|
@ -371,7 +371,7 @@ msgid "Remove"
|
|||
msgstr ""
|
||||
|
||||
#: src/components/compose-poll.jsx:80
|
||||
#: src/components/compose.jsx:1482
|
||||
#: src/components/compose.jsx:1492
|
||||
#: src/components/mention-modal.jsx:220
|
||||
#: src/components/shortcuts-settings.jsx:715
|
||||
#: src/pages/list.jsx:388
|
||||
|
@ -390,190 +390,190 @@ msgstr ""
|
|||
msgid "Remove poll"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/compose.jsx:102
|
||||
#: src/components/compose.jsx:103
|
||||
msgid "Take photo or video"
|
||||
msgstr "Take photo or video"
|
||||
|
||||
#: src/components/compose.jsx:103
|
||||
#: src/components/compose.jsx:104
|
||||
msgid "Add media"
|
||||
msgstr "Add media"
|
||||
|
||||
#: src/components/compose.jsx:104
|
||||
#: src/components/compose.jsx:105
|
||||
msgid "Add custom emoji"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/compose.jsx:105
|
||||
#: src/components/compose.jsx:106
|
||||
msgid "Add GIF"
|
||||
msgstr "Add GIF"
|
||||
|
||||
#: src/components/compose.jsx:106
|
||||
#: src/components/compose.jsx:107
|
||||
msgid "Add poll"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/compose.jsx:107
|
||||
#: src/components/compose.jsx:108
|
||||
msgid "Add content warning"
|
||||
msgstr "Add content warning"
|
||||
|
||||
#: src/components/compose.jsx:108
|
||||
#: src/components/compose.jsx:109
|
||||
msgid "Schedule post"
|
||||
msgstr "Schedule post"
|
||||
|
||||
#: src/components/compose.jsx:410
|
||||
#: src/components/compose.jsx:413
|
||||
msgid "You have unsaved changes. Discard this post?"
|
||||
msgstr "You have unsaved changes. Discard this post?"
|
||||
|
||||
#. placeholder {0}: unsupportedFiles.length
|
||||
#. placeholder {1}: unsupportedFiles[0].name
|
||||
#. placeholder {2}: lf.format( unsupportedFiles.map((f) => 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"
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue