diff --git a/src/App.js b/src/App.js
index 8f6a090a..79756c9c 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,4 +1,4 @@
-import React, { useEffect } from 'react';
+import React, { useEffect, useState } from 'react';
import { Route, Routes, useLocation } from 'react-router-dom';
import { Helmet } from 'react-helmet-async';
import { useAccount, useBufferedFeeds } from '@plebbit/plebbit-react-hooks';
@@ -7,6 +7,8 @@ import 'react-toastify/dist/ReactToastify.css';
import useGeneralStore from './hooks/stores/useGeneralStore';
import { GlobalStyle } from './components/styled/GlobalStyle.styled';
import { Toast } from './components/styled/Toast.styled';
+import All from './components/views/All';
+import AllCatalog from './components/views/AllCatalog';
import Board from './components/views/Board';
import Catalog from './components/views/Catalog';
import Home from './components/views/Home';
@@ -18,6 +20,8 @@ import Thread from './components/views/Thread';
import CaptchaModal from './components/CaptchaModal';
import { importAll } from './components/ImageBanner';
import preloadImages from './utils/preloadImages';
+import useError from "./hooks/useError";
+import useSuccess from "./hooks/useSuccess";
export default function App() {
@@ -36,6 +40,26 @@ export default function App() {
const account = useAccount();
+ const [errorMessage, setErrorMessage] = useState(null);
+ const [successMessage, setSuccessMessage] = useState(null);
+ useError(errorMessage, [errorMessage]);
+ useSuccess(successMessage, [successMessage]);
+
+
+ useEffect(() => {
+ const successToast = localStorage.getItem("successToast");
+ const errorToast = localStorage.getItem("errorToast");
+ if (successToast) {
+ setSuccessMessage(successToast);
+ localStorage.removeItem("successToast");
+ } else if (errorToast) {
+ setErrorMessage(errorToast);
+ localStorage.removeItem("errorToast");
+ } else {
+ return;
+ }
+ }, [setErrorMessage, setSuccessMessage]);
+
// preload default subs and subscriptions
useBufferedFeeds({
feedsOptions: [
@@ -169,6 +193,12 @@ export default function App() {
- )}
- +++ (...) +
+ Post too long. + setSelectedThread(thread.cid)} className="ttl-link">Click here + to view. +
+) + : null} ++
+ {}} key={`r-pm-${index}`} className="quotelink" onClick={(event) => handleQuoteClick(reply, shortParentCid, thread.shortCid, event)}> + {`c/${shortParentCid}`}{shortParentCid === thread.shortCid ? " (OP)" : null} + +++ (...) +
+ Comment too long. + setSelectedThread(thread.cid)} className="ttl-link">Click here + to view. +
+ {}} key={`r-pm-${index}`} className="quotelink" onClick={(event) => handleQuoteClick(reply, shortParentCid, thread.shortCid, event)}> + {`c/${shortParentCid}`}{shortParentCid === thread.shortCid ? " (OP)" : null} + +) + : null} ++
+++ (...) +
+ Post too long. + setSelectedThread(thread.cid)} className="ttl-link">Click here + to view. +
+) + : null} ++
+ {}} key={`mob-r-pm-${index}`} className="quotelink" onClick={(event) => handleQuoteClick(reply, shortParentCid, thread.shortCid, event)}> + {`c/${shortParentCid}`}{shortParentCid === thread.shortCid ? " (OP)" : null} + +++ (...) +
+ Comment too long. + setSelectedThread(thread.cid)} className="ttl-link">Click here + to view. +
+ {}} key={`mob-r-pm-${index}`} className="quotelink" onClick={(event) => handleQuoteClick(reply, shortParentCid, thread.shortCid, event)}> + {`c/${shortParentCid}`}{shortParentCid === thread.shortCid ? " (OP)" : null} + +) + : null} + {reply.replyCount > 0 ? ( ++