stone-kit
Version:
uikit for redesign
50 lines (49 loc) • 1.42 kB
JavaScript
const J = ({
option: e,
setSelectedOptions: s,
selectedOptions: l,
disabledOptions: u,
onChange: c,
mode: y,
optionsParentArr: f
}) => {
if (!Array.isArray(e)) {
if (u.includes(e))
return;
let i = l.some((r) => r.value === e.value) ? l.filter((r) => r.value !== e.value) : [...l, e];
if (y === "single") {
const r = [e];
s(r), c && c(r);
return;
}
if (y === "double") {
"options" in e && (l.map((t) => JSON.stringify(t)).includes(JSON.stringify(e)) ? i = i.filter(
(t) => !e.options.map((a) => JSON.stringify(a)).includes(JSON.stringify(t))
) : Array.isArray(e.options) && (i = [...i, ...e.options]));
const r = f == null ? void 0 : f.filter((S) => "options" in S && S.options.includes(e))[0];
!(r && l.map((S) => JSON.stringify(S)).includes(JSON.stringify(r))) && r && i.push(r);
}
s(i), c && c(i);
}
}, N = ({
option: e,
setSelectedOptions: s,
selectedOptions: l,
disabledOptions: u,
onChange: c
}) => {
if (Array.isArray(e)) {
const y = e.filter((f) => !(u != null && u.includes(f)));
if (y.every((f) => l.map((i) => i).includes(f))) {
const f = l.filter((i) => !e.includes(i));
s(f), c && c(f);
} else {
const f = y.filter((r) => !l.includes(r)), i = [...l, ...f];
s(i), c && c(i);
}
}
};
export {
N as handleClickModeCategory,
J as handleClickModeOption
};