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
|
@ -114,7 +114,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>
|
||||
|
@ -379,7 +379,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();
|
||||
|
||||
|
@ -411,18 +447,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);
|
||||
|
|
|
@ -124,7 +124,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
class="_button"
|
||||
:class="$style.noteFooterButton"
|
||||
:style="renoted ? 'color: var(--accent) !important;' : ''"
|
||||
@mousedown="renoted ? undoRenote() : renote()"
|
||||
@mousedown="renoted ? undoRenote() : boostVisibility()"
|
||||
>
|
||||
<i class="ph-rocket-launch ph-bold ph-lg"></i>
|
||||
<p v-if="appearNote.renoteCount > 0" :class="$style.noteFooterButtonCount">{{ appearNote.renoteCount }}</p>
|
||||
|
@ -427,7 +427,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();
|
||||
|
||||
|
@ -457,17 +493,16 @@ 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');
|
||||
}
|
||||
|
||||
|
||||
os.api('notes/create', {
|
||||
localOnly,
|
||||
visibility,
|
||||
localOnly: visibility === 'local' ? true : localOnlySetting,
|
||||
visibility: noteVisibility,
|
||||
renoteId: appearNote.id,
|
||||
}).then(() => {
|
||||
os.toast(i18n.ts.renoted);
|
||||
|
|
|
@ -31,7 +31,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
class="_button"
|
||||
:class="$style.noteFooterButton"
|
||||
:style="renoted ? 'color: var(--accent) !important;' : ''"
|
||||
@mousedown="renoted ? undoRenote() : renote()"
|
||||
@mousedown="renoted ? undoRenote() : boostVisibility()"
|
||||
>
|
||||
<i class="ph-rocket-launch ph-bold ph-lg"></i>
|
||||
<p v-if="note.renoteCount > 0" :class="$style.noteFooterButtonCount">{{ note.renoteCount }}</p>
|
||||
|
@ -252,7 +252,43 @@ watch(() => props.expandAllCws, (expandAllCws) => {
|
|||
|
||||
let replies: Misskey.entities.Note[] = $ref([]);
|
||||
|
||||
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: 'public' | 'home' | 'followers' | 'specified' | 'local') {
|
||||
pleaseLogin();
|
||||
showMovedDialog();
|
||||
|
||||
|
@ -283,6 +319,8 @@ function renote() {
|
|||
|
||||
os.api('notes/create', {
|
||||
renoteId: props.note.id,
|
||||
localOnly: visibility === 'local' ? true : false,
|
||||
visibility: visibility === 'local' ? props.note.visibility : visibility,
|
||||
}).then(() => {
|
||||
os.toast(i18n.ts.renoted);
|
||||
renoted.value = true;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -132,7 +132,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
class="_button"
|
||||
:class="$style.noteFooterButton"
|
||||
:style="renoted ? 'color: var(--accent) !important;' : ''"
|
||||
@mousedown="renoted ? undoRenote() : renote()"
|
||||
@mousedown="renoted ? undoRenote() : boostVisibility()"
|
||||
>
|
||||
<i class="ph-rocket-launch ph-bold ph-lg"></i>
|
||||
<p v-if="appearNote.renoteCount > 0" :class="$style.noteFooterButtonCount">{{ appearNote.renoteCount }}</p>
|
||||
|
@ -435,7 +435,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();
|
||||
|
||||
|
@ -465,17 +501,16 @@ 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');
|
||||
}
|
||||
|
||||
os.api('notes/create', {
|
||||
localOnly,
|
||||
visibility,
|
||||
localOnly: visibility === 'local' ? true : localOnlySetting,
|
||||
visibility: noteVisibility,
|
||||
renoteId: appearNote.id,
|
||||
}).then(() => {
|
||||
os.toast(i18n.ts.renoted);
|
||||
|
|
|
@ -39,7 +39,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
class="_button"
|
||||
:class="$style.noteFooterButton"
|
||||
:style="renoted ? 'color: var(--accent) !important;' : ''"
|
||||
@mousedown="renoted ? undoRenote() : renote()"
|
||||
@mousedown="renoted ? undoRenote() : boostVisibility()"
|
||||
>
|
||||
<i class="ph-rocket-launch ph-bold ph-lg"></i>
|
||||
<p v-if="note.renoteCount > 0" :class="$style.noteFooterButtonCount">{{ note.renoteCount }}</p>
|
||||
|
@ -261,7 +261,43 @@ watch(() => props.expandAllCws, (expandAllCws) => {
|
|||
|
||||
let replies: Misskey.entities.Note[] = $ref([]);
|
||||
|
||||
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: 'public' | 'home' | 'followers' | 'specified' | 'local') {
|
||||
pleaseLogin();
|
||||
showMovedDialog();
|
||||
|
||||
|
@ -292,6 +328,8 @@ function renote() {
|
|||
|
||||
os.api('notes/create', {
|
||||
renoteId: props.note.id,
|
||||
localOnly: visibility === 'local' ? true : false,
|
||||
visibility: visibility === 'local' ? props.note.visibility : visibility,
|
||||
}).then(() => {
|
||||
os.toast(i18n.ts.renoted);
|
||||
renoted.value = true;
|
||||
|
|
Loading…
Reference in a new issue