import React, { useState } from 'react' import { Link, NavLink } from 'react-router-dom' import { prettyScore, prettyDate, prettyTimeDiff, exactDateTime, parse, isRemoved } from '../../utils' const Comment = (props) => { let commentStyle = 'comment ' if (props.removed) { commentStyle += 'removed' } else if (props.deleted) { commentStyle += 'deleted' } else { commentStyle += props.depth % 2 === 0 ? 'comment-even' : 'comment-odd' } if (props.id == props.highlightedID) { commentStyle += ' highlighted' } let innerHTML, editedInnerHTML; if (props.removed && isRemoved(props.body)) { if (!props.hasOwnProperty('retrieved_utc') && !props.hasOwnProperty('retrieved_on') || !props.hasOwnProperty('created_utc')) { innerHTML = '
[removed too quickly to be archived]
' } else if (props.created_utc < 1627776000) { // Aug 1 2021 const retrieved = props.hasOwnProperty('retrieved_utc') ? props.retrieved_utc : props.retrieved_on; innerHTML = `[removed within ${prettyTimeDiff(retrieved - props.created_utc)}]
` } // After around Aug 1 2021, Pushshift began updating comments from Reddit after around // 24-48 hours, including removing(?) comments that were removed from Reddit. The presence // of either retrieved_utc or retrieved_on can currently be used to test for this behaviour. else if (props.hasOwnProperty('retrieved_utc')) { innerHTML = `[removed within ${prettyTimeDiff(props.retrieved_utc - props.created_utc)}]
` } else { innerHTML = `[either removed too quickly, or removed(?) from archive after ${prettyTimeDiff(props.retrieved_on - props.created_utc, true)}]
` } } else { innerHTML = parse(props.body) if (props.hasOwnProperty('edited_body')) editedInnerHTML = parse(props.edited_body) } const [collapsed, setCollapsed] = useState(false) const [showEdited, setShowEdited] = useState(false) const permalink = `/r/${props.subreddit}/comments/${props.link_id}/_/${props.id}/` const parentlink = props.parent_id == props.link_id ? undefined : ( props.depth == 0 ?