Files
PromptArch/app/page.tsx
Gemini AI 571aa9f694 feat: Add Slides Generator tool with multi-language support and HTML5 presentation design
- Added SlidesPresentation and Slide types
- Implemented generateSlides method in all services (Qwen, Ollama, Z.AI)
- Created stunning SlidesGenerator component with:
  - 18 language support (English, Chinese, Spanish, French, etc.)
  - 6 theme options (Corporate, Modern, Minimal, Dark, Vibrant, Gradient)
  - 7 audience presets (Executives, Investors, Technical, etc.)
  - HTML5 slide preview with navigation
  - Fullscreen presentation mode
  - Auto-play functionality
  - Export to standalone HTML file
  - Slide thumbnails and speaker notes
- Updated sidebar navigation with new Slides Generator menu item
- Updated store with slidesPresentation state management
2025-12-27 20:51:59 +04:00

56 lines
1.8 KiB
TypeScript

"use client";
import { useState, useEffect } from "react";
import Sidebar from "@/components/Sidebar";
import type { View } from "@/components/Sidebar";
import PromptEnhancer from "@/components/PromptEnhancer";
import PRDGenerator from "@/components/PRDGenerator";
import ActionPlanGenerator from "@/components/ActionPlanGenerator";
import UXDesignerPrompt from "@/components/UXDesignerPrompt";
import SlidesGenerator from "@/components/SlidesGenerator";
import HistoryPanel from "@/components/HistoryPanel";
import SettingsPanel from "@/components/SettingsPanel";
import modelAdapter from "@/lib/services/adapter-instance";
export default function Home() {
const [currentView, setCurrentView] = useState<View>("enhance");
useEffect(() => {
console.log("[Home] Initializing Qwen OAuth service on client...");
modelAdapter["qwenService"]["initialize"]?.();
}, []);
const renderContent = () => {
switch (currentView) {
case "enhance":
return <PromptEnhancer />;
case "prd":
return <PRDGenerator />;
case "action":
return <ActionPlanGenerator />;
case "uxdesigner":
return <UXDesignerPrompt />;
case "slides":
return <SlidesGenerator />;
case "history":
return <HistoryPanel />;
case "settings":
return <SettingsPanel />;
default:
return <PromptEnhancer />;
}
};
return (
<div className="flex min-h-screen bg-gradient-to-br from-slate-50 to-slate-100 dark:from-slate-900 dark:to-slate-800">
<Sidebar currentView={currentView} onViewChange={setCurrentView} />
<main className="flex-1 overflow-auto pt-16 lg:pt-0 px-4 py-4 lg:p-8">
<div className="mx-auto max-w-7xl">
{renderContent()}
</div>
</main>
</div>
);
}