Analytics scope:
@if (identityId === null) {
Pick an identity above to see analytics.
}
@if (hashtagError) {
{{ hashtagError }}
}
@if (!hashtagLoading && hashtagRows.length === 0 && !hashtagError) {
No hashtags in this window yet — download more history from Admin.
}
@if (hashtagRows.length > 0) {
|
Tag
@if (hashtagSortCol === 'tag') {
{{ hashtagSortDir === 'asc' ? '▲' : '▼' }}
}
|
Total
@if (hashtagSortCol === 'total') {
{{ hashtagSortDir === 'asc' ? '▲' : '▼' }}
}
|
@for (row of filteredHashtagTableRows; track row.tag) {
|
|
{{ row.total }} |
}
}
@if (searchError) {
{{ searchError }}
}
@if (searchSubmitted && !searchLoading && !searchError && searchResults.length === 0) {
No matches.
}
@if (searchResults.length > 0) {
@for (row of searchResults; track trackByPostId($index, row)) {
@{{ row.author_acct }}
{{ relativeTime(row.created_at) }}
}
}
@if (heatmapError) {
{{ heatmapError }}
}
@if (!heatmapLoading && heatmapCells.length === 0 && !heatmapError) {
No post activity for this scope.
}
@if (heatmapCells.length > 0) {
@for (h of hours; track h) {
{{ hourLabel(h) }}
}
@for (row of heatmapGrid; track $index) {
{{ dowLabel($index) }}
@for (cell of row; track $index) {
}
}
}
@if (repostersError) {
{{ repostersError }}
}
@if (!repostersLoading && repostersRows.length === 0 && !repostersError) {
No repost activity in this window yet.
}
@if (repostersRows.length > 0) {
| # |
@handle |
Current
@if (repostersSortCol === 'current') {
{{ repostersSortDir === 'asc' ? '▲' : '▼' }}
}
|
Prior
@if (repostersSortCol === 'prior') {
{{ repostersSortDir === 'asc' ? '▲' : '▼' }}
}
|
Δ
@if (repostersSortCol === 'delta') {
{{ repostersSortDir === 'asc' ? '▲' : '▼' }}
}
|
@for (row of repostersSorted; track trackByAcct($index, row); let i = $index) {
| {{ i + 1 }} |
|
{{ row.current }} |
{{ row.prior }} |
{{ deltaSymbol(row.delta) }} {{ row.delta >= 0 ? '+' : '' }}{{ row.delta }}
|
}
}
@if (notifError) {
{{ notifError }}
}
@if (
!notifLoading &&
notifData &&
notifData.by_type.length === 0 &&
notifData.by_actor.length === 0 &&
!notifError
) {
No notifications in this window yet.
}
@if (notifData && (notifData.by_type.length > 0 || notifData.by_actor.length > 0)) {
Notifications per {{ bucket }}
@for (t of notifTypes; track t) {
{{ t }}
}
Top actors
| @handle |
Count |
@for (row of notifData.by_actor.slice(0, 25); track trackByAcct($index, row)) {
|
|
{{ row.count }} |
}
}