PromucFlow_constructor/app/client/src/widgets/SelectWidget/component/SelectButton.tsx

68 lines
1.7 KiB
TypeScript
Raw Normal View History

2022-03-17 05:27:39 +00:00
import React, { memo } from "react";
feat: Migrate design system components import to design-system repo - I (#15562) * Icon component deleted and changed the imports in refrence places * design system package version changed * import changes * Delete TextInput.tsx * Change imports * Change single named import * Update package * Update package * Delete ScrollIndicator.tsx * Change imports * Icon import completed * Event type added * Changed Button component imports * import change button * Button onclick type fix * Label with Tooltip import changes * Changed breadcrumbs import * EmojiPicker and Emoji Reaction import changes * AppIcon import change * import bug fix * Menu Item import chnages * Icon selector imports changed * Delete LabelWithTooltip.tsx * Change imports across the app * Update package version * Update version number for design-system * Delete Checkbox.tsx * Remove the exports * Add lock file for ds package update * Change imports * default import -> named * Update release version * Make arg type explicit * Updated design-system to latest release * Missing file mysteriously comes back and is updated accordingly * changes design-system package version * Add types to arguments in the onChange for text input * onBlur type fix * Search component in property pane * WDS button changes reverted * package version bumped * conflict fix * Remove Dropdown, change imports * Category import fix * fix: table icon size import * Bump version of design system package * Yarn lock Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com>
2022-08-22 05:09:39 +00:00
import { Icon, IconSize } from "design-system";
2022-03-17 05:27:39 +00:00
import { Button } from "@blueprintjs/core";
import { Colors } from "constants/Colors";
2022-03-21 07:57:25 +00:00
import { isEmptyOrNill } from "../../../utils/helpers";
2022-03-17 05:27:39 +00:00
import { StyledDiv } from "./index.styled";
2022-03-17 06:19:35 +00:00
export interface SelectButtonProps {
2022-03-17 05:27:39 +00:00
disabled?: boolean;
displayText?: string;
handleCancelClick?: (event: React.MouseEvent<Element, MouseEvent>) => void;
spanRef?: any;
2022-03-17 05:27:39 +00:00
togglePopoverVisibility: () => void;
tooltipText?: string;
2022-03-17 05:27:39 +00:00
value?: string;
hideCancelIcon?: boolean;
2022-03-17 05:27:39 +00:00
}
function SelectButton(props: SelectButtonProps) {
const {
disabled,
displayText,
handleCancelClick,
hideCancelIcon,
spanRef,
2022-03-17 05:27:39 +00:00
togglePopoverVisibility,
tooltipText,
2022-03-17 05:27:39 +00:00
value,
} = props;
2022-03-17 05:27:39 +00:00
return (
<Button
2022-03-21 14:45:17 +00:00
className="select-button"
2022-03-17 06:19:35 +00:00
data-testid="selectbutton.btn.main"
2022-03-17 05:27:39 +00:00
disabled={disabled}
onClick={togglePopoverVisibility}
rightIcon={
<StyledDiv>
{!isEmptyOrNill(value) && !hideCancelIcon ? (
2022-03-17 05:27:39 +00:00
<Icon
className="dropdown-icon cancel-icon"
2022-03-17 06:19:35 +00:00
data-testid="selectbutton.btn.cancel"
disabled={disabled}
2022-03-17 05:27:39 +00:00
fillColor={disabled ? Colors.GREY_7 : Colors.GREY_10}
name="cross"
2022-04-27 11:29:31 +00:00
onClick={handleCancelClick}
2022-03-17 05:27:39 +00:00
size={IconSize.XXS}
/>
) : null}
<Icon
className="dropdown-icon"
disabled={disabled}
2022-03-17 05:27:39 +00:00
fillColor={disabled ? Colors.GREY_7 : Colors.GREY_10}
name="dropdown"
/>
</StyledDiv>
}
>
<span ref={spanRef} title={tooltipText}>
{displayText}
</span>
</Button>
2022-03-17 05:27:39 +00:00
);
}
export default memo(SelectButton);