From c649ec495cbe621ea5ede1152ae1bf7dfb266bc6 Mon Sep 17 00:00:00 2001 From: shiva raj badu Date: Thu, 24 Jul 2025 22:00:03 +0545 Subject: [PATCH] refactor(nextjs): remove unused files and clean up imports --- .../components/ImageEditor.tsx | 2 +- .../components/NewSlide.tsx | 3 +- .../outline/components/GroupLayouts.tsx | 3 +- .../components/PresentationPage.tsx | 6 +- .../services/api/presentation-generation.ts | 2 - .../services/setting-store.ts | 74 ------------------- servers/nextjs/app/api/footer/route.ts | 60 --------------- servers/nextjs/app/layout.tsx | 1 - servers/nextjs/app/schema/page.tsx | 26 +++++++ .../professional/BusinessModelSlide.tsx | 1 + .../professional/OurServiceSlide.tsx | 2 +- .../professional/StatisticDualChartSlide.tsx | 1 + .../professional/StatisticSlide.tsx | 1 + servers/nextjs/test-shadow-formats.html | 1 - 14 files changed, 36 insertions(+), 147 deletions(-) delete mode 100644 servers/nextjs/app/(presentation-generator)/services/setting-store.ts delete mode 100644 servers/nextjs/app/api/footer/route.ts create mode 100644 servers/nextjs/app/schema/page.tsx delete mode 100644 servers/nextjs/test-shadow-formats.html diff --git a/servers/nextjs/app/(presentation-generator)/components/ImageEditor.tsx b/servers/nextjs/app/(presentation-generator)/components/ImageEditor.tsx index ba3093b7..88b0b18d 100644 --- a/servers/nextjs/app/(presentation-generator)/components/ImageEditor.tsx +++ b/servers/nextjs/app/(presentation-generator)/components/ImageEditor.tsx @@ -82,7 +82,7 @@ const ImageEditor = ({ if (isOpen && !previousGeneratedImages.length) { getPreviousGeneratedImage(); } - }, [isOpen, previousGeneratedImages]); + }, [isOpen]); // Handle close with animation const handleClose = () => { diff --git a/servers/nextjs/app/(presentation-generator)/components/NewSlide.tsx b/servers/nextjs/app/(presentation-generator)/components/NewSlide.tsx index 4ff3c840..52282428 100644 --- a/servers/nextjs/app/(presentation-generator)/components/NewSlide.tsx +++ b/servers/nextjs/app/(presentation-generator)/components/NewSlide.tsx @@ -1,10 +1,9 @@ import { Trash2 } from 'lucide-react'; import React from 'react' -import { useGroupLayoutLoader } from '@/app/layout-preview/hooks/useGroupLayoutLoader'; import { useDispatch } from 'react-redux'; import { addNewSlide } from '@/store/slices/presentationGeneration'; import { Loader2 } from 'lucide-react'; - +import { useGroupLayoutLoader } from '@/app/layout-preview/hooks/useGroupLayoutLoader'; interface NewSlideProps { setShowNewSlideSelection: (show: boolean) => void; group: string; diff --git a/servers/nextjs/app/(presentation-generator)/outline/components/GroupLayouts.tsx b/servers/nextjs/app/(presentation-generator)/outline/components/GroupLayouts.tsx index 3f9b3417..0c9f259b 100644 --- a/servers/nextjs/app/(presentation-generator)/outline/components/GroupLayouts.tsx +++ b/servers/nextjs/app/(presentation-generator)/outline/components/GroupLayouts.tsx @@ -1,8 +1,7 @@ -import { useGroupLayoutLoader } from '@/app/layout-preview/hooks/useGroupLayoutLoader'; import { CheckCircle } from 'lucide-react'; import React from 'react'; import { LayoutGroup } from "../types/index"; - +import { useGroupLayoutLoader } from '@/app/layout-preview/hooks/useGroupLayoutLoader'; interface GroupLayoutsProps { group: LayoutGroup; onSelectLayoutGroup: (group: LayoutGroup) => void; diff --git a/servers/nextjs/app/(presentation-generator)/presentation/components/PresentationPage.tsx b/servers/nextjs/app/(presentation-generator)/presentation/components/PresentationPage.tsx index e34045e5..052c7731 100644 --- a/servers/nextjs/app/(presentation-generator)/presentation/components/PresentationPage.tsx +++ b/servers/nextjs/app/(presentation-generator)/presentation/components/PresentationPage.tsx @@ -4,9 +4,9 @@ import { useSelector } from "react-redux"; import { RootState } from "@/store/store"; import { Skeleton } from "@/components/ui/skeleton"; import PresentationMode from "../../components/PresentationMode"; -import SidePanel from "../components/SidePanel"; -import SlideContent from "../components/SlideContent"; -import Header from "../components/Header"; +import SidePanel from "./SidePanel"; +import SlideContent from "./SlideContent"; +import Header from "./Header"; import { Button } from "@/components/ui/button"; import { AlertCircle, Loader2 } from "lucide-react"; import Help from "./Help"; diff --git a/servers/nextjs/app/(presentation-generator)/services/api/presentation-generation.ts b/servers/nextjs/app/(presentation-generator)/services/api/presentation-generation.ts index 9d567e08..079a6bc0 100644 --- a/servers/nextjs/app/(presentation-generator)/services/api/presentation-generation.ts +++ b/servers/nextjs/app/(presentation-generator)/services/api/presentation-generation.ts @@ -1,8 +1,6 @@ import { getHeader, getHeaderForFormData } from "./header"; import { IconSearch, ImageGenerate, ImageSearch, PreviousGeneratedImagesResponse } from "./params"; export class PresentationGenerationApi { - - static async uploadDoc(documents: File[]) { const formData = new FormData(); diff --git a/servers/nextjs/app/(presentation-generator)/services/setting-store.ts b/servers/nextjs/app/(presentation-generator)/services/setting-store.ts deleted file mode 100644 index 34ad3eb9..00000000 --- a/servers/nextjs/app/(presentation-generator)/services/setting-store.ts +++ /dev/null @@ -1,74 +0,0 @@ -import path from 'path'; -import fs from 'fs'; - -class SettingsStore { - private settingsPath: string | undefined; - private settings: { [key: string]: any }; - - constructor() { - this.settings = {}; - this.loadSettings(); - } - - private getSettingsPath() { - if (this.settingsPath) return this.settingsPath; - this.settingsPath = path.join(process.env.APP_DATA_DIRECTORY!, 'settings.json'); - return this.settingsPath; - } - - private loadSettings() { - try { - const settingsPath = this.getSettingsPath(); - if (fs.existsSync(settingsPath)) { - const data = fs.readFileSync(settingsPath, 'utf-8'); - this.settings = JSON.parse(data); - - } else { - this.settings = {}; - this.saveSettings(); - - } - } catch (error) { - console.error('Error loading settings:', error); - this.settings = {}; - } - } - - private saveSettings() { - try { - const settingsPath = this.getSettingsPath(); - fs.writeFileSync(settingsPath, JSON.stringify(this.settings, null, 2)); - - } catch (error) { - console.error('Error saving settings:', error); - throw error; - } - } - - - get(key: string, defaultValue: any = null): any { - const value = this.settings[key]; - - return value || defaultValue; - } - - set(key: string, value: any): void { - - this.settings[key] = value; - this.saveSettings(); - } - - // Helper method to check if settings exist - has(key: string): boolean { - return key in this.settings; - } - - // Helper method to delete a setting - delete(key: string): void { - delete this.settings[key]; - this.saveSettings(); - } -} - -// Export a singleton instance -export const settingsStore = new SettingsStore(); \ No newline at end of file diff --git a/servers/nextjs/app/api/footer/route.ts b/servers/nextjs/app/api/footer/route.ts deleted file mode 100644 index 80dda2f7..00000000 --- a/servers/nextjs/app/api/footer/route.ts +++ /dev/null @@ -1,60 +0,0 @@ - -import { settingsStore } from "@/app/(presentation-generator)/services/setting-store"; -import { NextRequest, NextResponse } from "next/server"; - -const FOOTER_KEY = 'footer'; -// GET handler to retrieve properties -export async function GET(request: NextRequest) { - try { - const properties = settingsStore.get(FOOTER_KEY); - - if (!properties) { - return NextResponse.json({ properties: null }); - } - - return NextResponse.json({ properties }); - } catch (error) { - console.error('Error retrieving footer properties:', error); - return NextResponse.json( - { error: 'Failed to retrieve footer properties' }, - { status: 500 } - ); - } -} - - -// POST handler to save properties -export async function POST(request: NextRequest) { - try { - const body = await request.json(); - const { properties } = body; - - if (!properties) { - return NextResponse.json( - { error: 'Properties are required' }, - { status: 400 } - ); - } - - // Validate required properties - if (!properties.logoProperties || !properties.footerMessage) { - return NextResponse.json( - { error: 'Invalid footer properties structure' }, - { status: 400 } - ); - } - - settingsStore.set(FOOTER_KEY, properties); - - return NextResponse.json({ - success: true, - properties - }); - } catch (error) { - console.error('Error saving footer properties:', error); - return NextResponse.json( - { error: 'Failed to save footer properties' }, - { status: 500 } - ); - } -} \ No newline at end of file diff --git a/servers/nextjs/app/layout.tsx b/servers/nextjs/app/layout.tsx index 39aab20f..a90f163d 100644 --- a/servers/nextjs/app/layout.tsx +++ b/servers/nextjs/app/layout.tsx @@ -87,7 +87,6 @@ export default function RootLayout({ className={`${inter.variable} ${roboto.variable} ${instrument_sans.variable} antialiased`} > - {children} diff --git a/servers/nextjs/app/schema/page.tsx b/servers/nextjs/app/schema/page.tsx new file mode 100644 index 00000000..17a0d601 --- /dev/null +++ b/servers/nextjs/app/schema/page.tsx @@ -0,0 +1,26 @@ +'use client' +import React from 'react' +import { useSearchParams } from 'next/navigation' +import { useLayout } from '../(presentation-generator)/context/LayoutContext' +const page = () => { + const searchParams = useSearchParams() + const group = searchParams.get('group') + const { getLayoutsByGroup, loading } = useLayout() + if (!group) { + return
No group provided
+ } + const layouts = getLayoutsByGroup(group) + return ( +
+ {loading ? ( +
Loading...
+ ) : ( +
+
{JSON.stringify(layouts, null, 2)}
+
+ )} +
+ ) +} + +export default page diff --git a/servers/nextjs/presentation-layouts/professional/BusinessModelSlide.tsx b/servers/nextjs/presentation-layouts/professional/BusinessModelSlide.tsx index 3f27a580..534aa905 100644 --- a/servers/nextjs/presentation-layouts/professional/BusinessModelSlide.tsx +++ b/servers/nextjs/presentation-layouts/professional/BusinessModelSlide.tsx @@ -1,3 +1,4 @@ +import React from "react"; import * as z from "zod"; import { ImageSchema, IconSchema } from "../defaultSchemes"; diff --git a/servers/nextjs/presentation-layouts/professional/OurServiceSlide.tsx b/servers/nextjs/presentation-layouts/professional/OurServiceSlide.tsx index 10e6b520..e0b55ca0 100644 --- a/servers/nextjs/presentation-layouts/professional/OurServiceSlide.tsx +++ b/servers/nextjs/presentation-layouts/professional/OurServiceSlide.tsx @@ -82,7 +82,7 @@ const OurServiceSlide = ({ data }: { data: Partial }) => { {bulletPoints && bulletPoints.map((point, index) => (
-
+

{point}

diff --git a/servers/nextjs/presentation-layouts/professional/StatisticDualChartSlide.tsx b/servers/nextjs/presentation-layouts/professional/StatisticDualChartSlide.tsx index b0fe63f7..aa5d2f42 100644 --- a/servers/nextjs/presentation-layouts/professional/StatisticDualChartSlide.tsx +++ b/servers/nextjs/presentation-layouts/professional/StatisticDualChartSlide.tsx @@ -1,3 +1,4 @@ +import React from "react"; import * as z from "zod"; import { ImageSchema, IconSchema } from "../defaultSchemes"; import { ChartContainer, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart'; diff --git a/servers/nextjs/presentation-layouts/professional/StatisticSlide.tsx b/servers/nextjs/presentation-layouts/professional/StatisticSlide.tsx index 17748b55..15a85c27 100644 --- a/servers/nextjs/presentation-layouts/professional/StatisticSlide.tsx +++ b/servers/nextjs/presentation-layouts/professional/StatisticSlide.tsx @@ -1,3 +1,4 @@ +import React from "react"; import * as z from "zod"; import { ImageSchema, IconSchema } from "../defaultSchemes"; import { ChartContainer, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart'; diff --git a/servers/nextjs/test-shadow-formats.html b/servers/nextjs/test-shadow-formats.html deleted file mode 100644 index 0519ecba..00000000 --- a/servers/nextjs/test-shadow-formats.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file