MCPcopy Create free account
hub / github.com/Noumena-Network/code / ModelsTab

Function ModelsTab

src/components/Stats.tsx:717–816  ·  view source on GitHub ↗
(t0)

Source from the content-addressed store, hash-verified

715 return factoids[randomIndex]!;
716}
717function ModelsTab(t0) {
718 const $ = _c(15);
719 const {
720 stats,
721 dateRange,
722 isLoading
723 } = t0;
724 const {
725 headerFocused,
726 focusHeader
727 } = useTabHeaderFocus();
728 const [scrollOffset, setScrollOffset] = useState(0);
729 const {
730 columns: terminalWidth
731 } = useTerminalSize();
732 const modelEntries = Object.entries(stats.modelUsage).sort(_temp7);
733 const t1 = !headerFocused;
734 let t2;
735 if ($[0] !== t1) {
736 t2 = {
737 isActive: t1
738 };
739 $[0] = t1;
740 $[1] = t2;
741 } else {
742 t2 = $[1];
743 }
744 useInput((_input, key) => {
745 if (key.downArrow && scrollOffset < modelEntries.length - 4) {
746 setScrollOffset(prev => Math.min(prev + 2, modelEntries.length - 4));
747 }
748 if (key.upArrow) {
749 if (scrollOffset > 0) {
750 setScrollOffset(_temp8);
751 } else {
752 focusHeader();
753 }
754 }
755 }, t2);
756 if (modelEntries.length === 0) {
757 let t3;
758 if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
759 t3 = <Box><Text color="subtle">No model usage data available</Text></Box>;
760 $[2] = t3;
761 } else {
762 t3 = $[2];
763 }
764 return t3;
765 }
766 const totalTokens = modelEntries.reduce(_temp9, 0);
767 const chartOutput = generateTokenChart(stats.dailyModelTokens, modelEntries.map(_temp0), terminalWidth);
768 const visibleModels = modelEntries.slice(scrollOffset, scrollOffset + 4);
769 const midpoint = Math.ceil(visibleModels.length / 2);
770 const leftModels = visibleModels.slice(0, midpoint);
771 const rightModels = visibleModels.slice(midpoint);
772 const canScrollUp = scrollOffset > 0;
773 const canScrollDown = scrollOffset < modelEntries.length - 4;
774 const showScrollHint = modelEntries.length > 4;

Callers

nothing calls this directly

Calls 5

useTabHeaderFocusFunction · 0.85
useTerminalSizeFunction · 0.85
useInputFunction · 0.85
generateTokenChartFunction · 0.85
entriesMethod · 0.80

Tested by

no test coverage detected