props.onEvent("click")}
- onDoubleClick={() => props.onEvent("doubleClick")}
+ onClick={ComponentClickHandler({onEvent: props.onEvent})}
>
{item?.user?.name}
{
props.container.showHeader = false;
- // 注入容器参数
props.container.style = Object.assign(props.container.style, {
CONTAINER_BODY_PADDING: props.style.containerBodyPadding,
border: '#00000000',
@@ -233,7 +233,7 @@ export const ContainerBaseComp = (function () {
$cardType={props.cardType}
onMouseEnter={() => props.onEvent('focus')}
onMouseLeave={() => props.onEvent('blur')}
- onClick={() => props.onEvent('click')}
+ onClick={ComponentClickHandler({onEvent: props.onEvent})}
>
!item.hidden).map(item => {
return (
item.onEvent('click')}
+ onClick={ComponentClickHandler({onEvent: props.onEvent})}
disabled={item.disabled}
$style={props.style}
>
diff --git a/client/packages/lowcoder/src/comps/comps/iconComp.tsx b/client/packages/lowcoder/src/comps/comps/iconComp.tsx
index e50bd002ce..12a3da1985 100644
--- a/client/packages/lowcoder/src/comps/comps/iconComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/iconComp.tsx
@@ -33,6 +33,7 @@ import { useContext } from "react";
import { EditorContext } from "comps/editorState";
import { AssetType, IconscoutControl } from "@lowcoder-ee/comps/controls/iconscoutControl";
import { dropdownControl } from "../controls/dropdownControl";
+import { ComponentClickHandler } from "../utils/componentClickHandler";
const Container = styled.div<{
$sourceMode: string;
@@ -135,8 +136,7 @@ const IconView = (props: RecordConstructorToView) => {
$sourceMode={props.sourceMode}
$animationStyle={props.animationStyle}
style={style}
- onClick={() => props.onEvent("click")}
- onDoubleClick={() => props.onEvent("doubleClick")}
+ onClick={ComponentClickHandler({onEvent: props.onEvent})}
>
{ props.sourceMode === 'standard'
? (props.icon || '')
diff --git a/client/packages/lowcoder/src/comps/comps/imageComp.tsx b/client/packages/lowcoder/src/comps/comps/imageComp.tsx
index b0bd4d3dd6..e82d2bab25 100644
--- a/client/packages/lowcoder/src/comps/comps/imageComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/imageComp.tsx
@@ -38,6 +38,7 @@ import { StringControl } from "../controls/codeControl";
import { PositionControl } from "comps/controls/dropdownControl";
import { dropdownControl } from "../controls/dropdownControl";
import { AssetType, IconscoutControl } from "../controls/iconscoutControl";
+import { ComponentClickHandler } from "../utils/componentClickHandler";
const Container = styled.div<{
$style: ImageStyleType | undefined,
@@ -212,8 +213,7 @@ const ContainerImg = (props: RecordConstructorToView) => {
draggable={false}
preview={props.supportPreview ? {src: props.previewSrc || props.src.value } : false}
fallback={DEFAULT_IMG_URL}
- onClick={() => props.onEvent("click")}
- onDoubleClick={() => props.onEvent("doubleClick")}
+ onClick={ComponentClickHandler({onEvent: props.onEvent})}
/>
diff --git a/client/packages/lowcoder/src/comps/comps/meetingComp/controlButton.tsx b/client/packages/lowcoder/src/comps/comps/meetingComp/controlButton.tsx
index 313358815a..90da85e8cb 100644
--- a/client/packages/lowcoder/src/comps/comps/meetingComp/controlButton.tsx
+++ b/client/packages/lowcoder/src/comps/comps/meetingComp/controlButton.tsx
@@ -41,6 +41,7 @@ import { useResizeDetector } from "react-resize-detector";
import { useContext } from "react";
import { Tooltip } from "antd";
import { AssetType, IconscoutControl } from "@lowcoder-ee/comps/controls/iconscoutControl";
+import { ComponentClickHandler } from "@lowcoder-ee/comps/utils/componentClickHandler";
const Container = styled.div<{ $style: any }>`
height: 100%;
@@ -285,7 +286,7 @@ let ButtonTmpComp = (function () {
}
onClick={() =>
isDefault(props.type)
- ? props.onEvent("click")
+ ? ComponentClickHandler({onEvent: props.onEvent})()
: submitForm(editorState, props.form)
}
>
diff --git a/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/ColumnNumberComp.tsx b/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/ColumnNumberComp.tsx
index 78bba93807..af77fa4726 100644
--- a/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/ColumnNumberComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/ColumnNumberComp.tsx
@@ -9,7 +9,8 @@ import { withDefault } from "comps/generators";
import styled from "styled-components";
import { IconControl } from "comps/controls/iconControl";
import { hasIcon } from "comps/utils";
-import { clickEvent, eventHandlerControl } from "comps/controls/eventHandlerControl";
+import { clickEvent, eventHandlerControl, doubleClickEvent } from "comps/controls/eventHandlerControl";
+import { ComponentClickHandler } from "@lowcoder-ee/comps/utils/componentClickHandler";
const InputNumberWrapper = styled.div`
.ant-input-number {
@@ -33,7 +34,7 @@ const NumberViewWrapper = styled.div`
gap: 4px;
`;
-const NumberEventOptions = [clickEvent] as const;
+const NumberEventOptions = [clickEvent, doubleClickEvent] as const;
const childrenMap = {
text: NumberControl,
@@ -79,9 +80,7 @@ const ColumnNumberView = React.memo((props: NumberViewProps) => {
}, [props.value, props.float, props.precision]);
const handleClick = useCallback(() => {
- if (props.onEvent) {
- props.onEvent("click");
- }
+ props.onEvent && ComponentClickHandler({onEvent: props.onEvent})()
}, [props.onEvent]);
return (
diff --git a/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnAvatarsComp.tsx b/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnAvatarsComp.tsx
index a33100154a..a8f864a775 100644
--- a/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnAvatarsComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnAvatarsComp.tsx
@@ -17,6 +17,7 @@ import { optionsControl } from "comps/controls/optionsControl";
import { BoolControl } from "comps/controls/boolControl";
import { dropdownControl } from "comps/controls/dropdownControl";
import { JSONObject } from "util/jsonTypes";
+import { ComponentClickHandler } from "@lowcoder-ee/comps/utils/componentClickHandler";
const MacaroneList = [
'#fde68a',
@@ -116,14 +117,9 @@ const MemoizedAvatar = React.memo(({
}
// Then trigger main component event
- onEvent("click");
+ ComponentClickHandler({onEvent})()
}, [onEvent, onItemEvent]);
- const handleDoubleClick = useCallback(() => {
- if (!mountedRef.current) return;
- onEvent("doubleClick");
- }, [onEvent]);
-
return (