diff --git a/client/packages/lowcoder/src/comps/comps/tableComp/column/simpleColumnTypeComps.tsx b/client/packages/lowcoder/src/comps/comps/tableComp/column/simpleColumnTypeComps.tsx index 8839c3202..8940fc822 100644 --- a/client/packages/lowcoder/src/comps/comps/tableComp/column/simpleColumnTypeComps.tsx +++ b/client/packages/lowcoder/src/comps/comps/tableComp/column/simpleColumnTypeComps.tsx @@ -7,6 +7,8 @@ import { trans } from "i18n"; import { useStyle } from "comps/controls/styleControl"; import { ButtonStyle } from "comps/controls/styleControlConstants"; import { Button100 } from "comps/comps/buttonComp/buttonCompConstants"; +import { IconControl } from "comps/controls/iconControl"; +import { hasIcon } from "comps/utils"; export const ColumnValueTooltip = trans("table.columnValueTooltip"); @@ -20,7 +22,7 @@ export const ButtonTypeOptions = [ value: "default", }, { - label: trans("text"), + label: trans("table.text"), value: "text", }, ] as const; @@ -32,12 +34,19 @@ export const ButtonComp = (function () { onClick: ActionSelectorControlInContext, loading: BoolCodeControl, disabled: BoolCodeControl, + prefixIcon: IconControl, + suffixIcon: IconControl, }; return new ColumnTypeCompBuilder( childrenMap, (props) => { const ButtonStyled = () => { const style = useStyle(ButtonStyle); + const hasText = !!props.text; + const hasPrefixIcon = hasIcon(props.prefixIcon); + const hasSuffixIcon = hasIcon(props.suffixIcon); + const iconOnly = !hasText && (hasPrefixIcon || hasSuffixIcon); + return ( - {/* prevent the button from disappearing */} - {!props.text ? " " : props.text} + {hasText ? props.text : (iconOnly ? null : " ")} + {hasSuffixIcon && !props.loading && {props.suffixIcon}} ); }; @@ -62,6 +77,12 @@ export const ButtonComp = (function () { label: trans("table.columnValue"), tooltip: ColumnValueTooltip, })} + {children.prefixIcon.propertyView({ + label: trans("button.prefixIcon"), + })} + {children.suffixIcon.propertyView({ + label: trans("button.suffixIcon"), + })} {children.buttonType.propertyView({ label: trans("table.type"), radioButton: true,