Skip to content

Commit e576bfd

Browse files
kadiryaziciseambot
andauthored
fix: Interacting form submits early (#684)
* fix: Interacting form submits early * ci: Format code --------- Co-authored-by: Seam Bot <[email protected]>
1 parent 29d28b0 commit e576bfd

16 files changed

+43
-9
lines changed

.eslintrc.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,12 @@
1919
}
2020
],
2121
"import/extensions": ["error", "ignorePackages"],
22-
"import/no-duplicates": ["error", { "prefer-inline": true }],
22+
"import/no-duplicates": [
23+
"error",
24+
{
25+
"prefer-inline": true
26+
}
27+
],
2328
"simple-import-sort/imports": [
2429
"error",
2530
{

src/lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export function FilterCategoryMenu({
4646
<p>{label}</p>
4747
<Menu
4848
renderButton={({ onOpen }) => (
49-
<button onClick={onOpen}>
49+
<button type='button' onClick={onOpen}>
5050
<span>{buttonLabel}</span>
5151
<ChevronDownIcon />
5252
</button>

src/lib/seam/components/SupportedDeviceTable/ShowAllDevicesButton.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export function ShowAllDevicesButton({
2020
const label = expanded ? t.showLess : t.showAll(totalDeviceCount)
2121

2222
return (
23-
<button className='show-all-devices-button' onClick={onClick}>
23+
<button type='button' className='show-all-devices-button' onClick={onClick}>
2424
<ChevronRightIcon /> {label}
2525
</button>
2626
)

src/lib/ui/Alert/Alert.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ function Action(props: ActionProps): JSX.Element | null {
4949

5050
return (
5151
<div className='seam-alert-action-wrap'>
52-
<button onClick={handleClick} className='seam-alert-action'>
52+
<button type='button' onClick={handleClick} className='seam-alert-action'>
5353
{props.label}
5454
</button>
5555
</div>

src/lib/ui/IconButton.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export function IconButton({
1515
return (
1616
<button
1717
{...props}
18+
type='button'
1819
ref={elRef}
1920
className={classNames(
2021
'seam-icon-btn',

src/lib/ui/Snackbar/Snackbar.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ export function Snackbar({
7777
<div className='seam-snackbar-actions-wrap'>
7878
{action != null && (
7979
<button
80+
type='button'
8081
className='seam-snackbar-action'
8182
onClick={handleActionClick}
8283
>
@@ -85,6 +86,7 @@ export function Snackbar({
8586
)}
8687
{!disableCloseButton && (
8788
<button
89+
type='button'
8890
className='seam-snackbar-close-button'
8991
onClick={() => {
9092
handleClose()

src/lib/ui/TabSet.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ function TabButton<TabType extends string>({
102102
'seam-tab-button',
103103
isActive && 'seam-tab-button-active'
104104
)}
105+
type='button'
105106
onClick={handleClick}
106107
>
107108
<p className='seam-tab-button-label'>{title}</p>

src/lib/ui/TextButton.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ export function TextButton({
1010
...buttonProps
1111
}: TextButtonProps): JSX.Element {
1212
return (
13-
<button className={`seam-text-btn seam-color-${color}`} {...buttonProps} />
13+
<button
14+
type='button'
15+
className={`seam-text-btn seam-color-${color}`}
16+
{...buttonProps}
17+
/>
1418
)
1519
}

src/lib/ui/TextField/TextField.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ export const TextField = forwardRef<
105105
<div className='seam-adornment seam-end'>
106106
{clearable && (
107107
<button
108+
type='button'
108109
className={classNames({
109110
'seam-hidden': valueIsEmpty,
110111
})}

src/lib/ui/Tooltip/Tooltip.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ export function Tooltip({ children }: PropsWithChildren): JSX.Element {
4040
return (
4141
<div className='seam-tooltip'>
4242
<div className='seam-tooltip-trigger-wrap'>
43-
<button onClick={handleToggle} className='seam-tooltip-button'>
43+
<button
44+
type='button'
45+
onClick={handleToggle}
46+
className='seam-tooltip-button'
47+
>
4448
<div className='seam-tooltip-button-icon seam-tooltip-button-icon-default'>
4549
<InfoIcon />
4650
</div>

src/lib/ui/device/EditableDeviceName.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ function IconButton(
171171
return (
172172
<button
173173
{...props}
174+
type='button'
174175
className={classNames(
175176
'seam-editable-device-name-icon-button',
176177
props.className

src/lib/ui/layout/AccordionRow.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ export function AccordionRow({
1919

2020
return (
2121
<div className='seam-accordion-row' aria-expanded={isExpanded}>
22-
<button className='seam-accordion-row-trigger' onClick={toggle}>
22+
<button
23+
type='button'
24+
className='seam-accordion-row-trigger'
25+
onClick={toggle}
26+
>
2327
<div className='seam-row-inner-wrap'>
2428
<p className='seam-row-label'>{label}</p>
2529
<div className='seam-row-trigger-left-content'>{leftContent}</div>

src/lib/ui/thermostat/ClimateModeMenu.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export function ClimateModeMenu({
3535
<Menu
3636
renderButton={({ onOpen }) => (
3737
<button
38+
type='button'
3839
style={style}
3940
onClick={onOpen}
4041
className={classNames(

src/lib/ui/thermostat/FanModeMenu.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export function FanModeMenu({
2626
<Menu
2727
renderButton={({ onOpen }) => (
2828
<button
29+
type='button'
2930
onClick={onOpen}
3031
className={classNames(
3132
'seam-fan-mode-menu-button',

src/lib/ui/thermostat/TemperatureControl.tsx

+10-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@ export function TemperatureControl({
3030

3131
return (
3232
<div className='seam-temperature-control'>
33-
<button className='seam-temperature-stepper-button' onClick={decrement}>
33+
<button
34+
type='button'
35+
className='seam-temperature-stepper-button'
36+
onClick={decrement}
37+
>
3438
<TemperatureSubtractIcon />
3539
</button>
3640
<RangeSlider
@@ -43,7 +47,11 @@ export function TemperatureControl({
4347
}}
4448
unit={unit}
4549
/>
46-
<button className='seam-temperature-stepper-button' onClick={increment}>
50+
<button
51+
type='button'
52+
className='seam-temperature-stepper-button'
53+
onClick={increment}
54+
>
4755
<TemperatureAddIcon />
4856
</button>
4957
</div>

src/lib/ui/thermostat/ThermostatCard.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ function Content(props: ThermostatCardProps): JSX.Element | null {
6565
onEdit={props.onEditName}
6666
/>
6767
<button
68+
type='button'
6869
onClick={toggleTemperatureUnit}
6970
className='seam-thermostat-temperature-toggle'
7071
>

0 commit comments

Comments
 (0)