@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
55 lines (54 loc) • 2.17 kB
JavaScript
"use client";
import _extends from "@babel/runtime/helpers/esm/extends";
var _Pending, _div;
import React, { useContext } from 'react';
import classnames from 'classnames';
import { ListContext } from "./ListContext.js";
import FlexContainer from "../flex/Container.js";
import { createSkeletonClass } from "../skeleton/SkeletonHelper.js";
import Context from "../../shared/Context.js";
function ItemContent(props) {
const {
className,
children,
variant,
selected,
pending,
disabled,
skeleton,
...rest
} = props;
const context = useContext(Context);
const inheritedVariant = useContext(ListContext)?.variant;
const inheritedSkeleton = useContext(ListContext)?.skeleton;
const inheritedDisabled = useContext(ListContext)?.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 = React.createElement(FlexContainer, _extends({
element: "li",
direction: "horizontal",
justify: "space-between",
wrap: false,
gap: false,
className: classnames("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, pending && (_Pending || (_Pending = React.createElement(Pending, null))));
if (appliedSkeleton) {
return React.createElement(Context.Provider, {
value: {
...context,
skeleton: appliedSkeleton
}
}, content);
}
return content;
}
ItemContent._supportsSpacingProps = true;
export default ItemContent;
function Pending() {
return _div || (_div = React.createElement("div", {
className: "dnb-list__item__pending"
}));
}
Pending._supportsSpacingProps = true;
//# sourceMappingURL=ItemContent.js.map