summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorMarie <github@yuugi.dev>2024-09-16 00:35:26 +0200
committerMarie <github@yuugi.dev>2024-09-16 00:35:26 +0200
commite21e2530e6067c1d5ba2b9f49c03333ef94367bc (patch)
treea22af00916face20a12caf90e75e55a3542bab50 /packages
parentupd: don't ignore new lines on file info (diff)
downloadsharkey-e21e2530e6067c1d5ba2b9f49c03333ef94367bc.tar.gz
sharkey-e21e2530e6067c1d5ba2b9f49c03333ef94367bc.tar.bz2
sharkey-e21e2530e6067c1d5ba2b9f49c03333ef94367bc.zip
fix: don't show quoted toast on cancel of quote note
Diffstat (limited to 'packages')
-rw-r--r--packages/frontend/src/components/MkNote.vue6
-rw-r--r--packages/frontend/src/components/MkNoteDetailed.vue6
-rw-r--r--packages/frontend/src/components/MkNoteSub.vue6
-rw-r--r--packages/frontend/src/components/MkPostFormDialog.vue12
-rw-r--r--packages/frontend/src/components/SkNote.vue6
-rw-r--r--packages/frontend/src/components/SkNoteDetailed.vue6
-rw-r--r--packages/frontend/src/components/SkNoteSub.vue6
-rw-r--r--packages/frontend/src/os.ts6
8 files changed, 36 insertions, 18 deletions
diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue
index e2f0a4e492..edae1e91b2 100644
--- a/packages/frontend/src/components/MkNote.vue
+++ b/packages/frontend/src/components/MkNote.vue
@@ -565,7 +565,8 @@ function quote() {
os.post({
renote: appearNote.value,
channel: appearNote.value.channel,
- }).then(() => {
+ }).then((cancelled) => {
+ if (cancelled) return;
misskeyApi('notes/renotes', {
noteId: appearNote.value.id,
userId: $i?.id,
@@ -589,7 +590,8 @@ function quote() {
} else {
os.post({
renote: appearNote.value,
- }).then(() => {
+ }).then((cancelled) => {
+ if (cancelled) return;
misskeyApi('notes/renotes', {
noteId: appearNote.value.id,
userId: $i?.id,
diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue
index 64559ef265..123e94c3e0 100644
--- a/packages/frontend/src/components/MkNoteDetailed.vue
+++ b/packages/frontend/src/components/MkNoteDetailed.vue
@@ -550,7 +550,8 @@ function quote() {
os.post({
renote: appearNote.value,
channel: appearNote.value.channel,
- }).then(() => {
+ }).then((cancelled) => {
+ if (cancelled) return;
misskeyApi('notes/renotes', {
noteId: appearNote.value.id,
userId: $i?.id,
@@ -574,7 +575,8 @@ function quote() {
} else {
os.post({
renote: appearNote.value,
- }).then(() => {
+ }).then((cancelled) => {
+ if (cancelled) return;
misskeyApi('notes/renotes', {
noteId: appearNote.value.id,
userId: $i?.id,
diff --git a/packages/frontend/src/components/MkNoteSub.vue b/packages/frontend/src/components/MkNoteSub.vue
index 9caed62ce2..45276839ad 100644
--- a/packages/frontend/src/components/MkNoteSub.vue
+++ b/packages/frontend/src/components/MkNoteSub.vue
@@ -339,7 +339,8 @@ function quote() {
os.post({
renote: appearNote.value,
channel: appearNote.value.channel,
- }).then(() => {
+ }).then((cancelled) => {
+ if (cancelled) return;
misskeyApi('notes/renotes', {
noteId: props.note.id,
userId: $i.id,
@@ -363,7 +364,8 @@ function quote() {
} else {
os.post({
renote: appearNote.value,
- }).then(() => {
+ }).then((cancelled) => {
+ if (cancelled) return;
misskeyApi('notes/renotes', {
noteId: props.note.id,
userId: $i.id,
diff --git a/packages/frontend/src/components/MkPostFormDialog.vue b/packages/frontend/src/components/MkPostFormDialog.vue
index 947c0ee4d0..cc84c6e0ff 100644
--- a/packages/frontend/src/components/MkPostFormDialog.vue
+++ b/packages/frontend/src/components/MkPostFormDialog.vue
@@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template>
<MkModal ref="modal" :preferType="'dialog'" @click="modal?.close()" @closed="onModalClosed()" @esc="modal?.close()">
- <MkPostForm ref="form" :class="$style.form" v-bind="props" autofocus freezeAfterPosted @posted="onPosted" @cancel="modal?.close()" @esc="modal?.close()"/>
+ <MkPostForm ref="form" :class="$style.form" v-bind="props" autofocus freezeAfterPosted @posted="onPosted" @cancel="onCancel" @esc="modal?.close()"/>
</MkModal>
</template>
@@ -37,7 +37,7 @@ const props = withDefaults(defineProps<{
});
const emit = defineEmits<{
- (ev: 'closed'): void;
+ (ev: 'closed', cancelled: boolean): void;
}>();
const modal = shallowRef<InstanceType<typeof MkModal>>();
@@ -47,10 +47,16 @@ function onPosted() {
modal.value?.close({
useSendAnimation: true,
});
+ emit('closed', false);
+}
+
+function onCancel() {
+ modal.value?.close();
+ emit('closed', true);
}
function onModalClosed() {
- emit('closed');
+ emit('closed', true);
}
</script>
diff --git a/packages/frontend/src/components/SkNote.vue b/packages/frontend/src/components/SkNote.vue
index b02d902482..3d5c5f5fae 100644
--- a/packages/frontend/src/components/SkNote.vue
+++ b/packages/frontend/src/components/SkNote.vue
@@ -565,7 +565,8 @@ function quote() {
os.post({
renote: appearNote.value,
channel: appearNote.value.channel,
- }).then(() => {
+ }).then((cancelled) => {
+ if (cancelled) return;
misskeyApi('notes/renotes', {
noteId: appearNote.value.id,
userId: $i?.id,
@@ -589,7 +590,8 @@ function quote() {
} else {
os.post({
renote: appearNote.value,
- }).then(() => {
+ }).then((cancelled) => {
+ if (cancelled) return;
misskeyApi('notes/renotes', {
noteId: appearNote.value.id,
userId: $i?.id,
diff --git a/packages/frontend/src/components/SkNoteDetailed.vue b/packages/frontend/src/components/SkNoteDetailed.vue
index cca6c7a40c..5b85e21bac 100644
--- a/packages/frontend/src/components/SkNoteDetailed.vue
+++ b/packages/frontend/src/components/SkNoteDetailed.vue
@@ -559,7 +559,8 @@ function quote() {
os.post({
renote: appearNote.value,
channel: appearNote.value.channel,
- }).then(() => {
+ }).then((cancelled) => {
+ if (cancelled) return;
misskeyApi('notes/renotes', {
noteId: appearNote.value.id,
userId: $i?.id,
@@ -583,7 +584,8 @@ function quote() {
} else {
os.post({
renote: appearNote.value,
- }).then(() => {
+ }).then((cancelled) => {
+ if (cancelled) return;
misskeyApi('notes/renotes', {
noteId: appearNote.value.id,
userId: $i?.id,
diff --git a/packages/frontend/src/components/SkNoteSub.vue b/packages/frontend/src/components/SkNoteSub.vue
index c2986b2524..fac35191b9 100644
--- a/packages/frontend/src/components/SkNoteSub.vue
+++ b/packages/frontend/src/components/SkNoteSub.vue
@@ -353,7 +353,8 @@ function quote() {
os.post({
renote: appearNote.value,
channel: appearNote.value.channel,
- }).then(() => {
+ }).then((cancelled) => {
+ if (cancelled) return;
misskeyApi('notes/renotes', {
noteId: props.note.id,
userId: $i.id,
@@ -377,7 +378,8 @@ function quote() {
} else {
os.post({
renote: appearNote.value,
- }).then(() => {
+ }).then((cancelled) => {
+ if (cancelled) return;
misskeyApi('notes/renotes', {
noteId: props.note.id,
userId: $i.id,
diff --git a/packages/frontend/src/os.ts b/packages/frontend/src/os.ts
index f6f4d62d50..95a0f06790 100644
--- a/packages/frontend/src/os.ts
+++ b/packages/frontend/src/os.ts
@@ -691,7 +691,7 @@ export function contextMenu(items: MenuItem[], ev: MouseEvent): Promise<void> {
}));
}
-export function post(props: Record<string, any> = {}): Promise<void> {
+export function post(props: Record<string, any> = {}): Promise<void | boolean> {
pleaseLogin(undefined, (props.initialText || props.initialNote ? {
type: 'share',
params: {
@@ -709,8 +709,8 @@ export function post(props: Record<string, any> = {}): Promise<void> {
// 複数のpost formを開いたときに場合によってはエラーになる
// もちろん複数のpost formを開けること自体Misskeyサイドのバグなのだが
const { dispose } = popup(MkPostFormDialog, props, {
- closed: () => {
- resolve();
+ closed: (cancelled) => {
+ resolve(cancelled);
dispose();
},
});