resources/assets/js/composables/useMessageToaster.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { Ref } from 'vue'
import { MessageToasterKey } from '@/symbols'
import { requireInjection } from '@/utils'
import MessageToaster from '@/components/ui/MessageToaster.vue'

let toaster: Ref<InstanceType<typeof MessageToaster>>

export const useMessageToaster = () => {
  toaster = toaster || requireInjection(MessageToasterKey)

  return {
    toastSuccess: toaster.value.success.bind(toaster.value),
    toastInfo: toaster.value.info.bind(toaster.value),
    toastWarning: toaster.value.warning.bind(toaster.value),
    toastError: toaster.value.error.bind(toaster.value)
  }
}