@tolokoban/ui
Version:
React components with theme
27 lines • 2.76 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import * as React from "react";
import { Theme } from "./../../theme/index.js";
import { classnameCommon, styleCommon, } from "./../../theme/styles/common.js";
import Styles from "./Stack.module.css";
import { ensureArray } from "./../../util/ensure.js";
const $ = Theme.classNames;
export function ViewStack(props) {
const { value, children } = props;
const style = Object.assign({}, styleCommon(props));
const items = React.useMemo(() => {
const values = new Set((() => {
if (!value)
return [];
return Array.isArray(value) ? value : [value];
})());
return ensureArray(children).filter((child) => {
if (!child.key) {
// Children without a key are always displayed.
return true;
}
return values.has(child.key);
});
}, [children, value]);
return (_jsx("div", { className: $.join(props.className, Styles.stack, classnameCommon(props)), style: style, children: items }));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdmlldy9TdGFjay9TdGFjay50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBRTlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDL0IsT0FBTyxFQUNILGVBQWUsRUFFZixXQUFXLEdBQ2QsTUFBTSx1QkFBdUIsQ0FBQTtBQUU5QixPQUFPLE1BQU0sTUFBTSxvQkFBb0IsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTNDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUE7QUFXMUIsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFxQjtJQUMzQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUNqQyxNQUFNLEtBQUsscUJBQ0osV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUN4QixDQUFBO0lBQ0QsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDN0IsTUFBTSxNQUFNLEdBQWdCLElBQUksR0FBRyxDQUMvQixDQUFDLEdBQUcsRUFBRTtZQUNGLElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU8sRUFBRSxDQUFBO1lBRXJCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2pELENBQUMsQ0FBQyxFQUFFLENBQ1AsQ0FBQTtRQUNELE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2IsK0NBQStDO2dCQUMvQyxPQUFPLElBQUksQ0FBQTtZQUNmLENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDckIsT0FBTyxDQUNILGNBQ0ksU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2IsS0FBSyxDQUFDLFNBQVMsRUFDZixNQUFNLENBQUMsS0FBSyxFQUNaLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FDekIsRUFDRCxLQUFLLEVBQUUsS0FBSyxZQUVYLEtBQUssR0FDSixDQUNULENBQUE7QUFDTCxDQUFDIn0=