| 1 | import { THREAD_WORK_ROW_MIN_HEIGHT } from "../../lib/layout"; |
| 2 | import 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. |
| 7 | const TURN_FOLD_HEIGHT = 42; |
| 8 | const WORK_GROUP_TOGGLE_HEIGHT = THREAD_WORK_ROW_MIN_HEIGHT; |
| 9 | |
| 10 | export 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 | } |