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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy