MCPcopy Create free account
hub / github.com/CommandCodeAI/BaseAI / useTabGroupProps

Function useTabGroupProps

apps/baseai.dev/src/components/Code.tsx:302–327  ·  view source on GitHub ↗
(availableLanguages: Array<string>)

Source from the content-addressed store, hash-verified

300}));
301
302function useTabGroupProps(availableLanguages: Array<string>) {
303 let { preferredLanguages, addPreferredLanguage } =
304 usePreferredLanguageStore();
305 let [selectedIndex, setSelectedIndex] = useState(0);
306 let activeLanguage = [...availableLanguages].sort(
307 (a, z) => preferredLanguages.indexOf(z) - preferredLanguages.indexOf(a)
308 )[0];
309 let languageIndex = availableLanguages.indexOf(activeLanguage);
310 let newSelectedIndex = languageIndex === -1 ? selectedIndex : languageIndex;
311 if (newSelectedIndex !== selectedIndex) {
312 setSelectedIndex(newSelectedIndex);
313 }
314
315 let { positionRef, preventLayoutShift } = usePreventLayoutShift();
316
317 return {
318 as: 'div' as const,
319 ref: positionRef,
320 selectedIndex,
321 onChange: (newSelectedIndex: number) => {
322 preventLayoutShift(() =>
323 addPreferredLanguage(availableLanguages[newSelectedIndex])
324 );
325 }
326 };
327}
328
329const CodeGroupContext = createContext(false);
330

Callers 1

CodeGroupFunction · 0.85

Calls 2

usePreventLayoutShiftFunction · 0.85
preventLayoutShiftFunction · 0.85

Tested by

no test coverage detected