(null);
@@ -59,7 +103,8 @@ export default function Carpools({ event }: { event: IEvent }) {
),
[event.carpools, me.id]
);
- const alreadyInCarpool = myCarpool !== undefined;
+ const alreadyInCarpool =
+ myCarpool !== undefined || creationStatus === 'completed';
const createEmptyCarpool = useCallback(() => {
setCreationStatus('pending');
@@ -107,7 +152,11 @@ export default function Carpools({ event }: { event: IEvent }) {
>
)}
{event.carpools.map((carpool) => (
-
+
))}
);
diff --git a/src/components/Event/EventContext.tsx b/src/components/Event/EventContext.tsx
new file mode 100644
index 0000000..40633da
--- /dev/null
+++ b/src/components/Event/EventContext.tsx
@@ -0,0 +1,12 @@
+import { createContext } from 'react';
+import { IEvent } from '../types';
+
+const EventContext = createContext({
+ refresh: () => {
+ console.error('not implemented: refresh');
+ },
+ event: null! as IEvent,
+ default: true,
+});
+
+export default EventContext;
diff --git a/src/components/Event/EventPage.tsx b/src/components/Event/EventPage.tsx
index 2cd8865..42a4e04 100644
--- a/src/components/Event/EventPage.tsx
+++ b/src/components/Event/EventPage.tsx
@@ -16,7 +16,7 @@ export default function EventPage() {
return (
<>
- {event ? : Loading...}
+ {event ? : Loading...}
>
);
}
diff --git a/src/components/EventStream.tsx b/src/components/EventStream.tsx
index c394463..4f8b67a 100644
--- a/src/components/EventStream.tsx
+++ b/src/components/EventStream.tsx
@@ -5,7 +5,7 @@ export default function EventStream({ events }: { events: IEvent[] }) {
return (
{events.map((event) => (
-
+
))}
);
diff --git a/src/state/Notifications/NotificationsHooks.tsx b/src/state/Notifications/NotificationsHooks.tsx
index 5959238..dbb3f70 100644
--- a/src/state/Notifications/NotificationsHooks.tsx
+++ b/src/state/Notifications/NotificationsHooks.tsx
@@ -2,6 +2,14 @@ import { useMemo } from 'react';
import { useContext } from 'react';
import { NotificationsContext } from './NotificationsProvider';
+export function useSendCarpoolRequest() {
+ return useContext(NotificationsContext).sendCarpoolRequest;
+}
+
+export function useCancelCarpoolRequest() {
+ return useContext(NotificationsContext).cancelCarpoolRequest;
+}
+
export function useInvitationState(
carpoolId: number
): 'invited' | 'requested' | 'none' {