-
-
{t('interactionMapSubtitle')}
- {showFollowControls ? (
-
-
-
-
-
- {includeAllFollows ? (
- <>
-
{t('interactionMapIncludeFollowsHint')}
- {includeFollowsBreakdown ? (
-
- {t('interactionMapIncludeFollowsBreakdown', {
- total: includeFollowsBreakdown.total,
- fromTags: includeFollowsBreakdown.fromTags,
- fromFollowsOnly: includeFollowsBreakdown.fromFollowsOnly
- })}
-
- ) : null}
- >
- ) : null}
-
- ) : null}
-
-
- {t('interactionMapSessionNotes', { count: sessionEventCount })}
- {t('interactionMapArchiveNotes', { count: archiveAuthorEvents })}
-
-
- {loading && partners.length === 0 ? (
-
- {Array.from({ length: 15 }).map((_, i) => (
-
- ))}
-
- ) : rankedPartners.length === 0 ? (
-
{t('interactionMapEmpty')}
- ) : (
-
-
- {rankedPartners.map(({ stat: p, score }) => {
- const heat = score / 100
- const bgAlpha = 0.12 + heat * 0.55
- const borderAlpha = 0.25 + heat * 0.65
- const scoreRounded = Math.round(score)
- const following = Boolean(
- followList?.followings.some((f) => f.toLowerCase() === p.pubkey.toLowerCase())
- )
- const selfCard = accountPubkey?.toLowerCase() === p.pubkey.toLowerCase()
- const cellTitle =
- p.mentionCount > 0 && p.lastReferencedAt > 0
- ? `${t('interactionMapScore', { score: scoreRounded })} · ${t('interactionMapCellTitle', {
- count: p.mentionCount,
- when: dayjs.unix(p.lastReferencedAt).fromNow()
- })}`
- : `${t('interactionMapScore', { score: scoreRounded })} · ${t('interactionMapCellTitleFollowOnly')}`
- return (
-
- {/*
- Avoid a native
- )
- })}
-
-
- )}
-
-
-
-
-
-