UNPKG

@hypothesis/frontend-shared

Version:

Shared components, styles and utilities for Hypothesis projects

99 lines 2.56 kB
var _jsxFileName = "/home/runner/work/frontend-shared/frontend-shared/src/pattern-library/examples/select-with-custom-options.tsx"; import { useId, useState } from 'preact/hooks'; import { Select } from '../..'; import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "preact/jsx-dev-runtime"; const defaultItems = [{ id: '1', name: 'All students' }, { id: '2', name: 'Albert Banana' }, { id: '3', name: 'Bernard California' }, { id: '4', name: 'Cecelia Davenport' }, { id: '5', name: 'Doris Evanescence' }]; function ItemContainer({ item }) { return _jsxDEV("div", { className: "flex", children: [_jsxDEV("div", { className: "rounded px-2 mr-2 bg-grey-7 text-white", children: item.id }, void 0, false, { fileName: _jsxFileName, lineNumber: 21, columnNumber: 7 }, this), _jsxDEV("div", { className: "truncate", children: item.name }, void 0, false, { fileName: _jsxFileName, lineNumber: 22, columnNumber: 7 }, this)] }, void 0, true, { fileName: _jsxFileName, lineNumber: 20, columnNumber: 5 }, this); } export default function App({ items = defaultItems }) { const [value, setSelected] = useState(); const selectId = useId(); return _jsxDEV("div", { className: "w-96 mx-auto", children: [_jsxDEV("label", { htmlFor: selectId, children: "Select a person" }, void 0, false, { fileName: _jsxFileName, lineNumber: 33, columnNumber: 7 }, this), _jsxDEV(Select, { value: value, onChange: setSelected, buttonId: selectId, buttonContent: value ? _jsxDEV(ItemContainer, { item: value }, void 0, false, { fileName: _jsxFileName, lineNumber: 39, columnNumber: 19 }, this) : _jsxDEV(_Fragment, { children: "Select one\u2026" }, void 0, false), children: items.map(item => _jsxDEV(Select.Option, { value: item, children: _jsxDEV(ItemContainer, { item: item }, void 0, false, { fileName: _jsxFileName, lineNumber: 44, columnNumber: 13 }, this) }, item.id, false, { fileName: _jsxFileName, lineNumber: 43, columnNumber: 11 }, this)) }, void 0, false, { fileName: _jsxFileName, lineNumber: 34, columnNumber: 7 }, this)] }, void 0, true, { fileName: _jsxFileName, lineNumber: 32, columnNumber: 5 }, this); } //# sourceMappingURL=select-with-custom-options.js.map