From f17a0edf8685da5b9d18ed797ccb64789451766c Mon Sep 17 00:00:00 2001 From: JoeMakuta Date: Tue, 31 Mar 2026 15:39:22 +0200 Subject: [PATCH] feat: dynamically import video presentation tool to optimize bundle size --- .../components/assistant-ui/assistant-message.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/surfsense_web/components/assistant-ui/assistant-message.tsx b/surfsense_web/components/assistant-ui/assistant-message.tsx index 62407bbf7..db1129372 100644 --- a/surfsense_web/components/assistant-ui/assistant-message.tsx +++ b/surfsense_web/components/assistant-ui/assistant-message.tsx @@ -6,6 +6,7 @@ import { useAui, useAuiState, } from "@assistant-ui/react"; +import dynamic from "next/dynamic"; import { useAtomValue } from "jotai"; import { CheckIcon, @@ -76,12 +77,20 @@ import { resolveSafeNavigationHref, } from "@/components/tool-ui/shared/media"; import { RecallMemoryToolUI, SaveMemoryToolUI } from "@/components/tool-ui/user-memory"; -import { GenerateVideoPresentationToolUI } from "@/components/tool-ui/video-presentation"; import { Drawer, DrawerContent, DrawerHandle, DrawerHeader, DrawerTitle } from "@/components/ui/drawer"; import { useComments } from "@/hooks/use-comments"; import { useMediaQuery } from "@/hooks/use-media-query"; import { cn } from "@/lib/utils"; +// Dynamically import video presentation tool to avoid loading Babel and Remotion in main bundle +const GenerateVideoPresentationToolUI = dynamic( + () => + import("@/components/tool-ui/video-presentation").then((m) => ({ + default: m.GenerateVideoPresentationToolUI, + })), + { ssr: false } +); + function extractDomain(url: string): string | undefined { try { return new URL(url).hostname.replace(/^www\./, "");