koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
3 lines (2 loc) • 1.1 kB
JavaScript
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),i=require("react"),f=require("classnames"),T=require("../Icons/IconSuccess.cjs"),m=require("../Icons/IconDanger.cjs"),q=require("../Icons/IconLink.cjs"),e=require("./ActionTypes.cjs"),n=require("./ActionButton.module.css.cjs"),I=({title:s,icon:o,type:c="default",onClick:u=()=>{},className:r,disabled:l})=>{const a=i.useMemo(()=>o??{[e.ActionTypes.success]:T.IconSuccess,[e.ActionTypes.danger]:m.IconDanger,[e.ActionTypes.link]:q.IconLink,[e.ActionTypes.default]:void 0}[c],[o,c]),d=i.useCallback(A=>{u(A)},[u]);return t.jsxs("button",{disabled:l,title:s,onClick:d,className:f(n.default.actionButton,{[n.default.default]:c===e.ActionTypes.default,[n.default.link]:c===e.ActionTypes.link,[n.default.success]:c===e.ActionTypes.success,[n.default.danger]:c===e.ActionTypes.danger},r),children:[a&&t.jsx(a,{className:n.default.actionIcon}),s&&t.jsx("span",{className:n.default.actionLabel,children:s})]})};exports.ActionButton=I;
//# sourceMappingURL=ActionButton.cjs.map