FeedbackModal.svelte 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <script lang="ts">
  2. import Modal from '$lib/components/common/Modal.svelte';
  3. import { getContext } from 'svelte';
  4. const i18n = getContext('i18n');
  5. import XMark from '$lib/components/icons/XMark.svelte';
  6. export let show = false;
  7. export let selectedFeedback = null;
  8. export let onClose: () => void = () => {};
  9. const close = () => {
  10. show = false;
  11. onClose();
  12. };
  13. </script>
  14. <Modal size="sm" bind:show>
  15. {#if selectedFeedback}
  16. <div>
  17. <div class="flex justify-between dark:text-gray-300 px-5 pt-4 pb-2">
  18. <div class="text-lg font-medium self-center">
  19. {$i18n.t('Feedback Details')}
  20. </div>
  21. <button class="self-center" on:click={close} aria-label="Close">
  22. <XMark className={'size-5'} />
  23. </button>
  24. </div>
  25. <div class="flex flex-col md:flex-row w-full px-5 pb-4 md:space-x-4 dark:text-gray-200">
  26. <div class="flex flex-col w-full">
  27. <div class="mb-2 -mx-1">
  28. {#if selectedFeedback?.data?.tags && selectedFeedback?.data?.tags.length}
  29. <div class="flex flex-wrap gap-1 mt-1">
  30. {#each selectedFeedback?.data?.tags as tag}
  31. <span class="px-2 py-0.5 rounded-full bg-gray-100 dark:bg-gray-850 text-xs"
  32. >{tag}</span
  33. >
  34. {/each}
  35. </div>
  36. {:else}
  37. <span>-</span>
  38. {/if}
  39. </div>
  40. <div class="flex flex-col w-full mb-2">
  41. <div class=" mb-1 text-xs text-gray-500">{$i18n.t('Rating')}</div>
  42. <div class="flex-1 text-xs">
  43. <span>{selectedFeedback?.data?.details?.rating ?? '-'}</span>
  44. </div>
  45. </div>
  46. <div class="flex flex-col w-full mb-2">
  47. <div class=" mb-1 text-xs text-gray-500">{$i18n.t('Reason')}</div>
  48. <div class="flex-1 text-xs">
  49. <span>{selectedFeedback?.data?.reason || '-'}</span>
  50. </div>
  51. </div>
  52. <div class="flex justify-end pt-2">
  53. <button
  54. class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
  55. type="button"
  56. on:click={close}
  57. >
  58. {$i18n.t('Close')}
  59. </button>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. {/if}
  65. </Modal>