diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/MainBuilderPage.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/MainBuilderPage.tsx new file mode 100644 index 000000000000..c96e33ad0ea5 --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/MainBuilderPage.tsx @@ -0,0 +1,50 @@ +"use client"; + +import { useOnboarding } from "@/providers/onboarding/onboarding-provider"; +import FlowEditor from "@/app/(platform)/build/components/legacy-builder/Flow/Flow"; +import { GraphID } from "@/lib/autogpt-server-api/types"; +import { useSearchParams } from "next/navigation"; +import { useEffect } from "react"; +import { Flow } from "./FlowEditor/Flow"; +import { BuilderViewTabs } from "./BuilderViewTabs/BuilderViewTabs"; +import { useBuilderView } from "./BuilderViewTabs/useBuilderViewTabs"; + +function BuilderContent() { + const query = useSearchParams(); + const { completeStep } = useOnboarding(); + + useEffect(() => { + completeStep("BUILDER_OPEN"); + }, [completeStep]); + + const _graphVersion = query.get("flowVersion"); + const graphVersion = _graphVersion ? parseInt(_graphVersion) : undefined; + return ( + + ); +} + +export default function MainBuilderPage() { + const { + isSwitchEnabled, + selectedView, + setSelectedView, + isNewFlowEditorEnabled, + } = useBuilderView(); + + // Switch is temporary, we will remove it once our new flow editor is ready + if (isSwitchEnabled) { + return ( +
+ + {selectedView === "new" ? : } +
+ ); + } + + return isNewFlowEditorEnabled ? : ; +} diff --git a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/Flow/Flow.tsx b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/Flow/Flow.tsx index ca2b317d8597..92a07fc312d3 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/Flow/Flow.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/components/legacy-builder/Flow/Flow.tsx @@ -164,13 +164,6 @@ const FlowEditor: React.FC<{ // It stores the dimension of all nodes with position as well const [nodeDimensions, setNodeDimensions] = useState({}); - // Set page title with or without graph name - useEffect(() => { - document.title = savedAgent - ? `${savedAgent.name} - Builder - AutoGPT Platform` - : `Builder - AutoGPT Platform`; - }, [savedAgent]); - const graphHasWebhookNodes = useMemo( () => nodes.some((n) => diff --git a/autogpt_platform/frontend/src/app/(platform)/build/page.tsx b/autogpt_platform/frontend/src/app/(platform)/build/page.tsx index 6df571ef61c6..34a166cca8d4 100644 --- a/autogpt_platform/frontend/src/app/(platform)/build/page.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/build/page.tsx @@ -1,51 +1,36 @@ -"use client"; +import { Metadata } from "next"; +import MainBuilderPage from "./components/MainBuilderPage"; +import { getV1GetSpecificGraph } from "@/app/api/__generated__/endpoints/graphs/graphs"; -import { useOnboarding } from "@/providers/onboarding/onboarding-provider"; -import FlowEditor from "@/app/(platform)/build/components/legacy-builder/Flow/Flow"; -// import LoadingBox from "@/components/__legacy__/ui/loading"; -import { GraphID } from "@/lib/autogpt-server-api/types"; -import { useSearchParams } from "next/navigation"; -import { useEffect } from "react"; -import { Flow } from "./components/FlowEditor/Flow"; -import { BuilderViewTabs } from "./components/BuilderViewTabs/BuilderViewTabs"; -import { useBuilderView } from "./components/BuilderViewTabs/useBuilderViewTabs"; +export async function generateMetadata({ + searchParams, +}: { + searchParams: Promise<{ flowID: string; flowVersion: string }>; +}): Promise { + const { flowID, flowVersion } = await searchParams; -function BuilderContent() { - const query = useSearchParams(); - const { completeStep } = useOnboarding(); - - useEffect(() => { - completeStep("BUILDER_OPEN"); - }, [completeStep]); - - const _graphVersion = query.get("flowVersion"); - const graphVersion = _graphVersion ? parseInt(_graphVersion) : undefined; - return ( - - ); -} + if (!flowID || !flowVersion) { + return { + title: `Builder - AutoGPT Platform`, + }; + } -export default function BuilderPage() { - const { - isSwitchEnabled, - selectedView, - setSelectedView, - isNewFlowEditorEnabled, - } = useBuilderView(); + const { data: graph } = await getV1GetSpecificGraph(flowID, { + version: parseInt(flowVersion), + }); - // Switch is temporary, we will remove it once our new flow editor is ready - if (isSwitchEnabled) { - return ( -
- - {selectedView === "new" ? : } -
- ); + if (!graph || typeof graph !== "object" || !("name" in graph)) { + return { + title: `Builder - AutoGPT Platform`, + }; } - return isNewFlowEditorEnabled ? : ; + return { + title: `${graph.name} - Builder - AutoGPT Platform`, + }; } +const BuilderPage = () => { + return ; +}; + +export default BuilderPage;