your signup doesn't get cleared anymore!!

This commit is contained in:
Michael Fatemi 2021-07-11 17:20:58 -04:00
parent cd94a05dcc
commit f199498b81

View File

@ -48,7 +48,7 @@ export default function Event({ event }: { event: IEvent }) {
const [placeId, setPlaceId] = useState<string | null>(null); const [placeId, setPlaceId] = useState<string | null>(null);
const [interested, setInterested] = useState(false); const [interested, setInterested] = useState(false);
const [updating, setUpdating] = useState(false); const [updating, setUpdating] = useState(false);
const [signups, setSignups] = useState<IEventSignup[]>([]); const [signups, setSignups] = useState<IEventSignup[] | null>(null);
const toggleInterested = useCallback(() => setInterested((i) => !i), []); const toggleInterested = useCallback(() => setInterested((i) => !i), []);
const toggleInterestedThrottled = useThrottle(toggleInterested, 500); const toggleInterestedThrottled = useThrottle(toggleInterested, 500);
const existingSignup = useRef({ const existingSignup = useRef({
@ -59,6 +59,10 @@ export default function Event({ event }: { event: IEvent }) {
const me = useMe(); const me = useMe();
useEffect(() => { useEffect(() => {
if (signups === null) {
return;
}
const removeSignup = () => { const removeSignup = () => {
if (prev.interested) { if (prev.interested) {
removeEventSignup(event.id) removeEventSignup(event.id)
@ -71,6 +75,12 @@ export default function Event({ event }: { event: IEvent }) {
const addOrUpdateSignup = () => { const addOrUpdateSignup = () => {
if (!prev.interested || prev.placeId !== placeId) { if (!prev.interested || prev.placeId !== placeId) {
console.log('Adding or updating signup.', prev, {
interested,
placeId,
eventId: event.id,
signups,
});
addOrUpdateEventSignup(event.id, placeId) addOrUpdateEventSignup(event.id, placeId)
.then(() => { .then(() => {
prev.placeId = placeId; prev.placeId = placeId;
@ -88,12 +98,11 @@ export default function Event({ event }: { event: IEvent }) {
} else { } else {
addOrUpdateSignup(); addOrUpdateSignup();
} }
}, [event.id, interested, placeId, updating]); }, [event.id, interested, placeId, signups, updating]);
useEffect(() => { useEffect(() => {
getEventSignups(event.id) getEventSignups(event.id)
.then((signups) => { .then((signups) => {
setSignups(signups);
for (let signup of signups) { for (let signup of signups) {
if (signup.user.id === me?.id) { if (signup.user.id === me?.id) {
setInterested(true); setInterested(true);
@ -103,6 +112,7 @@ export default function Event({ event }: { event: IEvent }) {
existingSignup.current.interested = true; existingSignup.current.interested = true;
} }
} }
setSignups(signups);
}) })
.catch(console.error); .catch(console.error);
}, [event.id, me?.id]); }, [event.id, me?.id]);
@ -157,7 +167,9 @@ export default function Event({ event }: { event: IEvent }) {
</div> </div>
)} )}
<EventCarpools event={event} /> <EventCarpools event={event} />
<EventSignups event={event} myPlaceId={placeId} signups={signups} /> {signups !== null && (
<EventSignups event={event} myPlaceId={placeId} signups={signups} />
)}
</> </>
)} )}
</UISecondaryBox> </UISecondaryBox>