From 46b5eb6553e7217d73858891ce29157108224ec4 Mon Sep 17 00:00:00 2001
From: ThatOneCalculator <kainoa@t1c.dev>
Date: Mon, 5 Dec 2022 23:44:41 -0800
Subject: [PATCH] copy button

---
 package.json                                    | 2 +-
 packages/client/src/components/MkDrive.file.vue | 1 +
 packages/client/src/pages/page.vue              | 7 +++++++
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/package.json b/package.json
index bbc76cb786..a30e97a54f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "calckey",
-	"version": "12.119.0-calc.19-b6",
+	"version": "12.119.0-calc.19-b7",
 	"codename": "aqua",
 	"repository": {
 		"type": "git",
diff --git a/packages/client/src/components/MkDrive.file.vue b/packages/client/src/components/MkDrive.file.vue
index b6d585e47f..869e7c26bb 100644
--- a/packages/client/src/components/MkDrive.file.vue
+++ b/packages/client/src/components/MkDrive.file.vue
@@ -40,6 +40,7 @@ import bytes from '@/filters/bytes';
 import * as os from '@/os';
 import { i18n } from '@/i18n';
 import { $i } from '@/account';
+import copyToClipboard from '@/scripts/copy-to-clipboard';
 
 const props = withDefaults(defineProps<{
 	file: Misskey.entities.DriveFile;
diff --git a/packages/client/src/pages/page.vue b/packages/client/src/pages/page.vue
index d9a102f37b..c94598b87b 100644
--- a/packages/client/src/pages/page.vue
+++ b/packages/client/src/pages/page.vue
@@ -15,6 +15,7 @@
 								<h1>{{ page.title }}</h1>
 							</div>
 							<div class="menu-actions">
+								<button v-tooltip="i18n.ts.copyUrl" @click="copyUrl" class="menu _button"><i class="ph-link-simple-bold ph-lg"/></button>
 								<MkA v-tooltip="i18n.ts._pages.viewSource" :to="`/@${username}/pages/${pageName}/view-source`" class="menu _button"><i class="ph-code-bold ph-lg"/></MkA>
 								<template v-if="$i && $i.id === page.userId">
 									<MkA v-tooltip="i18n.ts._pages.editPage" class="menu _button" :to="`/pages/edit/${page.id}`"><i class="ph-pencil-bold ph-lg"/></MkA>
@@ -80,6 +81,7 @@ import MkContainer from '@/components/MkContainer.vue';
 import MkPagination from '@/components/MkPagination.vue';
 import MkPagePreview from '@/components/MkPagePreview.vue';
 import { i18n } from '@/i18n';
+import copyToClipboard from '@/scripts/copy-to-clipboard';
 import { definePageMetadata } from '@/scripts/page-metadata';
 import { shareAvailable } from '@/scripts/share-available';
 
@@ -113,6 +115,11 @@ function fetchPage() {
 	});
 }
 
+function copyUrl() {
+	copyToClipboard(window.location.href);
+	os.success();
+}
+
 function getBgImg(): string {
 	if (page.eyeCatchingImage != null) {
 		return `url(${page.eyeCatchingImage.url})`;