add: choose boost visibility when clicking boost
Closes transfem-org/Sharkey#195
This commit is contained in:
parent
10b27ad972
commit
fb75282ea8
6 changed files with 253 additions and 37 deletions
|
|
@ -116,7 +116,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
class="_button"
|
||||
:style="renoted ? 'color: var(--accent) !important;' : ''"
|
||||
v-on:click.stop
|
||||
@mousedown="renoted ? undoRenote(appearNote) : renote()"
|
||||
@mousedown="renoted ? undoRenote(appearNote) : boostVisibility()"
|
||||
>
|
||||
<i class="ph-rocket-launch ph-bold ph-lg"></i>
|
||||
<p v-if="appearNote.renoteCount > 0" :class="$style.footerButtonCount">{{ appearNote.renoteCount }}</p>
|
||||
|
|
@ -380,7 +380,43 @@ function smallerVisibility(a: Visibility | string, b: Visibility | string): Visi
|
|||
return 'public';
|
||||
}
|
||||
|
||||
function renote() {
|
||||
function boostVisibility() {
|
||||
os.popupMenu([
|
||||
{
|
||||
type: 'button',
|
||||
icon: 'ph-globe-hemisphere-west ph-bold ph-lg',
|
||||
text: i18n.ts._visibility['public'],
|
||||
action: () => {
|
||||
renote('public');
|
||||
},
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
icon: 'ph-house ph-bold ph-lg',
|
||||
text: i18n.ts._visibility['home'],
|
||||
action: () => {
|
||||
renote('home');
|
||||
},
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
icon: 'ph-lock ph-bold ph-lg',
|
||||
text: i18n.ts._visibility['followers'],
|
||||
action: () => {
|
||||
renote('followers');
|
||||
},
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
icon: 'ph-planet ph-bold ph-lg',
|
||||
text: i18n.ts._timelines.local,
|
||||
action: () => {
|
||||
renote('local');
|
||||
},
|
||||
}], renoteButton.value);
|
||||
}
|
||||
|
||||
function renote(visibility: Visibility | 'local') {
|
||||
pleaseLogin();
|
||||
showMovedDialog();
|
||||
|
||||
|
|
@ -412,18 +448,17 @@ function renote() {
|
|||
}
|
||||
|
||||
const configuredVisibility = defaultStore.state.rememberNoteVisibility ? defaultStore.state.visibility : defaultStore.state.defaultNoteVisibility;
|
||||
const localOnly = defaultStore.state.rememberNoteVisibility ? defaultStore.state.localOnly : defaultStore.state.defaultNoteLocalOnly;
|
||||
const localOnlySetting = defaultStore.state.rememberNoteVisibility ? defaultStore.state.localOnly : defaultStore.state.defaultNoteLocalOnly;
|
||||
|
||||
let visibility = appearNote.visibility;
|
||||
visibility = smallerVisibility(visibility, configuredVisibility);
|
||||
let noteVisibility = visibility === 'local' ? smallerVisibility(appearNote.visibility, configuredVisibility) : smallerVisibility(visibility, configuredVisibility);
|
||||
if (appearNote.channel?.isSensitive) {
|
||||
visibility = smallerVisibility(visibility, 'home');
|
||||
noteVisibility = smallerVisibility(visibility === 'local' ? appearNote.visibility : visibility, 'home');
|
||||
}
|
||||
|
||||
if (!props.mock) {
|
||||
os.api('notes/create', {
|
||||
localOnly,
|
||||
visibility,
|
||||
localOnly: visibility === 'local' ? true : localOnlySetting,
|
||||
visibility: noteVisibility,
|
||||
renoteId: appearNote.id,
|
||||
}).then(() => {
|
||||
os.toast(i18n.ts.renoted);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue