Skip to content

Commit

Permalink
refactor(button): fix InputDropdown Bug
Browse files Browse the repository at this point in the history
  • Loading branch information
masoudmanson committed Apr 24, 2024
1 parent 106381e commit 982d85b
Show file tree
Hide file tree
Showing 14 changed files with 42 additions and 35 deletions.
4 changes: 2 additions & 2 deletions packages/components/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ All design tokens have been updated to the latest values based on the Figma Refa
| --sds-border-base-table | $sds-border-base-table | `1px solid #cccccc` |
| --sds-border-base-disabled | $sds-border-base-disabled | `1px solid #cccccc` |
| --sds-border-base-default | $sds-border-base-default | `1px solid #999999` |
| --sds-border-base-black | $sds-border-base-black | `2px dashed #000000` |
| --sds-border-base-hover | $sds-border-base-hover | `2px dashed #000000` |
| --sds-border-base-black | $sds-border-base-black | `1px dashed #000000` |
| --sds-border-base-hover | $sds-border-base-hover | `1px dashed #000000` |
| --sds-border-base-dashed | $sds-border-base-dashed | `2px dashed #999999` |
| --sds-border-link-dashed | $sds-border-link-dashed | `1px dashed` |
| --sds-border-link-solid | $sds-border-link-solid | `1px solid` |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ exports[`<Autocomplete /> Default story renders snapshot 1`] = `
</span>
<button
aria-label="search-button"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1rotgi7-MuiButtonBase-root-MuiIconButton-root"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-6mi92x-MuiButtonBase-root-MuiIconButton-root"
icon="Search"
tabindex="0"
type="button"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ exports[`<Banner /> Default story renders snapshot 1`] = `
</div>
<button
aria-label="Close"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1bufa5l-MuiButtonBase-root-MuiIconButton-root"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-91inc1-MuiButtonBase-root-MuiIconButton-root"
icon="XMark"
tabindex="0"
type="button"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import { SDSAppTheme } from "src/core/styles";
import RawButton from "src/core/Button";
// import { BUTTON_TEXT, DEFAULT_PLACEMENT_STYLES } from "../constants";
// import Icon from "src/core/Icon";

// Icon Live Preview Demo

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,11 @@ import {
BUTTON_ICON_SDS_SIZES,
BUTTON_ICON_SDS_TYPES,
} from "../constants";
import { SDSSizes, SDSTypes } from "src/core/ButtonIcon/__storybook__/types";
import {
SDSSizes,
SDSStyles,
SDSTypes,
} from "src/core/ButtonIcon/__storybook__/types";
import { IconNameToSizes } from "src/core/Icon";

export const ScreenshotTestDemo = (props: Args): JSX.Element => {
Expand Down Expand Up @@ -205,7 +209,7 @@ export const ScreenshotTestDemo = (props: Args): JSX.Element => {
<RawButton
{...props}
data-testid="button"
sdsStyle={sdsStyle}
sdsStyle={sdsStyle as SDSStyles[number]}
sdsType={type as SDSTypes[number]}
startIcon={icon}
disabled={disabled}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

exports[`<button /> Default story renders snapshot 1`] = `
<button
class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium css-s6dhdg-MuiButtonBase-root-MuiButton-root"
class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium css-9ap979-MuiButtonBase-root-MuiButton-root"
tabindex="0"
text="Label"
type="button"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ export type SDSTypes = NonNullable<
| ButtonIconExtraProps<"large">["sdsType"]
>[];

export type SDSStyles = NonNullable<"icon">[];

export type SDSSizes = (keyof ButtonIconSizeToTypes)[];
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
exports[`<ButtonIcon /> Default story renders snapshot 1`] = `
<button
aria-label="info"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-5247qr-MuiButtonBase-root-MuiIconButton-root"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1tnzpjc-MuiButtonBase-root-MuiIconButton-root"
icon="InfoCircle"
tabindex="0"
type="button"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ exports[`<Dialog /> Dialog all sizes match the snapshots 1`] = `
>
<button
aria-label="Close"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-2khs0g-MuiButtonBase-root-MuiIconButton-root"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-9w99ft-MuiButtonBase-root-MuiIconButton-root"
icon="XMark"
tabindex="0"
type="button"
Expand Down Expand Up @@ -109,7 +109,7 @@ exports[`<Dialog /> Dialog all sizes match the snapshots 4`] = `
>
<button
aria-label="Close"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-vbrjsf-MuiButtonBase-root-MuiIconButton-root"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-japd91-MuiButtonBase-root-MuiIconButton-root"
icon="XMark"
tabindex="0"
type="button"
Expand Down Expand Up @@ -196,7 +196,7 @@ exports[`<Dialog /> Dialog all sizes match the snapshots 7`] = `
>
<button
aria-label="Close"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1yww721-MuiButtonBase-root-MuiIconButton-root"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-4di8oy-MuiButtonBase-root-MuiIconButton-root"
icon="XMark"
tabindex="0"
type="button"
Expand Down Expand Up @@ -283,7 +283,7 @@ exports[`<Dialog /> Dialog all sizes match the snapshots 10`] = `
>
<button
aria-label="Close"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1yww721-MuiButtonBase-root-MuiIconButton-root"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-4di8oy-MuiButtonBase-root-MuiIconButton-root"
icon="XMark"
tabindex="0"
type="button"
Expand Down
4 changes: 2 additions & 2 deletions packages/components/src/core/Dropdown/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ const Dropdown = <
{buttonPosition === "left" ? (
<div>
<StyledButton
onClick={handleClose}
onClick={(event) => handleClose(event, "selectOption")}
sdsStyle="square"
sdsType="primary"
>
Expand All @@ -183,7 +183,7 @@ const Dropdown = <
Cancel
</StyledButton>
<StyledButton
onClick={handleClose}
onClick={(event) => handleClose(event, "selectOption")}
sdsStyle="square"
sdsType="primary"
>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ export const LivePreviewDemo = <
aria-describedby="live2"
aria-label="Open menu"
onClick={handleClick2}
on={false}
sdsSize="large"
sdsType="secondary"
icon="InfoSpeechBubble"
Expand Down
36 changes: 20 additions & 16 deletions packages/components/src/core/InputDropdown/style.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,21 @@ import {
getSpaces,
} from "src/core/styles";

const doNotForwardProps = [
"intent",
"state",
"sdsStage",
"sdsType",
"isMinimal",
"shouldTruncateMinimalDetails",
"shouldPutAColonAfterLabel",
"value",
"sdsStyle",
];

export interface InputDropdownProps
extends CommonThemeProps,
Omit<ButtonProps, "value" | "sdsType" | "sdsStyle"> {
Omit<ButtonProps, (typeof doNotForwardProps)[number]> {
disabled?: boolean;
intent?: "default" | "error" | "warning";
label: ReactNode;
Expand All @@ -33,23 +45,12 @@ export interface InputDropdownProps
value?: ReactNode;
shouldTruncateMinimalDetails?: boolean;
shouldPutAColonAfterLabel?: boolean;
style?: React.CSSProperties;
}

const labelFontBodyS = fontBody("s", "regular");
const labelFontBodyXs = fontBody("xs", "regular");

const doNotForwardProps = [
"intent",
"state",
"sdsStage",
"sdsType",
"isMinimal",
"shouldTruncateMinimalDetails",
"shouldPutAColonAfterLabel",
"value",
"sdsStyle",
];

const inputDropdownStyles = (props: InputDropdownProps): SerializedStyles => {
const spaces = getSpaces(props);
const borders = getBorders(props);
Expand Down Expand Up @@ -305,9 +306,12 @@ const isDisabled = (props: InputDropdownProps): SerializedStyles => {
`;
};

export const StyledInputDropdown = styled(Button, {
shouldForwardProp: (prop: string) => !doNotForwardProps.includes(prop),
})`
export const StyledInputDropdown = styled(
Button as React.ComponentType<InputDropdownProps>,
{
shouldForwardProp: (prop: string) => !doNotForwardProps.includes(prop),
}
)`
${labelFontBodyXs}
/* (thuang): in Minimal it's a different value */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ exports[`<Pagination /> Default story renders snapshot 1`] = `
>
<button
aria-label="Go to a page"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-142lmkz-MuiButtonBase-root-MuiIconButton-root"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1s1ottn-MuiButtonBase-root-MuiIconButton-root"
icon="DotsHorizontal"
tabindex="0"
type="button"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ exports[`<TagFilter /> Default story renders snapshot 1`] = `
</span>
<button
aria-label="Delete Tag"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium MuiChip-deleteIcon MuiChip-deleteIconMedium MuiChip-deleteIconColorPrimary MuiChip-deleteIconFilledColorPrimary css-4l13pl-MuiButtonBase-root-MuiIconButton-root"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium MuiChip-deleteIcon MuiChip-deleteIconMedium MuiChip-deleteIconColorPrimary MuiChip-deleteIconFilledColorPrimary css-1owsdxw-MuiButtonBase-root-MuiIconButton-root"
icon="XMark"
tabindex="0"
type="button"
Expand Down

0 comments on commit 982d85b

Please sign in to comment.