diff --git a/package.json b/package.json index 7a11b27..8d00f68 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "react-redux": "^9.2.0", "react-router": "^7.6.0", "react-syntax-highlighter": "^15.6.1", + "react-toastify": "^11.0.5", "sass": "^1.89.0", "sql.js": "^1.13.0", "workbox-build": "^7.3.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e14dcd0..a61154b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,6 +77,9 @@ importers: react-syntax-highlighter: specifier: ^15.6.1 version: 15.6.1(react@19.1.0) + react-toastify: + specifier: ^11.0.5 + version: 11.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) sass: specifier: ^1.89.0 version: 1.89.0 @@ -1971,6 +1974,10 @@ packages: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -3414,6 +3421,12 @@ packages: peerDependencies: react: '>= 0.14.0' + react-toastify@11.0.5: + resolution: {integrity: sha512-EpqHBGvnSTtHYhCPLxML05NLY2ZX0JURbAdNYa6BUkk+amz4wbKBQvoKQAB0ardvSarUBuY4Q4s1sluAzZwkmA==} + peerDependencies: + react: ^18 || ^19 + react-dom: ^18 || ^19 + react@19.1.0: resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} engines: {node: '>=0.10.0'} @@ -6102,6 +6115,8 @@ snapshots: slice-ansi: 5.0.0 string-width: 7.2.0 + clsx@2.1.1: {} + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -7562,6 +7577,12 @@ snapshots: react: 19.1.0 refractor: 3.6.0 + react-toastify@11.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + clsx: 2.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react@19.1.0: {} readdirp@4.1.2: {} diff --git a/src/components/AppRoot.tsx b/src/components/AppRoot.tsx index 2b571e1..7382a2f 100644 --- a/src/components/AppRoot.tsx +++ b/src/components/AppRoot.tsx @@ -10,6 +10,8 @@ import { persistSettings } from '~/features/settings/persistSettings'; import { setupStore } from '~/store'; import { Footer } from '~/components/Footer'; import { FaqTab } from '~/tabs/FaqTab'; +import { SETTINGS_TABS } from '~/features/settings/settingsTabs'; +import { Bounce, ToastContainer } from 'react-toastify'; // Private to this file only. const store = setupStore(); @@ -40,11 +42,26 @@ export function AppRoot() {
- + + {Object.entries(SETTINGS_TABS).map(([key, { Tab }]) => ( + + ))} +
+ +