1import { THREAD_WORK_ROW_MIN_HEIGHT } from "../../lib/layout";
2import type { ThreadFeedEntry } from "../../lib/threadActivity";
3
4// These rows are pure timeline chrome whose rendered height is independent of
5// their content. Content-driven rows must be measured by LegendList: returning
6// a fixed size makes the list skip native measurement entirely.
7const TURN_FOLD_HEIGHT = 42;
8const WORK_GROUP_TOGGLE_HEIGHT = THREAD_WORK_ROW_MIN_HEIGHT;
9
10export function resolveThreadFeedFixedItemSize(
11 entryType: ThreadFeedEntry["type"],
12): number | undefined {
13 switch (entryType) {
14 case "run-fold":
15 return TURN_FOLD_HEIGHT;
16 case "work-toggle":
17 return WORK_GROUP_TOGGLE_HEIGHT;
18 case "activity-group":
19 case "message":
20 return undefined;
21 }
22}