@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
56 lines (55 loc) • 2.01 kB
JavaScript
"use client";
import { useContext } from 'react';
import { clsx } from 'clsx';
import SharedContext from "../../shared/Context.js";
import { FilterContext, FilterConnectedIdContext } from "./FilterContext.js";
import { useSharedState } from "../../shared/helpers/useSharedState.js";
import { useSpacing } from "../space/SpacingUtils.js";
import { ListContext } from "../list/ListContext.js";
import ListItemBasic from "../list/ItemBasic.js";
import withComponentMarkers from "../../shared/helpers/withComponentMarkers.js";
import P from "../../elements/P.js";
import { jsx as _jsx } from "react/jsx-runtime";
function FilterNoResults({
connectedTo,
resultCount: resultCountProp,
children,
className,
...spacingRest
}) {
var _ref, _ref2;
const sharedContext = useContext(SharedContext);
const {
noResultsMessage
} = sharedContext.getTranslation({}).Filter;
const context = useContext(FilterContext);
const connectedId = useContext(FilterConnectedIdContext);
const resolvedId = (_ref = connectedTo !== null && connectedTo !== void 0 ? connectedTo : connectedId) !== null && _ref !== void 0 ? _ref : context?.id;
const {
data: sharedData
} = useSharedState(resolvedId);
const listContext = useContext(ListContext);
const resultCount = (_ref2 = resultCountProp !== null && resultCountProp !== void 0 ? resultCountProp : sharedData?.resultCount) !== null && _ref2 !== void 0 ? _ref2 : context?.resultCount;
const spacingProps = useSpacing(spacingRest, {
className: clsx('dnb-filter__no-results', className)
});
if (resultCount === undefined || resultCount > 0) {
return null;
}
const message = children || noResultsMessage;
if (listContext) {
return _jsx(ListItemBasic, {
...spacingProps,
title: message
});
}
return _jsx(P, {
...spacingProps,
children: message
});
}
withComponentMarkers(FilterNoResults, {
_supportsSpacingProps: true
});
export default FilterNoResults;
//# sourceMappingURL=FilterNoResults.js.map