diff --git a/site/components/TwitterEmbed.js b/site/components/TwitterEmbed.js index 4fd1956..d5b0f59 100644 --- a/site/components/TwitterEmbed.js +++ b/site/components/TwitterEmbed.js @@ -1,10 +1,14 @@ import { useEffect, useState, useRef } from "react"; const twitterWidgetJs = "https://platform.twitter.com/widgets.js"; +const message = "Loading tweet..." export default function TwitterEmbed({ url }) { let ref = useRef(null) - const [isLoading, setLoading] = useState(true) + const [state, setState] = useState({ + isLoading: true, + message: message + }) const tweetId = url.split("status/").pop() @@ -29,8 +33,9 @@ export default function TwitterEmbed({ url }) { const renderTweet = () => { window.twttr.widgets.createTweet(tweetId, ref.current, { theme: "dark" - }).then(() => { - setLoading(false) + }).then((el) => { + if (el) return setState(prev => ({ ...prev, isLoading: false })) + return setState(prev => ({ ...prev, message: "Sorry, this tweet could not be found." })) }) } @@ -41,45 +46,51 @@ export default function TwitterEmbed({ url }) { } return () => { - setLoading(true); + setState(prev => ({ ...prev, isLoading: true })); }; },[]); return ( <> - {isLoading &&