From 5ae2f33ca1e442e0ef7a06b7366a90c3c38ebf4a Mon Sep 17 00:00:00 2001 From: Michael Fatemi Date: Mon, 5 Jul 2021 21:01:27 -0400 Subject: [PATCH] make it possible to sign up for an event without giving your address --- src/components/Event.tsx | 14 ++++++++------ src/components/api.ts | 5 ++++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/components/Event.tsx b/src/components/Event.tsx index 278339b..7d6d5bb 100644 --- a/src/components/Event.tsx +++ b/src/components/Event.tsx @@ -1,5 +1,9 @@ import { useCallback, useEffect, useRef, useState } from 'react'; -import { addEventSignup, getEventSignups, removeEventSignup } from './api'; +import { + addOrUpdateEventSignup, + getEventSignups, + removeEventSignup, +} from './api'; import { green, lightgrey } from './colors'; import { useMe } from './hooks'; import latlongdist, { R_miles } from './latlongdist'; @@ -312,9 +316,9 @@ export default function Event({ event }: { event: IEvent }) { } }; - const addSignup = () => { + const addOrUpdateSignup = () => { if (!prev.interested) { - addEventSignup(event.id, placeId!) + addOrUpdateEventSignup(event.id, placeId) .then(() => { prev.placeId = placeId; prev.eventId = event.id; @@ -328,10 +332,8 @@ export default function Event({ event }: { event: IEvent }) { if (!interested) { removeSignup(); - } else if (placeId == null) { - removeSignup(); } else { - addSignup(); + addOrUpdateSignup(); } }, [event.id, interested, placeId, updating]); diff --git a/src/components/api.ts b/src/components/api.ts index 5565c7e..3ff9f76 100644 --- a/src/components/api.ts +++ b/src/components/api.ts @@ -55,7 +55,10 @@ export async function getEventSignups( return await get(`/events/${eventId}/signups`); } -export async function addEventSignup(eventId: number, placeId: string) { +export async function addOrUpdateEventSignup( + eventId: number, + placeId: string | null +) { return await post(`/events/${eventId}/signup`, { placeId, });