+ {account?.subscriptions?.length > 0 ? (
+
Board Subscriptions
- You have subscribed to {account.subscriptions.length} board{account.subscriptions.length > 1 ? "s" : null}
-
+ You have subscribed to {account?.subscriptions?.length} board{account?.subscriptions?.length > 1 ? "s" : null}
+
+ [view all]
- {account.subscriptions.map((subscription, index) => (
+ {account?.subscriptions?.map((subscription, index) => (
<>
-
- {subscription}
+
+
+ {subscription}
+
>
))}
+
) : null}
@@ -134,9 +131,7 @@ const Home = () => {
setSelectedTitle(subplebbit.title);
setSelectedAddress(subplebbit.address);
}} >
-
-
-
+
{subplebbit.address}
diff --git a/src/components/views/Subscriptions.jsx b/src/components/views/Subscriptions.jsx
index 8a6a7456..fea6f02a 100644
--- a/src/components/views/Subscriptions.jsx
+++ b/src/components/views/Subscriptions.jsx
@@ -10,6 +10,7 @@ import useGeneralStore from '../../hooks/stores/useGeneralStore';
import { Container, NavBar, Header, Break, TopBar, BoardForm } from '../styled/Board.styled';
import { Footer } from '../styled/Thread.styled';
import ImageBanner from '../ImageBanner';
+import OfflineIndicator from '../OfflineIndicator';
import Post from '../Post';
import PostLoader from '../PostLoader';
import ReplyModal from '../ReplyModal';
@@ -30,12 +31,12 @@ const Subscriptions = () => {
const {
defaultSubplebbits,
isSettingsOpen, setIsSettingsOpen,
- selectedAddress, setSelectedAddress,
+ setSelectedAddress,
setSelectedParentCid,
setSelectedShortCid,
selectedStyle,
setSelectedThread,
- selectedTitle, setSelectedTitle,
+ setSelectedTitle,
} = useGeneralStore(state => state);
const account = useAccount();
@@ -103,21 +104,6 @@ const Subscriptions = () => {
return acc;
}, {});
}, [flattenedRepliesByThread, accountComments, selectedFeed]);
-
-
- // temporary title from JSON, gets subplebbitAddress from URL
- useEffect(() => {
- setSelectedAddress(subplebbitAddress);
- const selectedSubplebbit = defaultSubplebbits.find((subplebbit) => subplebbit.address === subplebbitAddress);
- if (selectedSubplebbit) {
- setSelectedTitle(selectedSubplebbit.title);
- }
- }, [subplebbitAddress, setSelectedAddress, setSelectedTitle, defaultSubplebbits]);
-
- // sets useFeed to address from URL
- useEffect(() => {
- setSelectedFeed(feed);
- }, [feed]);
// mobile navbar scroll effect
useEffect(() => {
@@ -165,7 +151,7 @@ const Subscriptions = () => {
return (
<>
- {((selectedTitle ? selectedTitle : selectedAddress) + " - plebchan")}
+ Subscriptions - plebchan
{
isOpen={isSettingsOpen}
closeModal={() => setIsSettingsOpen(false)} />
- <>
+ <>
[
- {}}>Subscriptions
+ Subscriptions
] [
-
{defaultSubplebbits.map((subplebbit, index) => (
{index === 0 ? null : "\u00a0"}
handleClickTitle(subplebbit.title, subplebbit.address)}
>{subplebbit.title ? subplebbit.title : subplebbit.address}
+
{index !== defaultSubplebbits.length - 1 ? " /" : null}
-
- ))}
+
+ ))}
]
+
[
alert(
- 'To create a board, first you have to run a full node.\nYou can run a full node by simply browsing with the plebbit desktop app. After you download it, open it, wait for it loading, then click on "Home" in the top left, then "Create Community".\n\nAfter you create the community, you can go back to plebchan at any time to see it as a board by pasting its address (begins with p/12D3KooW...) in the search bar, which is in the Home.\n\nNote:\n\n- Your community will be online for as long as you leave the app open, because it functions like a server for the community.\n- The longer you leave the app open, the more data you are seeding to the protocol, which helps performance for everybody.\n - All the data in the plebbit protocol is just text, which is extremely lightweight. All media is generated by links, which is text, embedded by the clients.\n\nDownload the plebbit app here: https://github.com/plebbit/plebbit-react/releases\n\nRunning boards in the plebchan app is a planned feature.\n\n'
+ 'To create a board, first you have to run a full node.\nYou can run a full node by simply browsing with the plebbit desktop app. After you download it, open it, wait for it loading, then click on "Home" in the top left, then "Create Community".\n\nAfter you create the community, you can go back to plebchan at any time to see it as a board by pasting its address (begins with p/12D3KooW...) in the search bar, which is in the Home.\n\nNote:\n\n- Your community will be online for as long as you leave the app open, because it functions like a server for the community.\n- The longer you leave the app open, the more data you are seeding to the protocol, which helps performance for everybody.\n - All the data in the plebbit protocol is just text, which is extremely lightweight. All media is generated by links, which is text, embedded by the clients.\n\nDownload the plebbit app here: https://github.com/plebbit/plebbit-react/releases\n\nYou can also use a CLI: https://github.com/plebbit/plebbit-cli\n\nRunning boards in the plebchan app is a planned feature.\n\n'
)
}>Create Board
]
[
- setIsSettingsOpen(true)}>Settings
+ setIsSettingsOpen(true)}>Settings
]
[
handleStyleChange({target: {value: "Yotsuba"}}
@@ -221,12 +211,12 @@ const Subscriptions = () => {
alert(
- 'To create a board, first you have to run a full node.\nYou can run a full node by simply browsing with the plebbit desktop app. After you download it, open it, wait for it loading, then click on "Home" in the top left, then "Create Community".\n\nAfter you create the community, you can go back to plebchan at any time to see it as a board by pasting its address (begins with p/12D3KooW...) in the search bar, which is in the Home.\n\nNote:\n\n- Your community will be online for as long as you leave the app open, because it functions like a server for the community.\n- The longer you leave the app open, the more data you are seeding to the protocol, which helps performance for everybody.\n - All the data in the plebbit protocol is just text, which is extremely lightweight. All media is generated by links, which is text, embedded by the clients.\n\nDownload the plebbit app here: https://github.com/plebbit/plebbit-react/releases\n\nRunning boards in the plebchan app is a planned feature.\n\n'
+ 'To create a board, first you have to run a full node.\nYou can run a full node by simply browsing with the plebbit desktop app. After you download it, open it, wait for it loading, then click on "Home" in the top left, then "Create Community".\n\nAfter you create the community, you can go back to plebchan at any time to see it as a board by pasting its address (begins with p/12D3KooW...) in the search bar, which is in the Home.\n\nNote:\n\n- Your community will be online for as long as you leave the app open, because it functions like a server for the community.\n- The longer you leave the app open, the more data you are seeding to the protocol, which helps performance for everybody.\n - All the data in the plebbit protocol is just text, which is extremely lightweight. All media is generated by links, which is text, embedded by the clients.\n\nDownload the plebbit app here: https://github.com/plebbit/plebbit-react/releases\n\nYou can also use a CLI: https://github.com/plebbit/plebbit-cli\n\nRunning boards in the plebchan app is a planned feature.\n\n'
)
}>Create Board
- setIsSettingsOpen(true)}>Settings
+ setIsSettingsOpen(true)}>Settings
handleStyleChange({target: {value: "Yotsuba"}}
)}>Home
@@ -383,7 +373,7 @@ const Subscriptions = () => {
c/
- {
if (e.button === 2) return;
e.preventDefault();
@@ -402,9 +392,13 @@ const Subscriptions = () => {
>{thread.subplebbitAddress.slice(0, 10) + "(...)"}
)}
+
[
- setSelectedThread(thread.cid)} className="reply-link" >Reply
+ setSelectedThread(thread.cid)} className="reply-link" >Reply
]
@@ -432,7 +426,7 @@ const Subscriptions = () => {
(...)
Post too long.
- setSelectedThread(thread.cid)} className="ttl-link">Click here
+ setSelectedThread(thread.cid)} className="ttl-link">Click here
to view.
@@ -448,7 +442,7 @@ const Subscriptions = () => {
{omittedCount} post{omittedCount > 1 ? "s" : ""} omitted. Click
- setSelectedThread(thread.cid)} className="ttl-link">here
+ setSelectedThread(thread.cid)} className="ttl-link">here
to view.
) : null}
@@ -507,7 +501,7 @@ const Subscriptions = () => {
c/
{reply.shortCid ? (
- {
if (e.button === 2) return;
e.preventDefault();
@@ -610,7 +604,7 @@ const Subscriptions = () => {
(...)
Comment too long.
- setSelectedThread(thread.cid)} className="ttl-link">Click here
+ setSelectedThread(thread.cid)} className="ttl-link">Click here
to view.
@@ -681,12 +675,27 @@ const Subscriptions = () => {
p/
- {thread.subplebbitAddress.includes(".eth") ? thread.subplebbitAddress : (
- {thread.subplebbitAddress.slice(0, 10) + "(...)"}
+ {thread.subplebbitAddress.includes(".eth") ?
+ (
+ <>
+ {thread.subplebbitAddress}
+
+ >
+ ) : (
+ <>
+ {thread.subplebbitAddress.slice(0, 10) + "(...)"}
+
+ >
)}
@@ -694,7 +703,7 @@ const Subscriptions = () => {
{getDate(thread.timestamp)}
c/
- {
if (e.button === 2) return;
e.preventDefault();
@@ -759,7 +768,7 @@ const Subscriptions = () => {
(...)
Post too long.
- setSelectedThread(thread.cid)} className="ttl-link">Click here
+ setSelectedThread(thread.cid)} className="ttl-link">Click here
to view.
@@ -832,12 +841,27 @@ const Subscriptions = () => {
p/
- {thread.subplebbitAddress.includes(".eth") ? thread.subplebbitAddress : (
- {thread.subplebbitAddress.slice(0, 10) + "(...)"}
+ {thread.subplebbitAddress.includes(".eth") ?
+ (
+ <>
+ {thread.subplebbitAddress}
+
+ >
+ ) : (
+ <>
+ {thread.subplebbitAddress.slice(0, 10) + "(...)"}
+
+ >
)}
@@ -845,7 +869,7 @@ const Subscriptions = () => {
{getDate(reply.timestamp)}
c/
{reply.shortCid ? (
- {
if (e.button === 2) return;
e.preventDefault();
@@ -916,7 +940,7 @@ const Subscriptions = () => {
(...)
Comment too long.
- setSelectedThread(thread.cid)} className="ttl-link">Click here
+ setSelectedThread(thread.cid)} className="ttl-link">Click here
to view.
@@ -999,12 +1023,12 @@ const Subscriptions = () => {
[
alert(
- 'To create a board, first you have to run a full node.\nYou can run a full node by simply browsing with the plebbit desktop app. After you download it, open it, wait for it loading, then click on "Home" in the top left, then "Create Community".\n\nAfter you create the community, you can go back to plebchan at any time to see it as a board by pasting its address (begins with p/12D3KooW...) in the search bar, which is in the Home.\n\nNote:\n\n- Your community will be online for as long as you leave the app open, because it functions like a server for the community.\n- The longer you leave the app open, the more data you are seeding to the protocol, which helps performance for everybody.\n - All the data in the plebbit protocol is just text, which is extremely lightweight. All media is generated by links, which is text, embedded by the clients.\n\nDownload the plebbit app here: https://github.com/plebbit/plebbit-react/releases\n\nRunning boards in the plebchan app is a planned feature.\n\n'
+ 'To create a board, first you have to run a full node.\nYou can run a full node by simply browsing with the plebbit desktop app. After you download it, open it, wait for it loading, then click on "Home" in the top left, then "Create Community".\n\nAfter you create the community, you can go back to plebchan at any time to see it as a board by pasting its address (begins with p/12D3KooW...) in the search bar, which is in the Home.\n\nNote:\n\n- Your community will be online for as long as you leave the app open, because it functions like a server for the community.\n- The longer you leave the app open, the more data you are seeding to the protocol, which helps performance for everybody.\n - All the data in the plebbit protocol is just text, which is extremely lightweight. All media is generated by links, which is text, embedded by the clients.\n\nDownload the plebbit app here: https://github.com/plebbit/plebbit-react/releases\n\nYou can also use a CLI: https://github.com/plebbit/plebbit-cli\n\nRunning boards in the plebchan app is a planned feature.\n\n'
)
}>Create Board
]
[
- setIsSettingsOpen(true)}>Settings
+ setIsSettingsOpen(true)}>Settings
]
[
handleStyleChange({target: {value: "Yotsuba"}}
diff --git a/src/components/views/Thread.jsx b/src/components/views/Thread.jsx
index 6e1e282b..74a0b97b 100644
--- a/src/components/views/Thread.jsx
+++ b/src/components/views/Thread.jsx
@@ -9,6 +9,7 @@ import useGeneralStore from '../../hooks/stores/useGeneralStore';
import { Container, NavBar, Header, Break, PostForm, PostFormTable } from '../styled/Board.styled';
import { ReplyFormLink, TopBar, BottomBar, BoardForm, Footer } from '../styled/Thread.styled';
import ImageBanner from '../ImageBanner';
+import OfflineIndicator from '../OfflineIndicator';
import Post from '../Post';
import PostLoader from '../PostLoader';
import ReplyModal from '../ReplyModal';
@@ -286,10 +287,9 @@ const Thread = () => {
<>
- [
- Subscriptions
- ] [
-
+ [
+ Subscriptions
+ ] [
{defaultSubplebbits.map((subplebbit, index) => (
{index === 0 ? null : "\u00a0"}
@@ -298,15 +298,20 @@ const Thread = () => {
setSelectedAddress(subplebbit.address);
}}
>{subplebbit.title ? subplebbit.title : subplebbit.address}
+
{index !== defaultSubplebbits.length - 1 ? " /" : null}
))}
- ]
+ ]
+
[
alert(
- 'To create a board, first you have to run a full node.\nYou can run a full node by simply browsing with the plebbit desktop app. After you download it, open it, wait for it loading, then click on "Home" in the top left, then "Create Community".\n\nAfter you create the community, you can go back to plebchan at any time to see it as a board by pasting its address (begins with p/12D3KooW...) in the search bar, which is in the Home.\n\nNote:\n\n- Your community will be online for as long as you leave the app open, because it functions like a server for the community.\n- The longer you leave the app open, the more data you are seeding to the protocol, which helps performance for everybody.\n - All the data in the plebbit protocol is just text, which is extremely lightweight. All media is generated by links, which is text, embedded by the clients.\n\nDownload the plebbit app here: https://github.com/plebbit/plebbit-react/releases\n\nRunning boards in the plebchan app is a planned feature.\n\n'
+ 'To create a board, first you have to run a full node.\nYou can run a full node by simply browsing with the plebbit desktop app. After you download it, open it, wait for it loading, then click on "Home" in the top left, then "Create Community".\n\nAfter you create the community, you can go back to plebchan at any time to see it as a board by pasting its address (begins with p/12D3KooW...) in the search bar, which is in the Home.\n\nNote:\n\n- Your community will be online for as long as you leave the app open, because it functions like a server for the community.\n- The longer you leave the app open, the more data you are seeding to the protocol, which helps performance for everybody.\n - All the data in the plebbit protocol is just text, which is extremely lightweight. All media is generated by links, which is text, embedded by the clients.\n\nDownload the plebbit app here: https://github.com/plebbit/plebbit-react/releases\n\nYou can also use a CLI: https://github.com/plebbit/plebbit-cli\n\nRunning boards in the plebchan app is a planned feature.\n\n'
)
}>Create Board
]
@@ -331,7 +336,7 @@ const Thread = () => {
alert(
- 'To create a board, first you have to run a full node.\nYou can run a full node by simply browsing with the plebbit desktop app. After you download it, open it, wait for it loading, then click on "Home" in the top left, then "Create Community".\n\nAfter you create the community, you can go back to plebchan at any time to see it as a board by pasting its address (begins with p/12D3KooW...) in the search bar, which is in the Home.\n\nNote:\n\n- Your community will be online for as long as you leave the app open, because it functions like a server for the community.\n- The longer you leave the app open, the more data you are seeding to the protocol, which helps performance for everybody.\n - All the data in the plebbit protocol is just text, which is extremely lightweight. All media is generated by links, which is text, embedded by the clients.\n\nDownload the plebbit app here: https://github.com/plebbit/plebbit-react/releases\n\nRunning boards in the plebchan app is a planned feature.\n\n'
+ 'To create a board, first you have to run a full node.\nYou can run a full node by simply browsing with the plebbit desktop app. After you download it, open it, wait for it loading, then click on "Home" in the top left, then "Create Community".\n\nAfter you create the community, you can go back to plebchan at any time to see it as a board by pasting its address (begins with p/12D3KooW...) in the search bar, which is in the Home.\n\nNote:\n\n- Your community will be online for as long as you leave the app open, because it functions like a server for the community.\n- The longer you leave the app open, the more data you are seeding to the protocol, which helps performance for everybody.\n - All the data in the plebbit protocol is just text, which is extremely lightweight. All media is generated by links, which is text, embedded by the clients.\n\nDownload the plebbit app here: https://github.com/plebbit/plebbit-react/releases\n\nYou can also use a CLI: https://github.com/plebbit/plebbit-cli\n\nRunning boards in the plebchan app is a planned feature.\n\n'
)
}>Create Board
@@ -1154,7 +1159,7 @@ const Thread = () => {
[
alert(
- 'To create a board, first you have to run a full node.\nYou can run a full node by simply browsing with the plebbit desktop app. After you download it, open it, wait for it loading, then click on "Home" in the top left, then "Create Community".\n\nAfter you create the community, you can go back to plebchan at any time to see it as a board by pasting its address (begins with p/12D3KooW...) in the search bar, which is in the Home.\n\nNote:\n\n- Your community will be online for as long as you leave the app open, because it functions like a server for the community.\n- The longer you leave the app open, the more data you are seeding to the protocol, which helps performance for everybody.\n - All the data in the plebbit protocol is just text, which is extremely lightweight. All media is generated by links, which is text, embedded by the clients.\n\nDownload the plebbit app here: https://github.com/plebbit/plebbit-react/releases\n\nRunning boards in the plebchan app is a planned feature.\n\n'
+ 'To create a board, first you have to run a full node.\nYou can run a full node by simply browsing with the plebbit desktop app. After you download it, open it, wait for it loading, then click on "Home" in the top left, then "Create Community".\n\nAfter you create the community, you can go back to plebchan at any time to see it as a board by pasting its address (begins with p/12D3KooW...) in the search bar, which is in the Home.\n\nNote:\n\n- Your community will be online for as long as you leave the app open, because it functions like a server for the community.\n- The longer you leave the app open, the more data you are seeding to the protocol, which helps performance for everybody.\n - All the data in the plebbit protocol is just text, which is extremely lightweight. All media is generated by links, which is text, embedded by the clients.\n\nDownload the plebbit app here: https://github.com/plebbit/plebbit-react/releases\n\nYou can also use a CLI: https://github.com/plebbit/plebbit-cli\n\nRunning boards in the plebchan app is a planned feature.\n\n'
)
}>Create Board
]
diff --git a/src/hooks/useError.js b/src/hooks/useError.js
index 6fa6a26d..eaaf279c 100644
--- a/src/hooks/useError.js
+++ b/src/hooks/useError.js
@@ -3,20 +3,28 @@ import { toast } from "react-toastify";
const useError = (message) => {
useEffect(() => {
- if (message) {
- const toastId = toast.error(message.toString(), {
- position: "top-right",
- autoClose: false,
- hideProgressBar: false,
- closeOnClick: false,
- pauseOnHover: true,
- draggable: false,
- progress: undefined,
- theme: "dark",
- });
+ if (message && message.length > 0) {
+ const showErrorToast = () => {
+ const toastId = toast.error(message.toString(), {
+ position: "top-right",
+ autoClose: false,
+ hideProgressBar: true,
+ closeOnClick: false,
+ pauseOnHover: false,
+ draggable: false,
+ progress: undefined,
+ theme: "dark",
+ });
+
+ return () => {
+ toast.dismiss(toastId);
+ };
+ };
+
+ const timeoutId = setTimeout(showErrorToast, 500);
return () => {
- toast.dismiss(toastId);
+ clearTimeout(timeoutId);
};
}
}, [message]);
diff --git a/src/hooks/useSuccess.js b/src/hooks/useSuccess.js
index 7e182a86..e42aa62d 100644
--- a/src/hooks/useSuccess.js
+++ b/src/hooks/useSuccess.js
@@ -3,20 +3,28 @@ import { toast } from "react-toastify";
const useSuccess = (message) => {
useEffect(() => {
- if (message) {
- const toastId = toast.success(message.toString(), {
- position: "top-right",
- autoClose: 3000,
- hideProgressBar: false,
- closeOnClick: false,
- pauseOnHover: false,
- draggable: false,
- progress: undefined,
- theme: "dark",
- });
+ if (message && message.length > 0) {
+ const showSuccessToast = () => {
+ const toastId = toast.success(message.toString(), {
+ position: "top-right",
+ autoClose: 3000,
+ hideProgressBar: false,
+ closeOnClick: false,
+ pauseOnHover: false,
+ draggable: false,
+ progress: undefined,
+ theme: "dark",
+ });
+
+ return () => {
+ toast.dismiss(toastId);
+ };
+ };
+
+ const timeoutId = setTimeout(showSuccessToast, 500);
return () => {
- toast.dismiss(toastId);
+ clearTimeout(timeoutId);
};
}
}, [message]);
diff --git a/yarn.lock b/yarn.lock
index 2428dcd6..8bf786a4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2613,6 +2613,48 @@
mkdirp "^1.0.4"
rimraf "^3.0.2"
+"@plebbit/plebbit-js@https://github.com/plebbit/plebbit-js.git#84d03c4b622634418ce1561e09abdfe46b7d32b2":
+ version "0.0.3"
+ resolved "https://github.com/plebbit/plebbit-js.git#84d03c4b622634418ce1561e09abdfe46b7d32b2"
+ dependencies:
+ "@keyv/sqlite" "3.6.2"
+ "@plebbit/plebbit-logger" "github:plebbit/plebbit-logger"
+ "@types/node-fetch" "2.6.2"
+ "@types/proper-lockfile" "4.1.2"
+ "@types/uuid" "8.3.4"
+ assert "2.0.0"
+ async-wait-until "2.0.12"
+ buffer "6.0.3"
+ captcha-canvas "3.2.1"
+ err-code "3.0.1"
+ ethers "5.7.2"
+ file-type "16.5.4"
+ form-data "4.0.0"
+ hpagent "1.2.0"
+ ipfs-http-client "56.0.3"
+ ipfs-only-hash "4.0.0"
+ is-ipfs "6.0.2"
+ jose "4.11.0"
+ js-sha256 "0.9.0"
+ keyv "4.5.2"
+ knex "2.3.0"
+ libp2p-crypto "0.21.2"
+ limiter "2.1.0"
+ localforage "1.10.0"
+ lodash-es "4.17.21"
+ open-graph-scraper "5.2.3"
+ p-limit "3.1.0"
+ peer-id "0.16.0"
+ proper-lockfile "github:plebbit/node-proper-lockfile"
+ retry "0.13.1"
+ safe-stable-stringify "2.4.1"
+ skia-canvas "1.0.0"
+ sqlite3 "5.1.2"
+ tiny-typed-emitter "2.1.0"
+ tinycache "1.1.2"
+ ts-custom-error "3.3.1"
+ uuid "9.0.0"
+
"@plebbit/plebbit-js@https://github.com/plebbit/plebbit-js.git#b3272c08bd3861322b7a5eef48992e1b73640098":
version "0.0.3"
resolved "https://github.com/plebbit/plebbit-js.git#b3272c08bd3861322b7a5eef48992e1b73640098"
@@ -2683,6 +2725,21 @@
uuid "8.3.2"
zustand "4.0.0"
+"@plebbit/plebbit-react-hooks@https://github.com/plebbit/plebbit-react-hooks.git#ea1a110be2043e2d4dbc9fc369ec7b47d52979d4":
+ version "0.0.1"
+ resolved "https://github.com/plebbit/plebbit-react-hooks.git#ea1a110be2043e2d4dbc9fc369ec7b47d52979d4"
+ dependencies:
+ "@plebbit/plebbit-js" "https://github.com/plebbit/plebbit-js.git#84d03c4b622634418ce1561e09abdfe46b7d32b2"
+ "@plebbit/plebbit-logger" "https://github.com/plebbit/plebbit-logger.git"
+ assert "2.0.0"
+ ethers "5.6.9"
+ localforage "1.10.0"
+ lodash.isequal "4.5.0"
+ memoizee "0.4.15"
+ quick-lru "5.1.1"
+ uuid "8.3.2"
+ zustand "4.0.0"
+
"@pmmmwh/react-refresh-webpack-plugin@^0.5.3":
version "0.5.10"
resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz#2eba163b8e7dbabb4ce3609ab5e32ab63dda3ef8"