✨ feat(ai-providers): add homepage quick-link icon to provider base url - #507
✨ feat(ai-providers): add homepage quick-link icon to provider base url#507nasamio wants to merge 2 commits into
Conversation
|
你好,这是我在该仓库的首次贡献,PR Template 工作流需要 maintainer 批准后才能运行(我这边界面没有 Approve and run 按钮)。已按仓库 PR 模板补齐了 body 的 section(## Summary / ## Scope / ## Changes 等),方便时麻烦批准一下 workflow 运行,谢谢! |
|
感谢提交。这个功能方向本身没有问题,但当前 PR 整体还没有达到可合并状态,建议先把流程、范围和实现边界整理完整后,再进入下一轮代码审查。 目前主要有以下几个需要处理的问题:
目前 Frontend 的 type-check、lint、test、build 本身是能通过的,所以并不是实现方向完全不可行。主要问题是当前 PR 还比较像一个可运行的初版,尚未整理到符合项目合并标准的完成态。 请先把上述流程、PR 描述、UI 证据、URL 校验和 issue scope 一并整理完成,再进行下一轮 review。 |
Summary
AI 提供商页的地址(baseUrl)前面新增一个外部链接图标,点击即可在新标签页打开该提供商的主站,无需复制地址或使用网址收藏夹。Closes #480。
Scope
apps/web前端:AI 提供商列表页(ProviderTable)的地址单元格Changes
resolveProviderHomepage(ProviderTable/homepage.ts):从 baseUrl 推导主站域名https://sharedchat.cc/v1→https://sharedchat.cc(取 origin,去路径)https://(如sharedchat.cc/v1→https://sharedchat.cc)null,不渲染图标ProviderTable地址单元格:baseUrl 前渲染外部链接图标(IconExternalLink),target="_blank" rel="noopener noreferrer";点击stopPropagation,不触发行详情抽屉ai_providers.open_homepage(简中 / 繁中 / en)User Impact
用户可直接从提供商列表一键打开对应主站(如签到页、统计页),无需复制地址或维护收藏夹。地址无效时不显示图标,不影响现有交互。
Compatibility / Runtime Notes
纯前端改动,无 API、配置结构或数据存储变更;不依赖 issue 中提到的"可配置主站链接"字段(需扩展配置结构并跨 CPA 存储,留作后续功能,当前按"未配置时默认访问地址域名"实现)。
Data / Security Notes
无数据处理变更。链接使用
rel="noopener noreferrer"防止新页面反向引用;仅基于配置中已有的 baseUrl 推导,不引入新数据源。Risk / Rollback
低风险:改动局限于地址单元格的展示层,图标可独立移除;不触发行点击(详情抽屉)、编辑、删除、启停等现有交互。
Verification
homepage.test.ts纯函数单测:路径剥离、端口 / IP、无协议补全、非法地址ProviderTable.test.tsx组件测试:图标链接渲染与href/target/rel断言、空 / 非法 baseUrl 不渲染npm run type-check、npm run lint通过npm test通过(唯一失败为既有 flaky 的demoPersistIsolation.test.ts,单独运行通过,与本次改动无关)https://gateway.example.com/v1→https://gateway.example.com),原页面不跳转、不打开详情抽屉Screenshots / Recordings
无(demo 模式浏览器验证已通过,可自行在 AI 提供商页查看效果)。
Docs
无需文档变更。
Related