Hide “Join” button if user already joined (or event is full)

Hi everyone :waving_hand:

I’m trying to build an event system where users can join or leave an active event.

The core issue seems to be related to multi-match logic in Glide.

Here’s the problem:

  • When a user joins, their name is added to a list (either in a text field or through a relation).
  • If another user joins after, things get messy.
  • If I store the names in a text field, Glide doesn’t treat it as a data list, so I can’t check if the current user is already there.
  • If I use a relation to a junction table (where each user registration = one row), then Glide only lets me use “is empty” or “is not empty” as conditions — which isn’t enough. That way I either get all users, or none, but I can’t test if the current user is included.

I’d like to:

  • Hide the “Join this event” button if the current user has already joined the event, or if the event is full
  • (And ideally show a “Leave event” button in that case)

Any ideas or best practices to achieve this? Im missed someting or not ? (my brain just surrender on this problem ahah)

Thanks in advance! :folded_hands:

1 Like

This video by Robert Petitto introduces a method that can solve your problem. We call it “Trebuchet” around here.

1. Use a Multiple Files/Text/Images (Array) Column

  • In your Events table, add a “Joined Users” column (type: Multiple Files, Multiple Texts or Multiple Images).
  • This column will store an array of user IDs, not just a text string.

2. Add/Remove Users with Set Column Actions

  • In the Events table, use a Make Array column to add the signed-in user’s ID to the existing “Joined Users” column, let’s call it “Add User Array”.
  • When a user joins an event, use a Set Column Values action to set the “Add User Array” value to “Joined Users”.
  • When a user leaves, use a similar logic to remove their ID from the array (using a computed “remove element” column).

3. Prevent Duplicate Joins

  • The method includes logic to disable or hide the “Join” button if the user’s ID is already in the array.
  • This is done by setting a condition: only show the button if the user’s ID is not in the array.

4. Check for Full Events (if needed)

  • You can easily check the length of the array (number of joined users) and compare it to your event’s capacity.
  • If the event is full, hide or disable the “Join” button.

5. Show “Leave” Button

  • If the user’s ID is in the array, show a “Leave” button instead, which removes their ID from the array.
2 Likes

Thanks for the video ! I will check up :folded_hands:
Ive find a way, i think its not a good pratice but… its working :grin:

1 Like