MCPcopy
hub / github.com/opentrace/opentrace / IndexMetadataPanel

Function IndexMetadataPanel

ui/src/appComponents/IndexMetadataPanel.tsx:104–159  ·  view source on GitHub ↗
({ graphVersion }: Props)

Source from the content-addressed store, hash-verified

102}
103
104export default function IndexMetadataPanel({ graphVersion }: Props) {
105 const { store } = useStore();
106 const [entries, setEntries] = useState<IndexMetadata[]>([]);
107 const [collapsed, setCollapsed] = useState(false);
108
109 useEffect(() => {
110 let cancelled = false;
111 store.fetchMetadata().then((result) => {
112 if (!cancelled) setEntries(result);
113 });
114 return () => {
115 cancelled = true;
116 };
117 }, [store, graphVersion]);
118
119 if (entries.length === 0) return null;
120
121 return (
122 <div className="index-metadata">
123 <div className="index-metadata-header">
124 <button
125 className="filter-section-collapse-btn"
126 onClick={() => setCollapsed((c) => !c)}
127 aria-expanded={!collapsed}
128 >
129 <svg
130 width="10"
131 height="10"
132 viewBox="0 0 10 10"
133 className={`filter-expand-icon ${collapsed ? '' : 'filter-expand-icon--open'}`}
134 >
135 <path
136 d="M3 2 L7 5 L3 8"
137 fill="none"
138 stroke="currentColor"
139 strokeWidth="1.5"
140 />
141 </svg>
142 </button>
143 <span
144 className="filter-section-title"
145 onClick={() => setCollapsed((c) => !c)}
146 >
147 Index Info
148 </span>
149 </div>
150 {!collapsed && (
151 <div className="index-metadata-entries">
152 {entries.map((meta, i) => (
153 <MetadataEntry key={meta.repoId ?? i} meta={meta} />
154 ))}
155 </div>
156 )}
157 </div>
158 );
159}

Callers

nothing calls this directly

Calls 2

useStoreFunction · 0.90
fetchMetadataMethod · 0.65

Tested by

no test coverage detected