@xylabs/react-button 4.2.0 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonExBase.d.ts","sourceRoot":"","sources":["../../../src/components/ButtonExBase.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,QAAA,MAAM,YAAY,yFAsDhB,CAAA;AAIF,OAAO,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"ButtonExBase.d.ts","sourceRoot":"","sources":["../../../src/components/ButtonExBase.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,QAAA,MAAM,YAAY,yFAwDhB,CAAA;AAIF,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -19,6 +19,16 @@ var ButtonExBase = /* @__PURE__ */ forwardRef(({ eventName = "Button Click", fun
19
19
  if (busy) {
20
20
  event.preventDefault();
21
21
  } else {
22
+ const callOnClickAndFollowHref = /* @__PURE__ */ __name(() => {
23
+ onClick?.(event);
24
+ if (href) {
25
+ if (target) {
26
+ window.open(href, target);
27
+ } else {
28
+ window.location.href = href;
29
+ }
30
+ }
31
+ }, "callOnClickAndFollowHref");
22
32
  if (!disableMixpanel && mixpanel) {
23
33
  mixpanel.track(eventName, {
24
34
  funnel,
@@ -26,16 +36,6 @@ var ButtonExBase = /* @__PURE__ */ forwardRef(({ eventName = "Button Click", fun
26
36
  });
27
37
  }
28
38
  if (!disableUserEvents && userEvents) {
29
- const callOnClickAndFollowHref = /* @__PURE__ */ __name(() => {
30
- onClick?.(event);
31
- if (href) {
32
- if (target) {
33
- window.open(href, target);
34
- } else {
35
- window.location.href = href;
36
- }
37
- }
38
- }, "callOnClickAndFollowHref");
39
39
  event.preventDefault();
40
40
  userEvents.userClick({
41
41
  elementName: eventName,
@@ -46,6 +46,8 @@ var ButtonExBase = /* @__PURE__ */ forwardRef(({ eventName = "Button Click", fun
46
46
  console.error("User event failed", eventName, ex);
47
47
  callOnClickAndFollowHref();
48
48
  });
49
+ } else {
50
+ callOnClickAndFollowHref();
49
51
  }
50
52
  }
51
53
  }, "localOnClick");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/ButtonEx.tsx","../../src/components/ButtonExBase.tsx","../../src/components/ButtonExTo.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { ButtonExBase } from './ButtonExBase.tsx'\nimport type { ButtonExProps } from './ButtonExProps.tsx'\nimport { ButtonToEx } from './ButtonExTo.tsx'\n\nconst ButtonEx = forwardRef<HTMLButtonElement, ButtonExProps>(({ to, ...props }, ref) => {\n return to ? <ButtonToEx to={to} ref={ref} {...props} /> : <ButtonExBase {...props} />\n})\n\nButtonEx.displayName = 'ButtonExXYLabs'\n\nexport { ButtonEx }\n","import { Button, useTheme } from '@mui/material'\nimport { useMixpanel } from '@xylabs/react-mixpanel'\nimport { useUserEvents } from '@xylabs/react-pixel'\nimport {\n BusyCircularProgress, BusyLinearProgress, mergeBoxlikeStyles,\n} from '@xylabs/react-shared'\nimport type { MouseEvent } from 'react'\nimport React, { forwardRef } from 'react'\n\nimport type { ButtonExProps } from './ButtonExProps.tsx'\n\nconst ButtonExBase = forwardRef<HTMLButtonElement, ButtonExProps>(({\n eventName = 'Button Click', funnel, target, placement, disableUserEvents, href, disableMixpanel, ...props\n}, ref) => {\n const theme = useTheme()\n const userEvents = useUserEvents()\n const mixpanel = useMixpanel(false)\n const {\n busy, busyVariant = 'linear', busyOpacity, onClick, children, ...rootProps\n } = mergeBoxlikeStyles<ButtonExProps>(theme, props)\n\n const localOnClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (busy) {\n // If it is busy, do not allow href clicks\n event.preventDefault()\n } else {\n if (!disableMixpanel && mixpanel) {\n mixpanel.track(eventName, {\n funnel,\n placement: placement ?? rootProps['aria-label'] ?? event.currentTarget.textContent,\n })\n }\n if (!disableUserEvents && userEvents) {\n const callOnClickAndFollowHref = () => {\n onClick?.(event)\n if (href) {\n if (target) {\n window.open(href, target)\n } else {\n window.location.href = href\n }\n }\n }\n event.preventDefault()\n userEvents.userClick({ elementName: eventName, elementType: placement }).then(() => {\n callOnClickAndFollowHref()\n }).catch((ex) => {\n console.error('User event failed', eventName, ex)\n callOnClickAndFollowHref()\n })\n }\n }\n }\n\n return (\n <Button ref={ref} href={href} onClick={localOnClick} target={target} {...rootProps}>\n {busy && busyVariant === 'linear'\n ? <BusyLinearProgress rounded opacity={busyOpacity ?? 0} />\n : null}\n {busy && busyVariant === 'circular'\n ? <BusyCircularProgress rounded size={24} opacity={busyOpacity ?? 0.5} />\n : null}\n {children}\n </Button>\n )\n})\n\nButtonExBase.displayName = 'ButtonExBaseXYLabs'\n\nexport { ButtonExBase }\n","import type { MouseEvent } from 'react'\nimport React, { forwardRef } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { ButtonExBase } from './ButtonExBase.tsx'\nimport type { ButtonExProps } from './ButtonExProps.tsx'\n\nconst ButtonToEx = forwardRef<HTMLButtonElement, ButtonExProps>(({\n to, toOptions, onClick, ...props\n}, ref) => {\n const navigate = useNavigate()\n const localOnClick = (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event)\n if (to) {\n navigate(to, toOptions)\n }\n }\n\n return <ButtonExBase ref={ref} onClick={localOnClick} {...props} />\n})\n\nButtonToEx.displayName = 'ButtonToExXYLabs'\n\nexport { ButtonToEx }\n"],"mappings":";;;;AAAA,OAAOA,UAASC,cAAAA,mBAAkB;;;ACAlC,SAASC,QAAQC,gBAAgB;AACjC,SAASC,mBAAmB;AAC5B,SAASC,qBAAqB;AAC9B,SACEC,sBAAsBC,oBAAoBC,0BACrC;AAEP,OAAOC,SAASC,kBAAkB;AAIlC,IAAMC,eAAeC,2BAA6C,CAAC,EACjEC,YAAY,gBAAgBC,QAAQC,QAAQC,WAAWC,mBAAmBC,MAAMC,iBAAiB,GAAGC,MAAAA,GACnGC,QAAAA;AACD,QAAMC,QAAQC,SAAAA;AACd,QAAMC,aAAaC,cAAAA;AACnB,QAAMC,WAAWC,YAAY,KAAA;AAC7B,QAAM,EACJC,MAAMC,cAAc,UAAUC,aAAaC,SAASC,UAAU,GAAGC,UAAAA,IAC/DC,mBAAkCZ,OAAOF,KAAAA;AAE7C,QAAMe,eAAe,wBAACC,UAAAA;AACpB,QAAIR,MAAM;AAERQ,YAAMC,eAAc;IACtB,OAAO;AACL,UAAI,CAAClB,mBAAmBO,UAAU;AAChCA,iBAASY,MAAMzB,WAAW;UACxBC;UACAE,WAAWA,aAAaiB,UAAU,YAAA,KAAiBG,MAAMG,cAAcC;QACzE,CAAA;MACF;AACA,UAAI,CAACvB,qBAAqBO,YAAY;AACpC,cAAMiB,2BAA2B,6BAAA;AAC/BV,oBAAUK,KAAAA;AACV,cAAIlB,MAAM;AACR,gBAAIH,QAAQ;AACV2B,qBAAOC,KAAKzB,MAAMH,MAAAA;YACpB,OAAO;AACL2B,qBAAOE,SAAS1B,OAAOA;YACzB;UACF;QACF,GATiC;AAUjCkB,cAAMC,eAAc;AACpBb,mBAAWqB,UAAU;UAAEC,aAAajC;UAAWkC,aAAa/B;QAAU,CAAA,EAAGgC,KAAK,MAAA;AAC5EP,mCAAAA;QACF,CAAA,EAAGQ,MAAM,CAACC,OAAAA;AACRC,kBAAQC,MAAM,qBAAqBvC,WAAWqC,EAAAA;AAC9CT,mCAAAA;QACF,CAAA;MACF;IACF;EACF,GA/BqB;AAiCrB,SACE,sBAAA,cAACY,QAAAA;IAAOhC;IAAUH;IAAYa,SAASI;IAAcpB;IAAiB,GAAGkB;KACtEL,QAAQC,gBAAgB,WACrB,sBAAA,cAACyB,oBAAAA;IAAmBC,SAAAA;IAAQC,SAAS1B,eAAe;OACpD,MACHF,QAAQC,gBAAgB,aACrB,sBAAA,cAAC4B,sBAAAA;IAAqBF,SAAAA;IAAQG,MAAM;IAAIF,SAAS1B,eAAe;OAChE,MACHE,QAAAA;AAGP,CAAA;AAEArB,aAAagD,cAAc;;;AClE3B,OAAOC,UAASC,cAAAA,mBAAkB;AAClC,SAASC,mBAAmB;AAK5B,IAAMC,aAAaC,gBAAAA,YAA6C,CAAC,EAC/DC,IAAIC,WAAWC,SAAS,GAAGC,MAAAA,GAC1BC,QAAAA;AACD,QAAMC,WAAWC,YAAAA;AACjB,QAAMC,eAAe,wBAACC,UAAAA;AACpBN,cAAUM,KAAAA;AACV,QAAIR,IAAI;AACNK,eAASL,IAAIC,SAAAA;IACf;EACF,GALqB;AAOrB,SAAO,gBAAAQ,OAAA,cAACC,cAAAA;IAAaN;IAAUF,SAASK;IAAe,GAAGJ;;AAC5D,CAAA;AAEAL,WAAWa,cAAc;;;AFfzB,IAAMC,WAAWC,gBAAAA,YAA6C,CAAC,EAAEC,IAAI,GAAGC,MAAAA,GAASC,QAAAA;AAC/E,SAAOF,KAAK,gBAAAG,OAAA,cAACC,YAAAA;IAAWJ;IAAQE;IAAW,GAAGD;OAAY,gBAAAE,OAAA,cAACE,cAAiBJ,KAAAA;AAC9E,CAAA;AAEAH,SAASQ,cAAc;","names":["React","forwardRef","Button","useTheme","useMixpanel","useUserEvents","BusyCircularProgress","BusyLinearProgress","mergeBoxlikeStyles","React","forwardRef","ButtonExBase","forwardRef","eventName","funnel","target","placement","disableUserEvents","href","disableMixpanel","props","ref","theme","useTheme","userEvents","useUserEvents","mixpanel","useMixpanel","busy","busyVariant","busyOpacity","onClick","children","rootProps","mergeBoxlikeStyles","localOnClick","event","preventDefault","track","currentTarget","textContent","callOnClickAndFollowHref","window","open","location","userClick","elementName","elementType","then","catch","ex","console","error","Button","BusyLinearProgress","rounded","opacity","BusyCircularProgress","size","displayName","React","forwardRef","useNavigate","ButtonToEx","forwardRef","to","toOptions","onClick","props","ref","navigate","useNavigate","localOnClick","event","React","ButtonExBase","displayName","ButtonEx","forwardRef","to","props","ref","React","ButtonToEx","ButtonExBase","displayName"]}
1
+ {"version":3,"sources":["../../src/components/ButtonEx.tsx","../../src/components/ButtonExBase.tsx","../../src/components/ButtonExTo.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { ButtonExBase } from './ButtonExBase.tsx'\nimport type { ButtonExProps } from './ButtonExProps.tsx'\nimport { ButtonToEx } from './ButtonExTo.tsx'\n\nconst ButtonEx = forwardRef<HTMLButtonElement, ButtonExProps>(({ to, ...props }, ref) => {\n return to ? <ButtonToEx to={to} ref={ref} {...props} /> : <ButtonExBase {...props} />\n})\n\nButtonEx.displayName = 'ButtonExXYLabs'\n\nexport { ButtonEx }\n","import { Button, useTheme } from '@mui/material'\nimport { useMixpanel } from '@xylabs/react-mixpanel'\nimport { useUserEvents } from '@xylabs/react-pixel'\nimport {\n BusyCircularProgress, BusyLinearProgress, mergeBoxlikeStyles,\n} from '@xylabs/react-shared'\nimport type { MouseEvent } from 'react'\nimport React, { forwardRef } from 'react'\n\nimport type { ButtonExProps } from './ButtonExProps.tsx'\n\nconst ButtonExBase = forwardRef<HTMLButtonElement, ButtonExProps>(({\n eventName = 'Button Click', funnel, target, placement, disableUserEvents, href, disableMixpanel, ...props\n}, ref) => {\n const theme = useTheme()\n const userEvents = useUserEvents()\n const mixpanel = useMixpanel(false)\n const {\n busy, busyVariant = 'linear', busyOpacity, onClick, children, ...rootProps\n } = mergeBoxlikeStyles<ButtonExProps>(theme, props)\n\n const localOnClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (busy) {\n // If it is busy, do not allow href clicks\n event.preventDefault()\n } else {\n const callOnClickAndFollowHref = () => {\n onClick?.(event)\n if (href) {\n if (target) {\n window.open(href, target)\n } else {\n window.location.href = href\n }\n }\n }\n if (!disableMixpanel && mixpanel) {\n mixpanel.track(eventName, {\n funnel,\n placement: placement ?? rootProps['aria-label'] ?? event.currentTarget.textContent,\n })\n }\n if (!disableUserEvents && userEvents) {\n event.preventDefault()\n userEvents.userClick({ elementName: eventName, elementType: placement }).then(() => {\n callOnClickAndFollowHref()\n }).catch((ex) => {\n console.error('User event failed', eventName, ex)\n callOnClickAndFollowHref()\n })\n } else {\n callOnClickAndFollowHref()\n }\n }\n }\n\n return (\n <Button ref={ref} href={href} onClick={localOnClick} target={target} {...rootProps}>\n {busy && busyVariant === 'linear'\n ? <BusyLinearProgress rounded opacity={busyOpacity ?? 0} />\n : null}\n {busy && busyVariant === 'circular'\n ? <BusyCircularProgress rounded size={24} opacity={busyOpacity ?? 0.5} />\n : null}\n {children}\n </Button>\n )\n})\n\nButtonExBase.displayName = 'ButtonExBaseXYLabs'\n\nexport { ButtonExBase }\n","import type { MouseEvent } from 'react'\nimport React, { forwardRef } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { ButtonExBase } from './ButtonExBase.tsx'\nimport type { ButtonExProps } from './ButtonExProps.tsx'\n\nconst ButtonToEx = forwardRef<HTMLButtonElement, ButtonExProps>(({\n to, toOptions, onClick, ...props\n}, ref) => {\n const navigate = useNavigate()\n const localOnClick = (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event)\n if (to) {\n navigate(to, toOptions)\n }\n }\n\n return <ButtonExBase ref={ref} onClick={localOnClick} {...props} />\n})\n\nButtonToEx.displayName = 'ButtonToExXYLabs'\n\nexport { ButtonToEx }\n"],"mappings":";;;;AAAA,OAAOA,UAASC,cAAAA,mBAAkB;;;ACAlC,SAASC,QAAQC,gBAAgB;AACjC,SAASC,mBAAmB;AAC5B,SAASC,qBAAqB;AAC9B,SACEC,sBAAsBC,oBAAoBC,0BACrC;AAEP,OAAOC,SAASC,kBAAkB;AAIlC,IAAMC,eAAeC,2BAA6C,CAAC,EACjEC,YAAY,gBAAgBC,QAAQC,QAAQC,WAAWC,mBAAmBC,MAAMC,iBAAiB,GAAGC,MAAAA,GACnGC,QAAAA;AACD,QAAMC,QAAQC,SAAAA;AACd,QAAMC,aAAaC,cAAAA;AACnB,QAAMC,WAAWC,YAAY,KAAA;AAC7B,QAAM,EACJC,MAAMC,cAAc,UAAUC,aAAaC,SAASC,UAAU,GAAGC,UAAAA,IAC/DC,mBAAkCZ,OAAOF,KAAAA;AAE7C,QAAMe,eAAe,wBAACC,UAAAA;AACpB,QAAIR,MAAM;AAERQ,YAAMC,eAAc;IACtB,OAAO;AACL,YAAMC,2BAA2B,6BAAA;AAC/BP,kBAAUK,KAAAA;AACV,YAAIlB,MAAM;AACR,cAAIH,QAAQ;AACVwB,mBAAOC,KAAKtB,MAAMH,MAAAA;UACpB,OAAO;AACLwB,mBAAOE,SAASvB,OAAOA;UACzB;QACF;MACF,GATiC;AAUjC,UAAI,CAACC,mBAAmBO,UAAU;AAChCA,iBAASgB,MAAM7B,WAAW;UACxBC;UACAE,WAAWA,aAAaiB,UAAU,YAAA,KAAiBG,MAAMO,cAAcC;QACzE,CAAA;MACF;AACA,UAAI,CAAC3B,qBAAqBO,YAAY;AACpCY,cAAMC,eAAc;AACpBb,mBAAWqB,UAAU;UAAEC,aAAajC;UAAWkC,aAAa/B;QAAU,CAAA,EAAGgC,KAAK,MAAA;AAC5EV,mCAAAA;QACF,CAAA,EAAGW,MAAM,CAACC,OAAAA;AACRC,kBAAQC,MAAM,qBAAqBvC,WAAWqC,EAAAA;AAC9CZ,mCAAAA;QACF,CAAA;MACF,OAAO;AACLA,iCAAAA;MACF;IACF;EACF,GAjCqB;AAmCrB,SACE,sBAAA,cAACe,QAAAA;IAAOhC;IAAUH;IAAYa,SAASI;IAAcpB;IAAiB,GAAGkB;KACtEL,QAAQC,gBAAgB,WACrB,sBAAA,cAACyB,oBAAAA;IAAmBC,SAAAA;IAAQC,SAAS1B,eAAe;OACpD,MACHF,QAAQC,gBAAgB,aACrB,sBAAA,cAAC4B,sBAAAA;IAAqBF,SAAAA;IAAQG,MAAM;IAAIF,SAAS1B,eAAe;OAChE,MACHE,QAAAA;AAGP,CAAA;AAEArB,aAAagD,cAAc;;;ACpE3B,OAAOC,UAASC,cAAAA,mBAAkB;AAClC,SAASC,mBAAmB;AAK5B,IAAMC,aAAaC,gBAAAA,YAA6C,CAAC,EAC/DC,IAAIC,WAAWC,SAAS,GAAGC,MAAAA,GAC1BC,QAAAA;AACD,QAAMC,WAAWC,YAAAA;AACjB,QAAMC,eAAe,wBAACC,UAAAA;AACpBN,cAAUM,KAAAA;AACV,QAAIR,IAAI;AACNK,eAASL,IAAIC,SAAAA;IACf;EACF,GALqB;AAOrB,SAAO,gBAAAQ,OAAA,cAACC,cAAAA;IAAaN;IAAUF,SAASK;IAAe,GAAGJ;;AAC5D,CAAA;AAEAL,WAAWa,cAAc;;;AFfzB,IAAMC,WAAWC,gBAAAA,YAA6C,CAAC,EAAEC,IAAI,GAAGC,MAAAA,GAASC,QAAAA;AAC/E,SAAOF,KAAK,gBAAAG,OAAA,cAACC,YAAAA;IAAWJ;IAAQE;IAAW,GAAGD;OAAY,gBAAAE,OAAA,cAACE,cAAiBJ,KAAAA;AAC9E,CAAA;AAEAH,SAASQ,cAAc;","names":["React","forwardRef","Button","useTheme","useMixpanel","useUserEvents","BusyCircularProgress","BusyLinearProgress","mergeBoxlikeStyles","React","forwardRef","ButtonExBase","forwardRef","eventName","funnel","target","placement","disableUserEvents","href","disableMixpanel","props","ref","theme","useTheme","userEvents","useUserEvents","mixpanel","useMixpanel","busy","busyVariant","busyOpacity","onClick","children","rootProps","mergeBoxlikeStyles","localOnClick","event","preventDefault","callOnClickAndFollowHref","window","open","location","track","currentTarget","textContent","userClick","elementName","elementType","then","catch","ex","console","error","Button","BusyLinearProgress","rounded","opacity","BusyCircularProgress","size","displayName","React","forwardRef","useNavigate","ButtonToEx","forwardRef","to","toOptions","onClick","props","ref","navigate","useNavigate","localOnClick","event","React","ButtonExBase","displayName","ButtonEx","forwardRef","to","props","ref","React","ButtonToEx","ButtonExBase","displayName"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/react-button",
3
- "version": "4.2.0",
3
+ "version": "4.2.1",
4
4
  "description": "Common React library for all XY Labs projects that use React",
5
5
  "keywords": [
6
6
  "utility",
@@ -37,16 +37,16 @@
37
37
  "packages/*"
38
38
  ],
39
39
  "dependencies": {
40
- "@xylabs/react-mixpanel": "^4.2.0",
41
- "@xylabs/react-pixel": "^4.2.0",
42
- "@xylabs/react-shared": "^4.2.0",
40
+ "@xylabs/react-mixpanel": "^4.2.1",
41
+ "@xylabs/react-pixel": "^4.2.1",
42
+ "@xylabs/react-shared": "^4.2.1",
43
43
  "react-router-dom": "^6.26.1"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@mui/material": "^6.0.2",
47
47
  "@storybook/react": "^8.2.9",
48
48
  "@types/react": "^18.3.5",
49
- "@xylabs/react-flexbox": "^4.2.0",
49
+ "@xylabs/react-flexbox": "^4.2.1",
50
50
  "@xylabs/ts-scripts-yarn3": "^4.0.7",
51
51
  "@xylabs/tsconfig-react": "^4.0.7",
52
52
  "react": "^18.3.1",
@@ -24,6 +24,16 @@ const ButtonExBase = forwardRef<HTMLButtonElement, ButtonExProps>(({
24
24
  // If it is busy, do not allow href clicks
25
25
  event.preventDefault()
26
26
  } else {
27
+ const callOnClickAndFollowHref = () => {
28
+ onClick?.(event)
29
+ if (href) {
30
+ if (target) {
31
+ window.open(href, target)
32
+ } else {
33
+ window.location.href = href
34
+ }
35
+ }
36
+ }
27
37
  if (!disableMixpanel && mixpanel) {
28
38
  mixpanel.track(eventName, {
29
39
  funnel,
@@ -31,16 +41,6 @@ const ButtonExBase = forwardRef<HTMLButtonElement, ButtonExProps>(({
31
41
  })
32
42
  }
33
43
  if (!disableUserEvents && userEvents) {
34
- const callOnClickAndFollowHref = () => {
35
- onClick?.(event)
36
- if (href) {
37
- if (target) {
38
- window.open(href, target)
39
- } else {
40
- window.location.href = href
41
- }
42
- }
43
- }
44
44
  event.preventDefault()
45
45
  userEvents.userClick({ elementName: eventName, elementType: placement }).then(() => {
46
46
  callOnClickAndFollowHref()
@@ -48,6 +48,8 @@ const ButtonExBase = forwardRef<HTMLButtonElement, ButtonExProps>(({
48
48
  console.error('User event failed', eventName, ex)
49
49
  callOnClickAndFollowHref()
50
50
  })
51
+ } else {
52
+ callOnClickAndFollowHref()
51
53
  }
52
54
  }
53
55
  }