wheelshare-frontend/src/components/Event/EventHooks.ts
2021-07-15 13:02:42 -04:00

40 lines
788 B
TypeScript

import { useContext, useDebugValue, useMemo } from 'react';
import { useMe } from '../hooks';
import EventContext from './EventContext';
export function useSignups() {
const signups = useContext(EventContext).event.signups;
useDebugValue(signups);
return signups;
}
export function useMySignup() {
const signups = useSignups();
const me = useMe()!;
const signup = useMemo(() => signups[me.id] ?? null, [signups, me.id]);
useDebugValue(signup);
return signup;
}
export function useMyCarpool() {
const me = useMe()!;
const { event } = useContext(EventContext);
const carpool = useMemo(
() =>
event.carpools.find((carpool) =>
carpool.members.some((member) => member.id === me.id)
),
[event.carpools, me.id]
);
useDebugValue(carpool);
return carpool;
}