Skip to main content
Glama
deleonio
by deleonio
basic.tsx2.21 kB
import type { FC } from 'react'; import React, { useEffect, useRef, useState } from 'react'; import { useSearchParams } from 'react-router-dom'; import type { AlignPropType } from '@public-ui/components'; import { KolButton, KolDrawer, KolInputCheckbox } from '@public-ui/react-v19'; import { SampleDescription } from '../SampleDescription'; import { DrawerRadioAlign } from './partials/align'; export const DrawerBasic: FC = () => { const [searchParams] = useSearchParams(); const defaultAlign = searchParams.get('align') as AlignPropType; const defaultCloser = searchParams.get('closer') === 'true'; const drawerElement = useRef<HTMLKolDrawerElement>(null); const [align, setAlign] = useState<AlignPropType>(defaultAlign || 'left'); const [hasCloser, setHasCloser] = useState<boolean>(defaultCloser); useEffect(() => { if (defaultAlign) { drawerElement.current?.open(); } }, [defaultAlign]); return ( <> <SampleDescription> <p>KolDrawer shows a dialog attached to one of the sides of the viewport, when opened. This sample illustrates the four alignments.</p> </SampleDescription> <DrawerRadioAlign value={align} onChange={(_, value) => setAlign(value as AlignPropType)} /> <KolInputCheckbox _label="Drawer has closer" className="mb-4" _checked={hasCloser} _on={{ onInput: (_, value) => { setHasCloser((value as null | boolean) === true); }, }} /> <div className="flex flex-wrap gap-4"> <KolDrawer ref={drawerElement} _label="I am a drawer" _align={align} _hasCloser={hasCloser} _on={{ onClose: () => console.log('Drawer onClose triggered!') }} > <div className={align === 'left' || align === 'right' ? 'drawer-content-vertical' : ''}> <p className="mt-0"> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. </p> <KolButton _label="Close drawer" _on={{ onClick: () => drawerElement.current?.close() }} /> </div> </KolDrawer> <KolButton _label="Open drawer" _on={{ onClick: () => drawerElement.current?.open() }} /> </div> </> ); };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/deleonio/public-ui-kolibri'

If you have feedback or need assistance with the MCP directory API, please join our Discord server