* Migrate to esbuild WIP * Add exclude * Remove redundant file * Move file * Move to javascript_include_tag * Lint fix * WIP * WIP * Add watch mode to esbuild WIP * Get jest working * Remove babel * Revert "Remove babel" This reverts commit 6da35260aa19d6f97f586deb66c0ecaf48433b73. * More WIP * Got image to load * WIP * Resolve audit * Lint fix * WIP * Fix jest spec * [CI] Remove asset-restore for test build stage * Production compliant * Temp disable sourcemap * Update glob * Add esbuild helper to stimulus * Import fragment * Temp disable coverage to see failing tests * Fix broken spec * Address lint * Set proper es6 target * Use esbuild for everything * wait what * Revert "Set proper es6 target" This reverts commit 98f5278093421baa8ffe2ca580845b01c1a1eadf. * Revert "Use esbuild for everything" This reverts commit 0ac46738f07ffcb6af095ccb1ffa5e439b7fefa3. * Replace uglifier with terser * New compiled assets version * Remvoe honeybadger-io/webpack * Remove cypress coverage checks for now * Update jsconfig.json * Update docker-compose * Remove public/packs-test from ci cache
48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
import { h } from 'preact';
|
|
import { useCallback } from 'preact/hooks';
|
|
import { ButtonNew as Button, Icon } from '@crayons';
|
|
import Close from '@images/x.svg';
|
|
|
|
/**
|
|
* Higher-order component that returns a template responsible for the layout of
|
|
* a selected location
|
|
*
|
|
* @returns {h.JSX.ElementType}
|
|
*/
|
|
export const SelectedLocation = ({
|
|
displayName,
|
|
onNameClick,
|
|
label,
|
|
ExtraInfo,
|
|
}) => {
|
|
const Template = ({ onEdit: _, onDeselect, ...location }) => {
|
|
const onClick = useCallback(() => onNameClick(location), [location]);
|
|
|
|
return (
|
|
<div
|
|
role="group"
|
|
aria-label={location.name}
|
|
className="c-autocomplete--multi__tag-selection flex mr-2 mb-2 w-max"
|
|
>
|
|
<Button
|
|
aria-label={label}
|
|
onClick={onClick}
|
|
className="c-autocomplete--multi__selected p-1 flex flex-col"
|
|
>
|
|
{location.name}
|
|
{ExtraInfo && <ExtraInfo {...location} />}
|
|
</Button>
|
|
<Button
|
|
aria-label={`Remove ${location.name}`}
|
|
onClick={onDeselect}
|
|
className="c-autocomplete--multi__selected p-1"
|
|
>
|
|
<Icon src={Close} />
|
|
</Button>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
Template.displayName = displayName;
|
|
return Template;
|
|
};
|