diff --git a/Dockerfile.dev b/Dockerfile.dev index 89c2b6a8..7f168f4a 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -24,7 +24,7 @@ ENV TEMP_DIRECTORY=/tmp/presenton ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium # Install ollama -RUN curl -fsSL http://ollama.com/install.sh | sh +# RUN curl -fsSL http://ollama.com/install.sh | sh # Install dependencies for FastAPI RUN pip install aiohttp aiomysql aiosqlite asyncpg fastapi[standard] \ diff --git a/servers/nextjs/app/(presentation-generator)/presentation/components/Header.tsx b/servers/nextjs/app/(presentation-generator)/presentation/components/Header.tsx index 591f5493..fc11296c 100644 --- a/servers/nextjs/app/(presentation-generator)/presentation/components/Header.tsx +++ b/servers/nextjs/app/(presentation-generator)/presentation/components/Header.tsx @@ -4,9 +4,9 @@ import { SquareArrowOutUpRight, Play, Loader2, - Redo2 , + Redo2, Undo2, - RefreshCcw, + } from "lucide-react"; import React, { useState } from "react"; import Wrapper from "@/components/Wrapper"; @@ -73,8 +73,6 @@ const Header = ({ // Save the presentation data before exporting trackEvent(MixpanelEvent.Header_UpdatePresentationContent_API_Call); await PresentationGenerationApi.updatePresentationContent(presentationData); - - trackEvent(MixpanelEvent.Header_GetPptxModel_API_Call); const pptx_model = await get_presentation_pptx_model(presentation_id); if (!pptx_model) { @@ -188,28 +186,28 @@ const Header = ({
{/* undo redo */}
- - - + - - + + + + + +
diff --git a/servers/nextjs/app/api/export-as-pdf/route.ts b/servers/nextjs/app/api/export-as-pdf/route.ts index 99111a4b..8ea9023a 100644 --- a/servers/nextjs/app/api/export-as-pdf/route.ts +++ b/servers/nextjs/app/api/export-as-pdf/route.ts @@ -81,8 +81,15 @@ export async function POST(req: NextRequest) { browser.close(); const sanitizedTitle = sanitizeFilename(title ?? "presentation"); + const appDataDirectory = process.env.APP_DATA_DIRECTORY!; + if (!appDataDirectory) { + return NextResponse.json({ + error: "App data directory not found", + status: 500, + }); + } const destinationPath = path.join( - process.env.APP_DATA_DIRECTORY!, + appDataDirectory, "exports", `${sanitizedTitle}.pdf` ); diff --git a/servers/nextjs/app/api/upload-image/route.ts b/servers/nextjs/app/api/upload-image/route.ts index b66b3fc4..5bcafdab 100644 --- a/servers/nextjs/app/api/upload-image/route.ts +++ b/servers/nextjs/app/api/upload-image/route.ts @@ -21,10 +21,16 @@ export async function POST(request: NextRequest) { const bytes = await file.arrayBuffer(); const buffer = Buffer.from(bytes); + if (!userDataDir) { + return NextResponse.json( + { error: "User data directory not found" }, + { status: 500 } + ); + } // Create uploads directory if it doesn't exist const uploadsDir = path.join(userDataDir, "uploads"); fs.mkdirSync(uploadsDir, { recursive: true }); - + // Generate unique filename const filename = `${crypto.randomBytes(16).toString("hex")}.png`; diff --git a/servers/nextjs/app/api/user-config/route.ts b/servers/nextjs/app/api/user-config/route.ts index 03b801e3..1939175e 100644 --- a/servers/nextjs/app/api/user-config/route.ts +++ b/servers/nextjs/app/api/user-config/route.ts @@ -4,11 +4,18 @@ import { LLMConfig } from "@/types/llm_config"; const userConfigPath = process.env.USER_CONFIG_PATH!; const canChangeKeys = process.env.CAN_CHANGE_KEYS !== "false"; -console.log("UserConfigPath:", userConfigPath); + export async function GET() { if (!canChangeKeys) { return NextResponse.json({ error: "You are not allowed to access this resource", + status: 403, + }); + } + if (!userConfigPath) { + return NextResponse.json({ + error: "User config path not found", + status: 500, }); }