geostyler
Version:
Framework for styling geodata
36 lines (35 loc) • 802 B
JavaScript
import { jsx as r } from "react/jsx-runtime";
import a, { useState as p } from "react";
import "./Selectable.css.js";
import { SelectableItem as f } from "./SelectableItem/SelectableItem.js";
const h = ({
selection: i,
onSelectionChange: c,
children: m
}) => {
const [l, n] = p(i || []), o = (e) => {
const t = l.indexOf(e);
let s;
t > -1 ? (s = [...l], s.splice(t, 1)) : s = [...l, e], n(s), c && c(s);
}, d = (e) => l.includes(e);
return /* @__PURE__ */ r(
"div",
{
className: "gs-selectable",
children: a.Children.map(m, (e, t) => /* @__PURE__ */ r(
f,
{
onItemClick: () => {
o(t);
},
selected: d(t),
children: e
},
t
))
}
);
};
export {
h as Selectable
};