From aee46460251d02729df2546f45f89131c44bb10e Mon Sep 17 00:00:00 2001 From: johannchopin Date: Thu, 16 Dec 2021 11:04:05 +0100 Subject: [PATCH 1/3] add share repl panel --- .../_components/AppControls/SharePanel.svelte | 117 ++++++++++++++++++ .../[id]/_components/AppControls/index.svelte | 22 ++++ .../src/routes/repl/[id]/index.svelte | 2 +- .../src/routes/repl/_utils/setClipboard.js | 3 + sites/svelte.dev/static/svelte-share-repl.svg | 12 ++ 5 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 sites/svelte.dev/src/routes/repl/[id]/_components/AppControls/SharePanel.svelte create mode 100644 sites/svelte.dev/src/routes/repl/_utils/setClipboard.js create mode 100644 sites/svelte.dev/static/svelte-share-repl.svg diff --git a/sites/svelte.dev/src/routes/repl/[id]/_components/AppControls/SharePanel.svelte b/sites/svelte.dev/src/routes/repl/[id]/_components/AppControls/SharePanel.svelte new file mode 100644 index 00000000..1d723b10 --- /dev/null +++ b/sites/svelte.dev/src/routes/repl/[id]/_components/AppControls/SharePanel.svelte @@ -0,0 +1,117 @@ + +
+ {#if canShare} +

Share REPL Button

+ share REPL icon +
Markdown
+ +
HTML
+ +
+
+ + +
+ {:else} +

You need to save the REPL to share it!

+ {/if} +
+ diff --git a/sites/svelte.dev/src/routes/repl/[id]/_components/AppControls/index.svelte b/sites/svelte.dev/src/routes/repl/[id]/_components/AppControls/index.svelte index aa593a99..cd1c568e 100644 --- a/sites/svelte.dev/src/routes/repl/[id]/_components/AppControls/index.svelte +++ b/sites/svelte.dev/src/routes/repl/[id]/_components/AppControls/index.svelte @@ -2,6 +2,7 @@ import { createEventDispatcher, getContext } from 'svelte'; import { session } from '$app/stores'; import UserMenu from './UserMenu.svelte'; + import SharePanel from './SharePanel.svelte'; import { Icon } from '@sveltejs/site-kit'; import * as doNotZip from 'do-not-zip'; import downloadBlob from '../../../_utils/downloadBlob.js'; @@ -16,11 +17,14 @@ export let name; export let zen_mode; export let modified_count; + export let version; let saving = false; let downloading = false; let justSaved = false; let justForked = false; + let share = false; + function wait(ms) { return new Promise((f) => setTimeout(f, ms)); @@ -198,6 +202,19 @@ export default app;` + +