@@ -42,6 +42,25 @@ import { Aside, Icon } from '@astrojs/starlight/components'
4242</style>
4343
4444<section class="py-12">
45+ <dialog
46+ open
47+ id="copy-dialog"
48+ class="
49+ z-100
50+ bottom-10 fixed
51+ m-auto
52+ rounded-lg
53+ opacity-0
54+ transition-all
55+ duration-500
56+ ease-in-out
57+ "
58+ >
59+ <p class="flex align-baseline">
60+ <Icon name="approve-check-circle" size="24px" class="m-auto" class="mr-2" />
61+ Copied to clipboard
62+ </p >
63+ </dialog >
4564 <h2 id =" try-it-now" class =" text-center mb-10" >Try it now!</h2 >
4665
4766 <Aside type =" tip" title =" Need a hint?" >
@@ -171,11 +190,31 @@ import { Aside, Icon } from '@astrojs/starlight/components'
171190
172191 function copyToClipboard(text) {
173192 navigator.clipboard.writeText(text)
174- .then(() => console.log('Text copied to clipboard'))
193+ .then(() => {
194+ const durationTime = 500
195+ const hiddenDelay = 2000
196+
197+ console.log('Text copied to clipboard')
198+ copyDialog.classList.remove('hidden')
199+ copyDialog.classList.add('block')
200+ setTimeout(() => {
201+ copyDialog.classList.add('opacity-100')
202+ copyDialog.classList.remove('opacity-0')
203+ })
204+ setTimeout(() => {
205+ copyDialog.classList.remove('opacity-100')
206+ copyDialog.classList.add('opacity-0')
207+ setTimeout(() => {
208+ copyDialog.classList.add('hidden')
209+ copyDialog.classList.remove('block')
210+ }, durationTime)
211+ }, hiddenDelay)
212+ })
175213 .catch((err) => console.error('Failed to copy: ', err))
176214 }
177215
178- let copyToUrlClipboardButton = document.getElementById('copy-url-to-clipboard')
216+ const copyToUrlClipboardButton = document.getElementById('copy-url-to-clipboard')
217+ const copyDialog = document.getElementById('copy-dialog')
179218
180219 copyToUrlClipboardButton.addEventListener('click', function () {
181220 pokeApiPath = pokeapiPathInput.value
0 commit comments