UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

59 lines (58 loc) 2.39 kB
"use client"; var _Pending, _div; import React, { useContext } from 'react'; import clsx from 'clsx'; import { ListContext } from "./ListContext.js"; import FlexContainer from "../flex/Container.js"; import { createSkeletonClass } from "../skeleton/SkeletonHelper.js"; import Context from "../../shared/Context.js"; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; function ItemContent(props) { var _useContext, _useContext2, _useContext3; const { className, children, variant, selected, pending, disabled, skeleton, ...rest } = props; const context = useContext(Context); const inheritedVariant = (_useContext = useContext(ListContext)) === null || _useContext === void 0 ? void 0 : _useContext.variant; const inheritedSkeleton = (_useContext2 = useContext(ListContext)) === null || _useContext2 === void 0 ? void 0 : _useContext2.skeleton; const inheritedDisabled = (_useContext3 = useContext(ListContext)) === null || _useContext3 === void 0 ? void 0 : _useContext3.disabled; const appliedVariant = variant !== null && variant !== void 0 ? variant : inheritedVariant; const appliedSkeleton = skeleton !== null && skeleton !== void 0 ? skeleton : inheritedSkeleton; const appliedDisabled = disabled !== null && disabled !== void 0 ? disabled : inheritedDisabled; const content = _jsxs(FlexContainer, { element: "li", direction: "horizontal", justify: "space-between", wrap: false, gap: false, className: clsx("dnb-list__item dnb-t__size--basis", className, appliedVariant && `dnb-list--variant-${appliedVariant}`, selected !== undefined && 'dnb-list__item--selection', selected && 'dnb-list__item--selected', pending && 'dnb-list__item--pending', appliedDisabled && 'dnb-list__item--disabled', appliedSkeleton && createSkeletonClass('font', true)), ...rest, children: [children, pending && (_Pending || (_Pending = _jsx(Pending, {})))] }); if (appliedSkeleton) { return _jsx(Context, { value: { ...context, skeleton: appliedSkeleton }, children: content }); } return content; } ItemContent._supportsSpacingProps = true; export default ItemContent; function Pending() { return _div || (_div = _jsx("div", { className: "dnb-list__item__pending" })); } Pending._supportsSpacingProps = true; //# sourceMappingURL=ItemContent.js.map