import { nanoid } from "nanoid"; const FILE_NAME_KEY = "novita-anysite-share-filename"; function getShareFilename(): string { let filename = localStorage.getItem(FILE_NAME_KEY); if (!filename) { filename = `${nanoid()}`; localStorage.setItem(FILE_NAME_KEY, filename); } return filename; } export async function generateShareLink(html: string) { const filename = getShareFilename(); const response = await fetch("/api/share-link", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ filename: `${filename}.html`, code: html, }), }); if (!response.ok) { throw new Error( `Failed to upload: ${response.status} ${response.statusText}`, ); } const result = await response.json(); if (!result.success) { throw new Error(result.message || "Failed to upload HTML"); } const uploadedUrl = result.data?.url; if (!uploadedUrl) { throw new Error("No URL returned from upload service"); } return `https://anysite-gallery.novita.ai/${filename}`; }