@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 1.05 kB
JavaScript
import{jsx as s,jsxs as C}from"react/jsx-runtime";import"./ShortcutButton.scss";import R from"classnames";import{memo as _,useCallback as u}from"react";import m from"../../store";import{t as h}from"../../utils/i18n";const n=_(({id:o,label:r,icon:i,enabled:t,active:c,tooltip:a,badge:e,variant:p="default",showResetButton:f=!1,interfaceId:l})=>{const N=u(()=>{t&&m.shortcutRegistry.handleShortcutClick(l,o)},[t,l,o]),d=u(k=>{k.stopPropagation(),t&&c&&m.shortcutRegistry.handleShortcutReset(l,o)},[t,c,l,o]);return C("button",{className:R("shortcut-button",`shortcut-button--${p}`,{"is-active":c,"is-disabled":!t}),onClick:N,disabled:!t,title:a||r,type:"button","aria-label":a||r,children:[f&&c&&s("div",{className:"shortcut-reset-button",onClick:d,title:h("Reset filter"),"aria-label":h("Reset filter"),children:s("i",{className:"icon-close-solid"})}),i&&s("i",{className:i}),r&&s("span",{className:"shortcut-button__label",children:r}),e&&s("span",{className:"shortcut-button__badge",children:e})]})});n.displayName="ShortcutButton";export default n;