useDeleteItem.ts 675 B

1234567891011121314151617181920212223
  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<T extends ApiResource>(item: T) {
  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. }