From 66c0fe57df00b4554c5df9244def3aaeb07fa265 Mon Sep 17 00:00:00 2001 From: littlemoonstones Date: Sun, 12 Mar 2023 13:43:19 +0800 Subject: [PATCH 1/8] add copy function --- package-lock.json | 16 ++++++++ package.json | 3 ++ src/app.scss | 11 ++++++ src/lib/Chat.svelte | 96 ++++++++++++++++++++++++++++++++++++++------- 4 files changed, 111 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index ebd9c1c..fe5c3b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,9 @@ "": { "name": "chatgpt-web", "version": "0.0.0", + "dependencies": { + "copy-to-clipboard": "^3.3.3" + }, "devDependencies": { "@fullhuman/postcss-purgecss": "^5.0.0", "@microsoft/fetch-event-source": "^2.0.1", @@ -627,6 +630,14 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -1583,6 +1594,11 @@ "node": ">=8.0" } }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, "node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", diff --git a/package.json b/package.json index 39e5663..b88fae1 100644 --- a/package.json +++ b/package.json @@ -28,5 +28,8 @@ "tslib": "^2.5.0", "typescript": "^4.9.3", "vite": "^4.1.0" + }, + "dependencies": { + "copy-to-clipboard": "^3.3.3" } } diff --git a/src/app.scss b/src/app.scss index b3f53d4..805bfc8 100644 --- a/src/app.scss +++ b/src/app.scss @@ -83,4 +83,15 @@ $modal-background-background-color-dark: rgba($dark, 0.86) !default; // remove t @import "/node_modules/bulma-prefers-dark/build/bulma-prefers-dark.sass"; .modal-card-body { // remove this once https: //github.com/jloh/bulma-prefers-dark/pull/90 is merged and released background-color: $background-dark; +} + +/* for copy button */ +pre[data-language="plaintext"] { + position: relative; +} +div.copy-prompt { + padding: 5px; + position: absolute; + top: 5px; + right: 5px; } \ No newline at end of file diff --git a/src/lib/Chat.svelte b/src/lib/Chat.svelte index 0e1f2e1..f9c7925 100644 --- a/src/lib/Chat.svelte +++ b/src/lib/Chat.svelte @@ -1,10 +1,17 @@