User card opens when clicking link on upcoming events card

I’m still checking whether this is theme-related, but wanted to ask whether anyone else can reproduce it.

On /upcoming-events, clicking a link inside an event card appears to open the user card instead of following the link. This may be a click-target or z-index issue.

Version

Discourse version: 2026.5.0-latest

Commit: 645cb014c0

Steps to reproduce

  1. Go to /upcoming-events.
  2. Find an event card which contains a link.
  3. Click the link on the event card.

Expected result

The link should open/follow normally.

Actual result

A user card opens instead.

Notes

I am not yet sure whether this is caused by core, the calendar/event plugin, or a theme/component on my site. I’ll update this topic once I’ve tested safe mode.

I can provide a screenshot or screen recording if useful.

The calendar event click appears to be handled by FullCalendar ’s eventClick , which opens the menu:

eventClick: async ({ el, event, jsEvent }) => {
  const { postNumber, postUrl, postEvent } = event.extendedProps;

  if (postEvent?.id) {
    jsEvent.preventDefault();

    this.activeMenu = await this.menu.show(
      ...
      {
        identifier: "post-event-menu",
        component: PostEventMenu,
        ...
      }
    );
  }
}

The menu then renders:

const PostEventMenu = <template>
  <DiscoursePostEvent
    @linkToPost={{true}}
    @event={{@data.event}}
    @onClose={{@data.onClose}}
    @withDescription={{true}}
    @clampDescription={{true}}
  />
</template>;

So the path seems to be:

FullCalendar eventClick
→ post-event-menu
→ DiscoursePostEvent
→ user-card behaviour inside the menu/popover

I may be mixing two related surfaces: the full /upcoming-events calendar and the UpcomingEventsList component. The list component appears to render each event as a plain anchor to event.post.url, so I would not expect user-card behaviour there.

I’m not experiencing this issue!

When I go to upcoming events and click on an event, I see the event preview, and if I click the link, I land on the relevant topic.

I may have misunderstood your issue :sweat_smile: