import { defineComponent, inject, ref, type Ref } from 'vue';
<%_ if (enableTranslation) { _%>
import { useI18n } from 'vue-i18n';
<%_ } _%>
import { useRoute } from 'vue-router';

import { useDateFormat } from '@/shared/composables'
import UserManagementService from './user-management.service';
import { useAlertService } from '@/shared/alert/alert.service';

export default defineComponent({
  name: '<%=jhiPrefixCapitalized%>UserManagementView',
  setup() {
    const route = useRoute();
    const { formatDateLong: formatDate } = useDateFormat();

    const alertService = inject('alertService', () => useAlertService(), true);
    const userManagementService = inject('userManagementService', () => new UserManagementService(), true);

    const user: Ref<any> = ref(null);

    async function loadUser(userId: string) {
      try {
        const response = await userManagementService.get(userId);
        user.value = response.data;
      } catch (error) {
        alertService.showHttpError(error.response);
      }
    }

    loadUser(route.params?.userId);

    return {
      formatDate,
      alertService,
      userManagementService,
      user,
<%_ if (enableTranslation) { _%>
      t$: useI18n().t,
<%_ } _%>
    };
  },
});
