- 集成 tauri-plugin-opener:Cargo/lib.rs/capabilities/npm 四处接线,新增 src/openExternal.ts(桌面走 opener,浏览器回退 window.open,相对路径绝对化) - 关于页 4 个链接、活动栏官网菜单、代理错误横幅 2 处健康检查链接全部改走 openExternal,桌面端可正常跳转 - 设置→外观 主题顺序调整为 深色/浅色/跟随系统 - release 二进制重编并验证(浏览器实测关于页链接可开文档页) - 附带工作区中未提交的扁平化重构现状(另一会话进行中) - homepage 落地页与文档终检通过(8787 / 与 /docs 双 200)
34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { Logo } from "../../components/Logo";
|
|
import { useWorkspace } from "../../workspaceStore";
|
|
export function EmptyState() {
|
|
const setDialog = useWorkspace((s) => s.setDialog);
|
|
return (
|
|
<div className="grid min-h-0 flex-1 place-items-center">
|
|
<div className="text-center">
|
|
<div className="mb-3 opacity-80"><Logo size={56} /></div>
|
|
<div className="ops-dim mb-1 text-sm font-semibold">OpsxAPI · 接口工作台</div>
|
|
<div className="ops-faint mb-5 text-xs">
|
|
从左侧选择接口,或
|
|
<button className="ops-link mx-1" onClick={() => setDialog({ type: "import" })}>
|
|
导入数据
|
|
</button>
|
|
/
|
|
<button
|
|
className="ops-link ml-1"
|
|
onClick={() =>
|
|
setDialog({ type: "new", collectionId: useWorkspace.getState().collections[0]?.id ?? "", parentId: null })
|
|
}
|
|
>
|
|
新建请求
|
|
</button>
|
|
</div>
|
|
<div className="ops-faint text-[11px] leading-6">
|
|
HTTP · GraphQL · WebSocket · SSE · Socket.IO · MQTT
|
|
<br />
|
|
支持 OpenAPI / Postman / Apifox / cURL / HAR 等格式导入导出
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|