diff --git a/package-lock.json b/package-lock.json
index 2a5472a..70fcd01 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -21,6 +21,7 @@
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-dropzone": "^14.3.5",
+ "react-hot-toast": "^2.5.1",
"react-pdf": "^9.2.1",
"string-similarity": "^4.0.4",
"uuid": "^11.0.5"
@@ -2186,7 +2187,6 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "devOptional": true,
"license": "MIT"
},
"node_modules/damerau-levenshtein": {
@@ -3537,6 +3537,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/goober": {
+ "version": "2.1.16",
+ "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.16.tgz",
+ "integrity": "sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==",
+ "license": "MIT",
+ "peerDependencies": {
+ "csstype": "^3.0.10"
+ }
+ },
"node_modules/gopd": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
@@ -5521,6 +5530,23 @@
"react": ">= 16.8 || 18.0.0"
}
},
+ "node_modules/react-hot-toast": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.5.1.tgz",
+ "integrity": "sha512-54Gq1ZD1JbmAb4psp9bvFHjS7lje+8ubboUmvKZkCsQBLH6AOpZ9JemfRvIdHcfb9AZXRaFLrb3qUobGYDJhFQ==",
+ "license": "MIT",
+ "dependencies": {
+ "csstype": "^3.1.3",
+ "goober": "^2.1.16"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": ">=16",
+ "react-dom": ">=16"
+ }
+ },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
diff --git a/package.json b/package.json
index 3fdc62e..9a6e677 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-dropzone": "^14.3.5",
+ "react-hot-toast": "^2.5.1",
"react-pdf": "^9.2.1",
"string-similarity": "^4.0.4",
"uuid": "^11.0.5"
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index d4df63f..c5a0515 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -3,6 +3,7 @@ import { Providers } from "./providers";
import { Metadata } from "next";
import Script from "next/script";
import { Footer } from "@/components/Footer";
+import { Toaster } from 'react-hot-toast';
export const metadata: Metadata = {
title: "OpenReader WebUI",
@@ -69,6 +70,7 @@ export default function RootLayout({
{!isDev && }
+