ArchiveFilesTableMenu.tsx 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import React, { type JSX } from 'react';
  2. import { useTranslation } from 'next-i18next';
  3. // import { toastSuccess, toastError } from '~/client/util/toastr';
  4. type ArchiveFilesTableMenuProps = {
  5. fileName: string;
  6. onZipFileStatRemove: (fileName: string) => void;
  7. };
  8. const ArchiveFilesTableMenu = (
  9. props: ArchiveFilesTableMenuProps,
  10. ): JSX.Element => {
  11. const { t } = useTranslation();
  12. return (
  13. <div className="dropdown">
  14. <button
  15. type="button"
  16. className="btn btn-sm btn-outline-secondary dropdown-toggle"
  17. data-bs-toggle="dropdown"
  18. aria-expanded="false"
  19. >
  20. <span className="material-symbols-outlined">settings</span>{' '}
  21. <span className="caret"></span>
  22. </button>
  23. <ul className="dropdown-menu dropdown-menu-end">
  24. <li className="dropdown-header">
  25. {t('admin:export_management.export_menu')}
  26. </li>
  27. <button
  28. type="button"
  29. className="dropdown-item"
  30. onClick={() => {
  31. window.location.href = `/admin/export/${props.fileName}`;
  32. }}
  33. >
  34. <span className="material-symbols-outlined">cloud_download</span>{' '}
  35. {t('admin:export_management.download')}
  36. </button>
  37. <button
  38. type="button"
  39. className="dropdown-item"
  40. onClick={() => props.onZipFileStatRemove(props.fileName)}
  41. >
  42. <span className="text-danger">
  43. <span className="material-symbols-outlined">delete</span>{' '}
  44. {t('admin:export_management.delete')}
  45. </span>
  46. </button>
  47. </ul>
  48. </div>
  49. );
  50. };
  51. export default ArchiveFilesTableMenu;