diff --git a/frontend/apps/editor3d/app/src/pages/PageEnigma/PageEnigma.tsx b/frontend/apps/editor3d/app/src/pages/PageEnigma/PageEnigma.tsx index 8c4751e766..5983259c10 100644 --- a/frontend/apps/editor3d/app/src/pages/PageEnigma/PageEnigma.tsx +++ b/frontend/apps/editor3d/app/src/pages/PageEnigma/PageEnigma.tsx @@ -151,3 +151,9 @@ export const PageEnigma = ({ sceneToken }: { sceneToken?: string }) => { ); }; + +(window as any).test_toast = () => { + toast.error('foo'); +} + +(window as any).toast_2 = toast; \ No newline at end of file diff --git a/frontend/apps/editor3d/package.json b/frontend/apps/editor3d/package.json index 57fe94f492..b3a70b66e4 100644 --- a/frontend/apps/editor3d/package.json +++ b/frontend/apps/editor3d/package.json @@ -17,7 +17,7 @@ "build": "vite build", "preview": "vite preview --port 8080", "dev": "echo 'editor3d' && vite dev", - "production-preview": "echo 'editor3d dev with production preview' && vite build --debug true --emptyOutDir --logLevel info && vite preview --port 5173", + "production-preview": "echo 'editor3d dev with production preview' && vite build --debug --emptyOutDir --logLevel info && vite preview --port 5173", "staging-build": "vite build", "lint": "eslint --ignore-path .gitignore --cache --cache-location ./node_modules/.cache/eslint playground/* .", "typecheck": "tsc", @@ -65,6 +65,7 @@ "react-dom": "^18.2.0", "react-drag-drop-files": "^2.3.10", "react-helmet": "^6.1.0", + "react-hot-toast": "^2.5.2", "react-image-crop": "^11.0.5", "react-konva": "^18.2.10", "react-router": "^6.26.1", diff --git a/frontend/libs/components/create-3d-modal/package.json b/frontend/libs/components/create-3d-modal/package.json index 5de72ff939..b3e35fda37 100644 --- a/frontend/libs/components/create-3d-modal/package.json +++ b/frontend/libs/components/create-3d-modal/package.json @@ -23,5 +23,8 @@ "import": "./dist/index.js", "default": "./dist/index.js" } + }, + "peerDependencies": { + "react-hot-toast": "^2.5.2" } } diff --git a/frontend/libs/components/image-input/package.json b/frontend/libs/components/image-input/package.json index fb4a6c3ddc..e56f36978b 100644 --- a/frontend/libs/components/image-input/package.json +++ b/frontend/libs/components/image-input/package.json @@ -13,5 +13,8 @@ "import": "./dist/index.js", "default": "./dist/index.js" } + }, + "peerDependencies": { + "react-hot-toast": "^2.5.2" } } diff --git a/frontend/libs/components/promptbox/src/lib/PromptBoxImage.tsx b/frontend/libs/components/promptbox/src/lib/PromptBoxImage.tsx index 3fa6c4793e..46270ca202 100644 --- a/frontend/libs/components/promptbox/src/lib/PromptBoxImage.tsx +++ b/frontend/libs/components/promptbox/src/lib/PromptBoxImage.tsx @@ -235,8 +235,8 @@ export const PromptBoxImage = ({ return; } - console.log("Selected model:", selectedModel) - console.log("Prompt:", prompt) + console.debug("Selected model:", selectedModel) + console.debug("Prompt:", prompt) setIsEnqueueing(true); @@ -274,7 +274,7 @@ export const PromptBoxImage = ({ } const generateResponse = await EnqueueTextToImage(request); - console.log("PromptBoxImage - generateResponse", generateResponse); + console.debug("PromptBoxImage - generateResponse", generateResponse); await onEnqueuePressed?.(prompt, generationCount, subscriberId); } catch (err) { diff --git a/frontend/libs/components/toaster/package.json b/frontend/libs/components/toaster/package.json index 9912d73084..fe02df77bd 100644 --- a/frontend/libs/components/toaster/package.json +++ b/frontend/libs/components/toaster/package.json @@ -13,5 +13,8 @@ "import": "./dist/index.js", "default": "./dist/index.js" } + }, + "peerDependencies": { + "react-hot-toast": "^2.5.2" } } diff --git a/frontend/libs/components/toaster/vite.config.ts b/frontend/libs/components/toaster/vite.config.ts index a0453aa36a..a279ec3197 100644 --- a/frontend/libs/components/toaster/vite.config.ts +++ b/frontend/libs/components/toaster/vite.config.ts @@ -4,10 +4,39 @@ import react from '@vitejs/plugin-react'; import dts from 'vite-plugin-dts'; import * as path from 'path'; +/* +import pkg from './package.json' assert { type: 'json' }; + +// Treat *all* peer deps as externals (React, Zustand, etc.) +const externals = [ + ...Object.keys(pkg.peerDependencies ?? {}), + // (optional) anything else you want external + // 'react/jsx-runtime' +]; + +export default defineConfig({ + build: { + lib: { + entry: 'src/index.ts', + formats: ['es', 'cjs'], + fileName: (format) => (format === 'es' ? 'index.js' : 'index.cjs'), + }, + rollupOptions: { + external: (id) => + externals.some((dep) => id === dep || id.startsWith(`${dep}/`)), +*/ + + export default defineConfig(() => ({ root: __dirname, cacheDir: '../../../node_modules/.vite/libs/components/toaster', - plugins: [react(), dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json') })], + plugins: [ + react(), + dts({ + entryRoot: 'src', + tsconfigPath: path.join(__dirname, 'tsconfig.lib.json') + }) + ], // Uncomment this if you are using workers. // worker: { // plugins: [ nxViteTsPaths() ], @@ -32,7 +61,21 @@ export default defineConfig(() => ({ }, rollupOptions: { // External packages that should not be bundled into your library. - external: ['react','react-dom','react/jsx-runtime'] + external: [ + 'react', + 'react-dom', + 'react/jsx-runtime', + 'react-hot-toast' + ], + output: { + // only needed for UMD/IIFE; safe to omit for ESM/CJS + globals: { + //react: 'React', + //'react-dom': 'ReactDOM', + 'react-hot-toast': 'react-hot-toast', + }, + preserveModules: false, + }, }, }, test: { diff --git a/frontend/libs/tauri-events/src/lib/events/generation/useGenerationCompleteEvent.ts b/frontend/libs/tauri-events/src/lib/events/generation/useGenerationCompleteEvent.ts index 6b398a94ab..605c70246a 100644 --- a/frontend/libs/tauri-events/src/lib/events/generation/useGenerationCompleteEvent.ts +++ b/frontend/libs/tauri-events/src/lib/events/generation/useGenerationCompleteEvent.ts @@ -28,6 +28,7 @@ export const useGenerationCompleteEvent = () => { } const message = makeMessage(event.payload.data); toast.success(message); + (window as any).toast_3 = toast }); if (isUnmounted) { diff --git a/frontend/libs/tauri-events/src/lib/events/generation/useGenerationEnqueueSuccessEvent.ts b/frontend/libs/tauri-events/src/lib/events/generation/useGenerationEnqueueSuccessEvent.ts index 7dabd62b54..05f3e92ec6 100644 --- a/frontend/libs/tauri-events/src/lib/events/generation/useGenerationEnqueueSuccessEvent.ts +++ b/frontend/libs/tauri-events/src/lib/events/generation/useGenerationEnqueueSuccessEvent.ts @@ -26,15 +26,21 @@ export const useGenerationEnqueueSuccessEvent = () => { const setup = async () => { console.log(">>> test - useGenerationEnqueueSuccessEvent setup") unlisten = listen>('generation-enqueue-success-event', async (event) => { - console.log("Generation enqueue success event received:", event); + console.log("Generation enqueue success event received (1):", event); const prefs = await GetAppPreferences(); + console.log("Generation enqueue success event received (2) ... prefs", prefs); const soundName = prefs.preferences?.enqueue_success_sound; + console.log("Generation enqueue success event received (3) ... soundName", soundName); if (soundName !== undefined) { const registry = SoundRegistry.getInstance(); + console.log("Generation enqueue success event received (4) ... play sound", soundName); registry.playSound(soundName); } + console.log("Generation enqueue success event received (5) ... message before"); const message = makeMessage(event.payload.data); + console.log("Generation enqueue success event received (6) ... message", message); toast.success(message); + (window as any).toast = toast }); if (isUnmounted) { diff --git a/frontend/libs/tauri-events/vite.config.ts b/frontend/libs/tauri-events/vite.config.ts index 0bc770c4f0..f88571a3db 100644 --- a/frontend/libs/tauri-events/vite.config.ts +++ b/frontend/libs/tauri-events/vite.config.ts @@ -38,7 +38,12 @@ export default defineConfig(() => ({ }, rollupOptions: { // External packages that should not be bundled into your library. - external: ['react','react-dom','react/jsx-runtime'] + external: [ + 'react', + 'react-dom', + 'react/jsx-runtime', + 'react-hot-toast', + ] }, }, test: { diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 2d5bd7fc79..fdf9f31d1d 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -206,6 +206,7 @@ "react-dom": "^18.2.0", "react-drag-drop-files": "^2.3.10", "react-helmet": "^6.1.0", + "react-hot-toast": "^2.5.2", "react-image-crop": "^11.0.5", "react-konva": "^18.2.10", "react-router": "^6.26.1", @@ -1216,7 +1217,10 @@ }, "libs/components/create-3d-modal": { "name": "@storyteller/ui-create-3d-modal", - "version": "0.0.1" + "version": "0.0.1", + "peerDependencies": { + "react-hot-toast": "^2.5.2" + } }, "libs/components/demo-modal": { "name": "@storyteller/ui-demo-modal", @@ -1240,7 +1244,10 @@ }, "libs/components/image-input": { "name": "@storyteller/ui-image-input", - "version": "0.0.1" + "version": "0.0.1", + "peerDependencies": { + "react-hot-toast": "^2.5.2" + } }, "libs/components/input": { "name": "@storyteller/ui-input", @@ -1339,7 +1346,10 @@ }, "libs/components/toaster": { "name": "@storyteller/ui-toaster", - "version": "0.0.1" + "version": "0.0.1", + "peerDependencies": { + "react-hot-toast": "^2.5.2" + } }, "libs/components/tooltip": { "name": "@storyteller/ui-tooltip",