Skip to content

Commit 7e8dfe0

Browse files
fix datepicker column in table
1 parent 0b5e457 commit 7e8dfe0

File tree

1 file changed

+17
-3
lines changed
  • client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps

1 file changed

+17
-3
lines changed

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

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { isNumber } from "lodash";
1212
import dayjs from "dayjs";
1313
import utc from "dayjs/plugin/utc";
1414
import { CalendarCompIconSmall, PrevIcon, SuperPrevIcon } from "lowcoder-design";
15-
import { useState } from "react";
15+
import { useEffect, useRef, useState } from "react";
1616
import styled from "styled-components";
1717
import { DateParser, DATE_FORMAT } from "util/dateTimeUtils";
1818

@@ -149,20 +149,34 @@ type DateEditProps = {
149149
};
150150

151151
export const DateEdit = (props: DateEditProps) => {
152+
const pickerRef = useRef<any>();
152153
const [panelOpen, setPanelOpen] = useState(true);
153154
let value = dayjs(props.value, DateParser);
154155
if (!value.isValid()) {
155156
value = dayjs(0, DateParser);
156157
}
158+
159+
const [tempValue, setTempValue] = useState<dayjs.Dayjs | null>(value);
160+
161+
useEffect(() => {
162+
const value = props.value ? dayjs(props.value, DateParser) : null;
163+
setTempValue(value);
164+
}, [props.value])
165+
157166
return (
158167
<Wrapper
159168
onKeyDown={(e) => {
160169
if (e.key === "Enter" && !panelOpen) {
161170
props.onChangeEnd();
162171
}
163172
}}
173+
onMouseDown={(e) => {
174+
e.stopPropagation();
175+
e.preventDefault();
176+
}}
164177
>
165178
<DatePickerStyled
179+
ref={pickerRef}
166180
$open={panelOpen}
167181
suffixIcon={<CalendarCompIconSmall />}
168182
prevIcon={<PrevIcon />}
@@ -172,7 +186,7 @@ export const DateEdit = (props: DateEditProps) => {
172186
allowClear={false}
173187
variant="borderless"
174188
autoFocus
175-
defaultValue={value}
189+
value={tempValue}
176190
showTime={props.showTime}
177191
showNow={true}
178192
defaultOpen={true}
@@ -184,7 +198,7 @@ export const DateEdit = (props: DateEditProps) => {
184198
}}
185199
onOpenChange={(open) => setPanelOpen(open)}
186200
onChange={(value, dateString) => props.onChange(dateString as string)}
187-
onBlur={props.onChangeEnd}
201+
onBlur={() => props.onChangeEnd()}
188202
/>
189203
</Wrapper>
190204
);

0 commit comments

Comments
 (0)