import classNames from 'classnames'; import { OrderedSet as ImmutableOrderedSet } from 'immutable'; import React from 'react'; import StatusContainer from 'soapbox/containers/status_container'; import PlaceholderStatus from 'soapbox/features/placeholder/components/placeholder_status'; import { useAppSelector } from 'soapbox/hooks'; interface IThreadStatus { id: string, focusedStatusId: string, } const ThreadStatus: React.FC = (props): JSX.Element => { const { id, focusedStatusId } = props; const replyToId = useAppSelector(state => state.contexts.getIn(['inReplyTos', id])); const replyCount = useAppSelector(state => state.contexts.getIn(['replies', id], ImmutableOrderedSet()).size); const isLoaded = useAppSelector(state => Boolean(state.statuses.get(id))); const renderConnector = (): JSX.Element | null => { const isConnectedTop = replyToId && replyToId !== focusedStatusId; const isConnectedBottom = replyCount > 0; const isConnected = isConnectedTop || isConnectedBottom; if (!isConnected) return null; return (
); }; return (
{renderConnector()} {isLoaded ? ( // @ts-ignore FIXME ) : ( )}
); }; export default ThreadStatus;