useDeleteItem.ts 619 B

12345678910111213141516171819202122
  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. usePageStore().addAlert(TYPE_ALERT.ALERT, [(error as Error).message])
  13. throw error
  14. }
  15. }
  16. return {
  17. deleteItem,
  18. }
  19. }