@transferwise/components 0.0.0-experimental-322d55c → 0.0.0-experimental-cb4aafe

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.
package/build/index.js CHANGED
@@ -10656,7 +10656,9 @@ const SegmentedControl = ({
10656
10656
  }, [segmentsWithRefs, selectedValue]);
10657
10657
  React.useEffect(() => {
10658
10658
  onChange(selectedValue);
10659
- }, [onChange, selectedValue]);
10659
+ // only call onChange once when the component mounts, to maintain previous behavior
10660
+ // eslint-disable-next-line react-hooks/exhaustive-deps
10661
+ }, []);
10660
10662
  return /*#__PURE__*/jsxRuntime.jsx("div", {
10661
10663
  ref: segmentsRef,
10662
10664
  "data-testid": "segmented-control",
@@ -10668,50 +10670,51 @@ const SegmentedControl = ({
10668
10670
  'segmented-control__segments--no-animate': !animate
10669
10671
  }),
10670
10672
  role: mode !== 'input' ? 'tablist' : undefined,
10671
- children: segmentsWithRefs.map(segment => mode === 'input' ? /*#__PURE__*/jsxRuntime.jsxs("label", {
10672
- ref: segment.ref,
10673
- htmlFor: segment.id,
10674
- className: classNames__default.default('segmented-control__segment', {
10675
- 'segmented-control__selected-segment': selectedValue === segment.value
10676
- }),
10677
- children: [/*#__PURE__*/jsxRuntime.jsx("input", {
10678
- type: "radio",
10679
- className: "segmented-control__radio-input",
10680
- id: segment.id,
10681
- name: name,
10682
- value: segment.value,
10683
- checked: selectedValue === segment.value,
10684
- onChange: () => {
10685
- setAnimate(true);
10686
- setSelectedValue(segment.value);
10687
- }
10688
- }), /*#__PURE__*/jsxRuntime.jsx(Body, {
10689
- className: "segmented-control__text",
10690
- as: "span",
10691
- type: selectedValue === segment.value ? exports.Typography.BODY_DEFAULT_BOLD : exports.Typography.BODY_DEFAULT,
10692
- children: segment.label
10693
- })]
10694
- }, segment.id) : /*#__PURE__*/jsxRuntime.jsx("button", {
10695
- ref: segment.ref,
10696
- type: "button",
10697
- role: "tab",
10698
- id: segment.id,
10699
- "aria-controls": segment.controls,
10700
- "aria-selected": selectedValue === segment.value,
10701
- className: classNames__default.default('segmented-control__segment', 'segmented-control__button', {
10702
- 'segmented-control__selected-segment': selectedValue === segment.value
10703
- }),
10704
- onClick: () => {
10673
+ children: segmentsWithRefs.map(segment => {
10674
+ const onSelect = () => {
10705
10675
  setAnimate(true);
10706
10676
  setSelectedValue(segment.value);
10707
- },
10708
- children: /*#__PURE__*/jsxRuntime.jsx(Body, {
10709
- as: "span",
10710
- className: "segmented-control__text",
10711
- type: selectedValue === segment.value ? exports.Typography.BODY_DEFAULT_BOLD : exports.Typography.BODY_DEFAULT,
10712
- children: segment.label
10713
- })
10714
- }, segment.id))
10677
+ onChange(segment.value);
10678
+ };
10679
+ return mode === 'input' ? /*#__PURE__*/jsxRuntime.jsxs("label", {
10680
+ ref: segment.ref,
10681
+ htmlFor: segment.id,
10682
+ className: classNames__default.default('segmented-control__segment', {
10683
+ 'segmented-control__selected-segment': selectedValue === segment.value
10684
+ }),
10685
+ children: [/*#__PURE__*/jsxRuntime.jsx("input", {
10686
+ type: "radio",
10687
+ className: "segmented-control__radio-input",
10688
+ id: segment.id,
10689
+ name: name,
10690
+ value: segment.value,
10691
+ checked: selectedValue === segment.value,
10692
+ onChange: onSelect
10693
+ }), /*#__PURE__*/jsxRuntime.jsx(Body, {
10694
+ className: "segmented-control__text",
10695
+ as: "span",
10696
+ type: selectedValue === segment.value ? exports.Typography.BODY_DEFAULT_BOLD : exports.Typography.BODY_DEFAULT,
10697
+ children: segment.label
10698
+ })]
10699
+ }, segment.id) : /*#__PURE__*/jsxRuntime.jsx("button", {
10700
+ ref: segment.ref,
10701
+ type: "button",
10702
+ role: "tab",
10703
+ id: segment.id,
10704
+ "aria-controls": segment.controls,
10705
+ "aria-selected": selectedValue === segment.value,
10706
+ className: classNames__default.default('segmented-control__segment', 'segmented-control__button', {
10707
+ 'segmented-control__selected-segment': selectedValue === segment.value
10708
+ }),
10709
+ onClick: onSelect,
10710
+ children: /*#__PURE__*/jsxRuntime.jsx(Body, {
10711
+ as: "span",
10712
+ className: "segmented-control__text",
10713
+ type: selectedValue === segment.value ? exports.Typography.BODY_DEFAULT_BOLD : exports.Typography.BODY_DEFAULT,
10714
+ children: segment.label
10715
+ })
10716
+ }, segment.id);
10717
+ })
10715
10718
  })
10716
10719
  });
10717
10720
  };