From 33ed6eaa5b94b5905728bf7a02a356e35a2f0a38 Mon Sep 17 00:00:00 2001 From: shiva raj badu Date: Sat, 12 Jul 2025 01:52:10 +0545 Subject: [PATCH] remove(sidepanel,api/dashboard): remove thumbnail logic,api endpoint & SS package --- .../presentation/components/SidePanel.tsx | 43 +------------------ servers/nextjs/app/dashboard/api/dashboard.ts | 22 +--------- servers/nextjs/package.json | 1 - 3 files changed, 2 insertions(+), 64 deletions(-) diff --git a/servers/nextjs/app/(presentation-generator)/presentation/components/SidePanel.tsx b/servers/nextjs/app/(presentation-generator)/presentation/components/SidePanel.tsx index ffc68aba..f5fc1a5e 100644 --- a/servers/nextjs/app/(presentation-generator)/presentation/components/SidePanel.tsx +++ b/servers/nextjs/app/(presentation-generator)/presentation/components/SidePanel.tsx @@ -5,7 +5,6 @@ import ToolTip from "@/components/ToolTip"; import { Button } from "@/components/ui/button"; import { useDispatch, useSelector } from "react-redux"; import { RootState } from "@/store/store"; -import { DashboardApi } from "@/app/dashboard/api/dashboard"; import { DndContext, closestCenter, @@ -20,7 +19,6 @@ import { sortableKeyboardCoordinates, verticalListSortingStrategy, } from "@dnd-kit/sortable"; -import * as htmlToImage from "html-to-image"; import { setPresentationData } from "@/store/slices/presentationGeneration"; import { SortableSlide } from "./SortableSlide"; import { SortableListItem } from "./SortableListItem"; @@ -58,18 +56,7 @@ const SidePanel = ({ } }, [isMobilePanelOpen]); - useEffect(() => { - if ( - presentationData?.presentation?.thumbnail === null && - presentationData.slides.some( - (slide) => slide.images && slide.images.length > 0 - ) - ) { - setTimeout(() => { - setSlideThumbnail(); - }, 4000); - } - }, [presentationData]); + const sensors = useSensors( useSensor(PointerSensor), useSensor(KeyboardSensor, { @@ -84,17 +71,6 @@ const SidePanel = ({ } }; - const dataUrlToFile = (dataUrl: string, filename: string) => { - const arr = dataUrl.split(","); - const mime = arr[0].match(/:(.*)/)?.[1]; - const bstr = atob(arr[1]); - let n = bstr.length; - const u8arr = new Uint8Array(n); - while (n--) { - u8arr[n] = bstr.charCodeAt(n); - } - return new File([u8arr], filename, { type: mime }); - }; const handleDragEnd = (event: any) => { const { active, over } = event; @@ -130,23 +106,6 @@ const SidePanel = ({ } }; - const setSlideThumbnail = async () => { - const slideContainer = document.querySelector(".slide-container"); - if (!slideContainer) return; - const image = await htmlToImage - .toPng(slideContainer as HTMLElement) - .then((dataUrl) => { - return dataUrl; - }); - - const file = dataUrlToFile(image, "thumbnail.png"); - - const response = await DashboardApi.setSlideThumbnail( - presentationData?.presentation?.id!, - file - ); - }; - // Loading shimmer component if ( !presentationData || diff --git a/servers/nextjs/app/dashboard/api/dashboard.ts b/servers/nextjs/app/dashboard/api/dashboard.ts index 351b5ad7..8ea66967 100644 --- a/servers/nextjs/app/dashboard/api/dashboard.ts +++ b/servers/nextjs/app/dashboard/api/dashboard.ts @@ -83,25 +83,5 @@ export class DashboardApi { throw error; } } - static async setSlideThumbnail(presentation_id: string, file: any) { - const formData = new FormData(); - - formData.append("presentation_id", presentation_id); - formData.append("thumbnail", file); - try { - const response = await fetch( - `/api/v1/ppt/presentation/thumbnail`, - { - method: "POST", - headers: getHeaderForFormData(), - body: formData, - } - ); - const data = await response.json(); - return data; - } catch (error) { - console.error("Error setting slide thumbnail:", error); - throw error; - } - } + } diff --git a/servers/nextjs/package.json b/servers/nextjs/package.json index 276d4876..35d5139d 100644 --- a/servers/nextjs/package.json +++ b/servers/nextjs/package.json @@ -42,7 +42,6 @@ "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "cmdk": "^1.0.0", - "html-to-image": "^1.11.13", "jsonrepair": "^3.12.0", "lucide-react": "^0.447.0", "marked": "^15.0.11",