Embeds.svelte 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <script>
  2. import { embed, showControls, showEmbeds } from '$lib/stores';
  3. import FullHeightIframe from '$lib/components/common/FullHeightIframe.svelte';
  4. import XMark from '$lib/components/icons/XMark.svelte';
  5. export let overlay = false;
  6. </script>
  7. {#if $embed}
  8. <div class="h-full w-full">
  9. <div
  10. class="pointer-events-auto z-20 flex justify-between items-center py-3 px-2 font-primar text-gray-900 dark:text-white"
  11. >
  12. <div class="flex-1 flex items-center justify-between pl-2">
  13. <a
  14. class="flex items-center space-x-2 hover:underline"
  15. href={$embed?.url}
  16. target="_blank"
  17. rel="noopener noreferrer"
  18. >
  19. {$embed?.title ?? 'Embedded Content'}
  20. </a>
  21. </div>
  22. <button
  23. class="self-center pointer-events-auto p-1 rounded-full bg-white dark:bg-gray-850"
  24. on:click={() => {
  25. showControls.set(false);
  26. showEmbeds.set(false);
  27. embed.set(null);
  28. }}
  29. >
  30. <XMark className="size-3.5 text-gray-900 dark:text-white" />
  31. </button>
  32. </div>
  33. <div class=" w-full h-full relative">
  34. {#if overlay}
  35. <div class=" absolute top-0 left-0 right-0 bottom-0 z-10"></div>
  36. {/if}
  37. <FullHeightIframe src={$embed?.url} iframeClassName="w-full h-full" />
  38. </div>
  39. </div>
  40. {/if}