{/* A disposition is an event, not a comment, so it reads as one
line rather than as a card. A word said with it is still a
comment and keeps its card under the line. */}
{thread.map((statement) => {
const said = DISPOSITIONS.get(statement.disposition);
const from = said ? issueLook(said.state) : null;
const byOwner = statement.by?.did === account.did;
return (
{said && from && (
{byOwner ? said.owner : said.other},{' '}
{timeAgo(statement.createdAt)}
)}
{(!said || statement.body) && (
)}
);
})}