import type { ContentKitButton, ContentKitCheckbox, ContentKitCodeBlock, ContentKitInput, ContentKitRadio, ContentKitSelect, ContentKitSwitch, ContentKitTextInput, } from '@gitbook/api'; import classNames from 'classnames'; import { ElementButton } from './ElementButton'; import { ElementCodeBlock } from './ElementCodeBlock'; import { ElementIcon } from './ElementIcon'; import { ElementTextInput } from './ElementTextInput'; import type { ContentKitServerContext } from './types'; export function ElementInput(props: { element: ContentKitInput; context: ContentKitServerContext; state: object; }) { const { element, context, state } = props; const { label, element: childElement } = element; return (
{label ? : null} {getInputElement({ element: childElement, context, state })}
); } function getInputElement(props: { element: | ContentKitTextInput | ContentKitSelect | ContentKitSwitch | ContentKitRadio | ContentKitCheckbox | ContentKitButton | ContentKitCodeBlock; context: ContentKitServerContext; state: object; }) { const { element, context, state } = props; //!!TODO add support for: // - select // - switch // - radio // - checkbox switch (element.type) { case 'textinput': return ; case 'button': return ( : null } trailingIcon={ element.trailingIcon ? ( ) : null } /> ); case 'codeblock': return ; } }