import React, { useState, useEffect } from 'react'; import { Link, useNavigate, useParams } from 'react-router-dom'; import { Tooltip } from 'react-tooltip'; import useGeneralStore from '../../hooks/stores/useGeneralStore'; import { Container, NavBar, Header, Break, PostForm, BoardForm } from '../styled/Board.styled'; import { ReplyFormLink, TopBar, BottomBar } from '../styled/Thread.styled'; import ImageBanner from '../ImageBanner'; import Post from '../Post'; import PostLoader from '../PostLoader'; import SettingsModal from '../SettingsModal'; import getCommentMediaInfo from '../../utils/getCommentMediaInfo'; import getDate from '../../utils/getDate'; import handleStyleChange from '../../utils/handleStyleChange'; import useError from '../../hooks/useError'; import useSuccess from '../../hooks/useSuccess'; const Pending = () => { const { defaultSubplebbits, isSettingsOpen, setIsSettingsOpen, pendingComment, selectedStyle, selectedThread, setSelectedThread, showPostFormLink } = useGeneralStore(state => state); const comment = pendingComment; const [visible] = useState(true); const [errorMessage] = useState(null); const [successMessage] = useState(null); useError(errorMessage, [errorMessage]); useSuccess(successMessage, [successMessage]); const { subplebbitAddress, threadCid } = useParams(); const navigate = useNavigate(); const commentMediaInfo = getCommentMediaInfo(comment); const fallbackImgUrl = "/assets/filedeleted-res.gif"; const [selectedAddress, setSelectedAddress] = useState(comment.subplebbitAddress); const [selectedTitle, setSelectedTitle] = useState(null); // temporary title from JSON, gets subplebbitAddress and threadCid from URL useEffect(() => { setSelectedAddress(subplebbitAddress); setSelectedThread(threadCid); const selectedSubplebbit = defaultSubplebbits.find((subplebbit) => subplebbit.address === subplebbitAddress); if (selectedSubplebbit) { setSelectedTitle(selectedSubplebbit.title); } }, [subplebbitAddress, setSelectedAddress, setSelectedTitle, defaultSubplebbits]); // mobile navbar board select functionality const handleSelectChange = (event) => { const selected = event.target.value; const selectedTitle = defaultSubplebbits.find((subplebbit) => subplebbit.address === selected).title; setSelectedTitle(selectedTitle); setSelectedAddress(selected); navigate(`/p/${selected}`); }; return ( setIsSettingsOpen(false)} /> <> {defaultSubplebbits.map(subplebbit => ( [ { setSelectedTitle(subplebbit.title); setSelectedAddress(subplebbit.address); }} >{subplebbit.title ? subplebbit.title : subplebbit.address} ]  ))} [ setIsSettingsOpen(true)}>Settings ] [ handleStyleChange({target: {value: "Yotsuba"}} )}>Home ]
Board  
setIsSettingsOpen(true)}>Settings   handleStyleChange({target: {value: "Yotsuba"}} )}>Home
 
 
<>
<>
{selectedTitle}
p/{selectedAddress}
Return
Catalog
 

Style:   [ Return ] [ Catalog ] {comment ? ( Preview ) : ( Fetching IPFS... )}
{comment !== undefined ? ( <>
{commentMediaInfo?.url ? (
{commentMediaInfo?.type === "webpage" ? ( thumbnail e.target.src = fallbackImgUrl} /> ) : null} {commentMediaInfo?.type === "image" ? ( {commentMediaInfo.type} e.target.src = fallbackImgUrl} /> ) : null} {commentMediaInfo?.type === "video" ? ( ) : null} {commentMediaInfo?.type === "audio" ? ( ) : null}
) : null} {comment.title ? ( comment.title.length > 75 ? <> {comment.title.slice(0, 75) + " (...)"} : {comment.title} ) : null}   {comment.displayName ? comment.displayName.length > 20 ? <> {comment.displayName.slice(0, 20) + " (...)"} : {comment.displayName} : Anonymous}     (u/ {comment.author?.address} )   {getDate(comment?.timestamp)}   {}} title="Link to this post">c/   Pending   

{comment.displayName ? comment.displayName.length > 15 ? <> {comment.displayName.slice(0, 15) + " (...)"} : {comment.displayName} : Anonymous}   (u/ {comment.author?.address}
{comment.title ? ( comment.title.length > 30 ? <> {comment.title.slice(0, 30) + " (...)"} : {comment.title} ) : null}
{getDate(comment?.timestamp)}     Pending
{commentMediaInfo?.url ? ( commentMediaInfo.type === "webpage" ? (
thumbnail e.target.src = fallbackImgUrl} />
{commentMediaInfo.type}
) : commentMediaInfo.type === "image" ? (
{commentMediaInfo.type} e.target.src = fallbackImgUrl} />
{commentMediaInfo.type}
) : commentMediaInfo.type === "video" ? (
) : commentMediaInfo.type === "audio" ? (
) : null ) : null}
{comment.content ? ( <> ) : null}

) : ( )}
); } export default Pending;