From 363df5b2560f7bf1ddb08f3a129e96fdf93d1442 Mon Sep 17 00:00:00 2001
From: Mar0xy <marie@kaifa.ch>
Date: Fri, 13 Oct 2023 21:53:38 +0200
Subject: upd: add renote limit to other note components

---
 packages/frontend/src/components/MkNoteSub.vue | 38 ++++++++++++++++++++------
 1 file changed, 30 insertions(+), 8 deletions(-)

(limited to 'packages/frontend/src/components/MkNoteSub.vue')

diff --git a/packages/frontend/src/components/MkNoteSub.vue b/packages/frontend/src/components/MkNoteSub.vue
index 57604cc94b..eef06d15e0 100644
--- a/packages/frontend/src/components/MkNoteSub.vue
+++ b/packages/frontend/src/components/MkNoteSub.vue
@@ -26,13 +26,14 @@ SPDX-License-Identifier: AGPL-3.0-only
 					<p v-if="note.repliesCount > 0" :class="$style.noteFooterButtonCount">{{ note.repliesCount }}</p>
 				</button>
 				<button
-				v-if="canRenote"
-				ref="renoteButton"
-				class="_button"
-				:class="$style.noteFooterButton"
-				@mousedown="renote()"
+					v-if="canRenote"
+					ref="renoteButton"
+					class="_button"
+					:class="$style.noteFooterButton"
+					:style="renoted ? 'color: var(--accent) !important;' : ''"
+					@mousedown="renoted ? undoRenote() : renote()"
 				>
-					<i class="ph-repeat ph-bold ph-lg"></i>
+					<i class="ph-rocket-launch ph-bold ph-lg"></i>
 					<p v-if="note.renoteCount > 0" :class="$style.noteFooterButtonCount">{{ note.renoteCount }}</p>
 				</button>
 				<button v-else class="_button" :class="$style.noteFooterButton" disabled>
@@ -112,6 +113,7 @@ const muted = ref($i ? checkWordMute(props.note, $i, $i.mutedWords) : false);
 const translation = ref(null);
 const translating = ref(false);
 const isDeleted = ref(false);
+const renoted = ref(false);
 const reactButton = shallowRef<HTMLElement>();
 const renoteButton = shallowRef<HTMLElement>();
 const menuButton = shallowRef<HTMLElement>();
@@ -132,6 +134,16 @@ useNoteCapture({
 	isDeletedRef: isDeleted,
 });
 
+if ($i) {
+	os.api("notes/renotes", {
+		noteId: appearNote.id,
+		userId: $i.id,
+		limit: 1,
+	}).then((res) => {
+		renoted.value = res.length > 0;
+	});
+}
+
 function focus() {
 	el.value.focus();
 }
@@ -203,6 +215,14 @@ function undoReact(note): void {
 	});
 }
 
+function undoRenote() : void {
+	if (!renoted) return;
+	os.api("notes/unrenote", {
+		noteId: appearNote.id,
+	});
+	renoted.value = false;
+}
+
 let showContent = $ref(false);
 let replies: Misskey.entities.Note[] = $ref([]);
 
@@ -215,7 +235,7 @@ function renote(viaKeyboard = false) {
 	if (props.note.channel) {
 		items = items.concat([{
 			text: i18n.ts.inChannelRenote,
-			icon: 'ph-repeat ph-bold ph-lg',
+			icon: 'ph-rocket-launch ph-bold ph-lg',
 			action: () => {
 				const el = renoteButton.value as HTMLElement | null | undefined;
 				if (el) {
@@ -230,6 +250,7 @@ function renote(viaKeyboard = false) {
 					channelId: props.note.channelId,
 				}).then(() => {
 					os.toast(i18n.ts.renoted);
+					renoted.value = true;
 				});
 			},
 		}, {
@@ -246,7 +267,7 @@ function renote(viaKeyboard = false) {
 
 	items = items.concat([{
 		text: i18n.ts.renote,
-		icon: 'ph-repeat ph-bold ph-lg',
+		icon: 'ph-rocket-launch ph-bold ph-lg',
 		action: () => {
 			const el = renoteButton.value as HTMLElement | null | undefined;
 			if (el) {
@@ -260,6 +281,7 @@ function renote(viaKeyboard = false) {
 				renoteId: props.note.id,
 			}).then(() => {
 				os.toast(i18n.ts.renoted);
+				renoted.value = true;
 			});
 		},
 	}, {
-- 
cgit v1.2.3-freya

