import { type Ref, defineComponent, inject, ref } from 'vue'; import { useRoute, useRouter } from 'vue-router'; import RegistrationService from './registration.service'; import useDataUtils from '@/shared/data/data-utils.service'; import { useDateFormat } from '@/shared/composables'; import { type IRegistration } from '@/shared/model/registration.model'; import { useAlertService } from '@/shared/alert/alert.service'; export default defineComponent({ compatConfig: { MODE: 3 }, name: 'RegistrationDetails', setup() { const dateFormat = useDateFormat(); const registrationService = inject('registrationService', () => new RegistrationService()); const alertService = inject('alertService', () => useAlertService(), true); const dataUtils = useDataUtils(); const route = useRoute(); const router = useRouter(); const previousState = () => router.go(-1); const registration: Ref = ref({}); const retrieveRegistration = async registrationId => { try { const res = await registrationService().find(registrationId); registration.value = res; } catch (error) { alertService.showHttpError(error.response); } }; if (route.params?.registrationId) { retrieveRegistration(route.params.registrationId); } return { ...dateFormat, alertService, registration, ...dataUtils, previousState, ...dateFormat, }; }, });