类似 Facebook 的话题弹窗 - 这样更好吗?

我很想测试一下你的版本 @Don :heart_eyes:

你好 :waving_hand:

当然,绝对没问题!最初,我是将这个功能直接构建到我自己的自定义主题中的,因此我必须将其提取并拆分为一个独立的主题组件。

在我自己的网站上,我通过一个专用按钮触发模态窗口,而这个主题组件则在点击主题时直接触发它。

你可以在这里通过 Theme Creator 试用它:

哇,看起来非常快。我真的很喜欢。如果你能把它开源,我会非常感兴趣。干得漂亮!

我已经有几十年没用过“面孔之书”了,所以那里没有任何参考,不过无论如何……唐,这看起来真的很酷。我本以为自己不会喜欢它,但在手机上我觉得它可能会非常棒。再次说明,这与Facebook无关,但在我看来,这介于普通论坛和聊天室之间。

看起来和用起来都非常流畅。太酷了 :chefs_kiss:

它似乎发出了大量的网络请求……我在主题创建器上尝试时不断遇到速率限制。看起来它必须从主题列表中获取所有主题内容,即使你没有进入该主题(这让它感觉非常快速)?

没错,我最初开发这个组件是为了我自己的网站,它使用一种自定义的卡片布局,每次屏幕上只能显示 1 到 2 个主题。在那种设置下,视口预加载运行顺畅,不会触发速率限制。然而,在标准的 Discourse 基于表格的主题列表中,同时可见的主题要多得多,导致在滚动过程中预加载队列填满的速度快得多。

这其实也是我一直没有正式发布该组件的主要原因——我知道首先需要针对标准布局调整这种行为。

你说得很对:要让它成为一个稳固、通用的组件,我需要对其进行优化。

我添加了一些之前硬编码的设置,因此该组件可以轻松适应不同的布局。

有没有可能将其开源,让我能试玩一下?:slight_smile: 我很喜欢 :wink:

说实话,我觉得这个更适合你的主题,而不是标准的话题列表。

我刚刚添加了两个新设置,使自定义布局更加灵活:

  • trigger_style:选择将整个主题行设为可点击(row),或添加一个小展开图标(button),在打开预览的同时保留正常的主题链接不变。

  • plugin_outlet:使用按钮样式时,您可以指定展开图标渲染的具体插件出口(默认为 topic-list-after-title)。

这允许自定义主题根据需要将其触发按钮附加到它们自己的自定义插件出口上。

我实际上刚刚在我的网站上激活了这个完全独立的组件。我从主题中完全删除了原始代码,并替换为通过 <PluginOutlet /> 运行的此组件。

此外,我还修复了阅读跟踪功能的一个 bug。

在开源之前,我想在真实的生产环境中短暂测试一下,以确保一切稳定可靠。


顺便说一句,我已暂时将主题创建者预览切换为 button 触发类型,以便您进行测试!