jako tako

This commit is contained in:
2024-11-06 16:32:00 +01:00
parent 3c91f2dddb
commit 82687d3c16
7 changed files with 168 additions and 46 deletions
@@ -5,6 +5,8 @@ import EventService from './event.service';
import useDataUtils from '@/shared/data/data-utils.service';
import { type IEvent } from '@/shared/model/event.model';
import { useAlertService } from '@/shared/alert/alert.service';
import { useDateFormat } from '@/shared/composables';
import type { IRegistration } from '@/shared/model/registration.model';
export default defineComponent({
compatConfig: { MODE: 3 },
@@ -12,7 +14,7 @@ export default defineComponent({
setup() {
const eventService = inject('eventService', () => new EventService());
const alertService = inject('alertService', () => useAlertService(), true);
const { formatDateShort } = useDateFormat();
const dataUtils = useDataUtils();
const route = useRoute();
@@ -20,27 +22,47 @@ export default defineComponent({
const previousState = () => router.go(-1);
const event: Ref<IEvent> = ref({});
const sortedAndIndexedRegistrations: Ref<IRegistration[]> = ref([]);
const retrieveEvent = async eventId => {
const retrieveEvent = async (eventId: string) => {
try {
const res = await eventService().find(eventId);
event.value = res;
// sortedAndIndexedRegistrations.value = res.registrations;
sortedAndIndexedRegistrations.value = res.registrations.sort(
(a, b) => new Date(a.dateTime).getTime() - new Date(b.dateTime).getTime(),
);
} catch (error) {
alertService.showHttpError(error.response);
}
};
if (route.params?.eventId) {
retrieveEvent(route.params.eventId);
retrieveEvent(route.params.eventId as string);
}
// const sortedAndIndexedRegistrations = () => {
// console.log('asdfasdfasdf', event.value.registrations)
// console.log('asdfasdfasdf', event.value)
// return [...(event.value.registrations || [])].sort((a, b) =>
// new Date(a.dateTime).getTime() - new Date(b.dateTime).getTime()
// );
// };
const getRegistrationIndex = (index: number) => {
const activeCount = sortedAndIndexedRegistrations.value.slice(0, index).filter(r => r.active).length;
return sortedAndIndexedRegistrations.value[index].active ? activeCount + 1 : '';
};
// console.log('asdfasdf', sortedAndIndexedRegistrations())
return {
alertService,
event,
...dataUtils,
formatDateShort,
previousState,
sortedAndIndexedRegistrations,
getRegistrationIndex,
};
},
});