UNPKG

fumadocs-openapi

Version:

Generate MDX docs for your OpenAPI spec

21 lines (20 loc) 1.19 kB
'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))) })] })); }