|
2 | 2 | <button |
3 | 3 | id="copyLinkButton" |
4 | 4 | type="button" |
5 | | - class="inline-flex items-center justify-center gap-1 p-2 text-sm transition-transform transform rounded-md shadow justify-self-end focus-visible:ring-4 active:scale-y-75 hover:scale-105 hover:shadow-lg copy-uri-button" |
| 5 | + class="inline-flex gap-1 justify-center justify-self-end items-center p-2 text-sm rounded-md shadow transition-transform transform focus-visible:ring-4 active:scale-y-75 hover:scale-105 hover:shadow-lg copy-uri-button" |
6 | 6 | aria-label="Click here to copy url to clipboard" |
7 | 7 | :class="{ |
8 | 8 | 'bg-blue-500 text-white': !copied, |
9 | | - 'bg-green-500 text-gray-800': copied, |
| 9 | + 'bg-green-500 text-gray-800': copied === true, |
| 10 | + 'pointer-events-none': copied === null || copied === true, |
10 | 11 | }" |
| 12 | + :disabled="copied === null || copied === true" |
11 | 13 | @click="clickHandler" |
12 | 14 | > |
13 | 15 | <span |
14 | | - class="inline-flex items-center justify-center gap-1" |
| 16 | + class="inline-flex gap-1 justify-center items-center" |
15 | 17 | aria-live="assertive" |
16 | 18 | role="status" |
17 | 19 | > |
18 | 20 | <span v-show="copied" class="inline" aria-hidden="true"> |
19 | 21 | <Copied /> |
20 | 22 | </span> |
21 | 23 | <span v-show="copied" class="hidden md:inline-block">Copied</span> |
22 | | - <span v-show="!copied" class="inline" aria-hidden="true"> |
| 24 | + <span |
| 25 | + v-show="!copied" |
| 26 | + class="inline" |
| 27 | + aria-hidden="true" |
| 28 | + :class="{ |
| 29 | + 'animate animate-wiggle': copied === null, |
| 30 | + }" |
| 31 | + > |
23 | 32 | <Link /> |
24 | 33 | </span> |
25 | | - <span v-show="!copied" class="hidden md:inline-block">Copy link</span> |
| 34 | + <span v-show="!copied" class="hidden md:inline-block">{{ |
| 35 | + copied === null ? 'Generating...' : 'Copy link' |
| 36 | + }}</span> |
26 | 37 | </span> |
27 | 38 | </button> |
28 | 39 | </template> |
29 | 40 | <script lang="ts"> |
30 | 41 | import Vue from 'vue' |
31 | | -import Link from '~/components/icons/link.vue' |
32 | 42 | import Copied from '~/components/icons/copied.vue' |
| 43 | +import Link from '~/components/icons/link.vue' |
33 | 44 | export default Vue.extend({ |
34 | 45 | components: { Link, Copied }, |
35 | 46 | props: { |
|
0 commit comments