Files
coco-app/src/pages/main/index.tsx
ayangweb df7fb5323a feat: add in-app document preview webview (#1077)
* feat: add in-app document preview webview

* feat: improve mermaid viewer
2026-08-06 15:18:32 +08:00

50 lines
1.4 KiB
TypeScript

import { useEffect } from "react";
import SearchChat from "@/components/SearchChat";
import { useAppStore } from "@/stores/appStore";
import { useSyncStore } from "@/hooks/useSyncStore";
import UpdateApp from "@/components/UpdateApp";
import Synthesize from "@/components/Assistant/Synthesize";
import { useChatStore } from "@/stores/chatStore";
import { useSearchStore } from "@/stores/searchStore";
import platformAdapter from "@/utils/platformAdapter";
function MainApp() {
const { setIsTauri } = useAppStore();
const { setViewExtensionOpened } = useSearchStore();
useEffect(() => {
setIsTauri(true);
// Set up the listener that listens for "open_view_extension" events
//
// Events will be sent when users try to open a View extension via hotkey,
// whose payload contains the needed information to load the View page.
platformAdapter.listenEvent("open_view_extension", async ({ payload }) => {
await platformAdapter.showWindow();
setViewExtensionOpened(payload);
});
platformAdapter.listenEvent("open_url_window", async ({ payload }) => {
if (typeof payload === "string" && payload) {
await platformAdapter.openUrl(payload);
}
});
}, []);
const { synthesizeItem } = useChatStore();
useSyncStore();
return (
<>
<SearchChat isTauri={true} hasModules={["search", "chat"]} />
<UpdateApp />
{synthesizeItem && <Synthesize />}
</>
);
}
export default MainApp;