Skip to content

Commit 351dee0

Browse files
Table: set switch column editable on double click
1 parent e98b82d commit 351dee0

File tree

4 files changed

+19
-11
lines changed

4 files changed

+19
-11
lines changed

client/packages/lowcoder/src/components/table/EditableCell.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,14 @@ export function EditableCell<T extends JSONValue>(props: EditableCellProps<T>) {
8484
useEffect(() => {
8585
setTmpValue(value);
8686
}, [value]);
87+
8788
const onChange = useCallback(
8889
(value: T) => {
8990
setTmpValue(value);
9091
},
9192
[setTmpValue]
9293
);
94+
9395
const onChangeEnd = useCallback(() => {
9496
setIsEditing(false);
9597
dispatch(
@@ -127,11 +129,18 @@ export function EditableCell<T extends JSONValue>(props: EditableCellProps<T>) {
127129
textOverflow={props.textOverflow}
128130
>
129131
{status === "toSave" && !isEditing && <EditableChip />}
132+
{normalView}
133+
{/* overlay on normal view to handle double click for editing */}
130134
<div
131-
style={{minHeight: '24px'}}
135+
style={{
136+
position: 'absolute',
137+
top: 0,
138+
left: 0,
139+
width: '100%',
140+
height: '100%',
141+
}}
132142
onDoubleClick={enterEditFn}
133143
>
134-
{normalView}
135144
</div>
136145
</ColumnTypeView>
137146
);

client/packages/lowcoder/src/components/table/columnTypeView.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import styled from "styled-components";
44
const ColumnTypeViewWrapper = styled.div<{
55
$textOverflow?: boolean
66
}>`
7+
position: relative;
78
${props => !props.$textOverflow && `
89
div {
910
overflow: hidden;

client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnSwitchComp.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export const SwitchComp = (function () {
7878
return (
7979
<Switch
8080
checked={value}
81-
disabled={props.disabled}
81+
disabled={props.disabled || true}
8282
ref={props.viewRef}
8383
onChange={(checked) => {
8484
props.value.onChange(checked);
@@ -96,20 +96,18 @@ export const SwitchComp = (function () {
9696
.setEditViewFn((props) => {
9797
return (
9898
<Wrapper
99-
onBlur={(e) => {
100-
if (!e.currentTarget?.contains(e.relatedTarget)) {
101-
props.onChangeEnd();
102-
}
99+
onBlur={() => {
100+
props.onChangeEnd()
103101
}}
104102
>
105103
<Switch
104+
autoFocus
106105
defaultChecked={props.value}
107106
disabled={false}
108-
onChange={(checked) => {
107+
onChange={(checked, e) => {
109108
props.onChange(checked);
110109
}}
111110
/>
112-
113111
</Wrapper>
114112
);
115113
})

client/packages/lowcoder/vite.config.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ export const viteConfig: UserConfig = {
9292
},
9393
},
9494
optimizeDeps: {
95-
entries: ['./src/**/*.{js,jsx,ts,tsx}']
96-
// include: ['antd/es/*'],
95+
entries: ['./src/**/*.{js,jsx,ts,tsx}'],
96+
include: ['antd'],
9797
// include: ['antd/**/*'],
9898
// force: true,
9999
},

0 commit comments

Comments
 (0)