useDeleteItem.ts 659 B

12345678910111213141516171819202122232425
  1. import type ApiResource from '~/models/ApiResource';
  2. import {usePageStore} from '~/stores/page';
  3. import {TYPE_ALERT} from '~/types/enum/enums';
  4. import {useEntityManager} from '~/composables/data/useEntityManager';
  5. export function useDeleteItem() {
  6. async function deleteItem(item: ApiResource) {
  7. const {em} = useEntityManager()
  8. try {
  9. await em.delete(item)
  10. usePageStore().addAlert(TYPE_ALERT.SUCCESS, ['deleteSuccess'])
  11. } catch (error) {
  12. // @ts-expect-error error is supposed to have a message prop
  13. usePageStore().addAlert(TYPE_ALERT.ALERT, [error.message])
  14. throw error
  15. }
  16. }
  17. return {
  18. deleteItem
  19. }
  20. }