diff --git a/components/AssignedCrew.vue b/components/AssignedCrew.vue index c276009..4550a6b 100644 --- a/components/AssignedCrew.vue +++ b/components/AssignedCrew.vue @@ -24,18 +24,18 @@ defineProps<{ edit?: boolean }>(); -const { data: accounts } = useAccounts(); -const accountsById = computed(() => new Map(accounts.value?.map?.(a => [a.id, a]))); +const usersStore = useUsersStore(); +await usersStore.fetch(); const assignedIds = defineModel>({ required: true }); const assigned = computed( () => [...assignedIds.value].map( - id => accountsById.value.get(id) ?? { id, name: String(id) } + id => usersStore.users.get(id) ?? { id, name: String(id) } ) ); const crewByName = computed(() => new Map( - accounts.value - ?.filter?.(a => a.type === "crew" || a.type === "admin") - ?.map?.(a => [a.name, a]) + [...usersStore.users.values()] + .filter(a => a.type === "crew" || a.type === "admin") + .map(a => [a.name!, a]) )); const addName = ref(""); function addCrew() { diff --git a/components/CardEvent.vue b/components/CardEvent.vue index 875abab..80a5f2f 100644 --- a/components/CardEvent.vue +++ b/components/CardEvent.vue @@ -33,7 +33,7 @@

Crew: - {{ [...slot.assigned].map(id => idToAccount.get(id)?.name).join(", ") }} + {{ [...slot.assigned].map(id => usersStore.users.get(id)?.name).join(", ") }}

@@ -48,8 +48,8 @@ defineProps<{ }>() const accountStore = useAccountStore(); -const { data: accounts } = await useAccounts(); -const idToAccount = computed(() => new Map(accounts.value?.map(a => [a.id, a]))); +const usersStore = useUsersStore(); +await usersStore.fetch(); function formatTime(time: DateTime) { return time.toFormat("yyyy-LL-dd HH:mm"); diff --git a/composables/accounts.ts b/composables/accounts.ts deleted file mode 100644 index a6be47e..0000000 --- a/composables/accounts.ts +++ /dev/null @@ -1,10 +0,0 @@ -export const useAccounts = () => useFetch( - "/api/accounts", - { - transform: (input) => input === undefined ? false as any as null: input, - getCachedData(key, nuxtApp) { - return nuxtApp.payload.data[key]; - }, - dedupe: "defer", - } -); diff --git a/pages/edit.vue b/pages/edit.vue index 618746b..ec1c764 100644 --- a/pages/edit.vue +++ b/pages/edit.vue @@ -11,11 +11,11 @@ :selected="crewFilter === undefined" ><All Crew> + v-for="user in [...usersStore.users.values()].filter(a => a.type === 'crew' || a.type === 'admin')" + :key="user.id" + :value="String(user.id)" + :selected="crewFilter === String(user.id)" + >{{ user.name }} @@ -104,7 +104,8 @@ const tabs = [ ]; const schedule = await useSchedule(); -const { data: accounts } = await useAccounts(); +const usersStore = useUsersStore(); +await usersStore.fetch(); const accountStore = useAccountStore(); const route = useRoute(); diff --git a/pages/schedule.vue b/pages/schedule.vue index 119cd5e..d6c5eca 100644 --- a/pages/schedule.vue +++ b/pages/schedule.vue @@ -30,13 +30,13 @@ value="assigned" :selected='filter === "assigned"' >Assigned to Me - + + v-for="user in [...usersStore.users.values()].filter(a => a.type === 'crew' || a.type === 'admin')" + :key="user.id" + :value="`crew-${user.id}`" + :selected="filter === `crew-${user.id}`" + >{{ user.name }} @@ -55,7 +55,8 @@