@navikt/ds-react
Version:
React components from the Norwegian Labour and Welfare Administration.
47 lines • 2.44 kB
JavaScript
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
import React, { forwardRef } from "react";
import { XMarkIcon } from "@navikt/aksel-icons";
import { useRenameCSS, useThemeInternal } from "../theme/Theme.js";
import { composeEventHandlers } from "../util/composeEventHandlers.js";
import { useI18n } from "../util/i18n/i18n.hooks.js";
export const RemovableChips = forwardRef((_a, ref) => {
var { children, variant, onDelete, className, onClick, type = "button", "data-color": color } = _a, rest = __rest(_a, ["children", "variant", "onDelete", "className", "onClick", "type", "data-color"]);
const translate = useI18n("Chips");
const themeContext = useThemeInternal(false);
const { cn } = useRenameCSS();
let localVariant;
if (themeContext === null || themeContext === void 0 ? void 0 : themeContext.isDarkside) {
localVariant = variant;
}
else {
localVariant = variant !== null && variant !== void 0 ? variant : "action";
}
return (React.createElement("button", Object.assign({ "data-color": color !== null && color !== void 0 ? color : variantToColor(localVariant) }, rest, { ref: ref, type: type, className: cn("navds-chips__chip navds-chips__removable navds-chips--icon-right", className, {
[`navds-chips__removable--${localVariant}`]: localVariant,
}), "aria-label": `${children} ${translate("Removable.labelSuffix")}`, onClick: composeEventHandlers(onClick, onDelete) }),
React.createElement("span", { className: cn("navds-chips__chip-text") }, children),
React.createElement("span", { className: cn("navds-chips__removable-icon") },
React.createElement(XMarkIcon, { "aria-hidden": true }))));
});
function variantToColor(variant) {
switch (variant) {
case "action":
return "accent";
case "neutral":
return "neutral";
default:
return undefined;
}
}
export default RemovableChips;
//# sourceMappingURL=Removable.js.map