点击即将举行的活动卡片中的链接会打开用户卡片

我仍在确认这是否与主题相关,但想问问是否有人也能复现此问题。

/upcoming-events 页面上,点击事件卡片内的链接似乎会打开用户卡片,而不是正常跳转链接。这可能是点击目标区域或 z-index 层级的问题。

版本

Discourse 版本:2026.5.0-latest

提交:645cb014c0

复现步骤

  1. 进入 /upcoming-events
  2. 找到包含链接的事件卡片。
  3. 点击该事件卡片上的链接。

预期结果

链接应正常打开或跳转。

实际结果

打开的是用户卡片。

备注

我目前还不确定这是由核心程序、日历/事件插件,还是我网站上的某个主题/组件引起的。我将在测试安全模式后更新此话题。

如有需要,我可以提供截图或屏幕录制视频。

日历事件点击似乎由 FullCalendareventClick 处理,该处理会打开菜单:

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,
        ...
      }
    );
  }
}

随后菜单会渲染:

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

因此,流程似乎如下:

FullCalendar eventClick
→ post-event-menu
→ DiscoursePostEvent
→ 菜单/弹出框内的用户卡片行为

我可能混淆了两个相关的界面:完整的 /upcoming-events 日历和 UpcomingEventsList 组件。该列表组件似乎将每个事件渲染为指向 event.post.url 的普通锚点,因此我不期望那里会出现用户卡片的行为。

我没有遇到这个问题!

当我进入“即将举行的活动”并点击某个活动时,会显示该活动的预览,如果我点击链接,就会跳转到相关主题。

我可能误解了你的问题::sweat_smile:

1 个赞

我无法复现,但我将执行 rebuild 以获取这 188 个新提交。我认为这肯定是一个 Safari 渐进式 Web 应用(Progressive Web Application)的问题,并且更可能出现在高抖动网络环境下。