fumadocs-openapi
Version:
Generate MDX docs for your OpenAPI spec
21 lines (20 loc) • 1.19 kB
JavaScript
'use client';
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { createContext, useContext, useMemo, useState, } from 'react';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '../ui/components/select.js';
import { cn } from 'fumadocs-ui/utils/cn';
const Context = createContext(null);
export function SelectTabs({ defaultValue, children, }) {
const [type, setType] = useState(defaultValue ?? null);
return (_jsx(Context, { value: useMemo(() => ({ type, setType }), [type]), children: children }));
}
export function SelectTab({ value, ...props }) {
const ctx = useContext(Context);
if (value !== ctx?.type)
return;
return _jsx("div", { ...props, children: props.children });
}
export function SelectTabTrigger({ items, ...props }) {
const { type, setType } = useContext(Context);
return (_jsxs(Select, { value: type ?? '', onValueChange: setType, children: [_jsx(SelectTrigger, { ...props, className: cn('not-prose w-fit', props.className), children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: items.map((type) => (_jsx(SelectItem, { value: type, children: type }, type))) })] }));
}