fix: picker format mismatch in filter form field (#6234)

* fix: picker format mismatch in filter form field

* fix: bug
This commit is contained in:
Katherine 2025-02-19 09:47:05 +08:00 committed by GitHub
parent 211e688547
commit d62911b646
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 17 additions and 10 deletions

View File

@ -2,9 +2,7 @@
"version": "1.5.10",
"npmClient": "yarn",
"useWorkspaces": true,
"npmClientArgs": [
"--ignore-engines"
],
"npmClientArgs": ["--ignore-engines"],
"command": {
"version": {
"forcePublish": true,

View File

@ -67,8 +67,8 @@ const IsSubPageClosedByPageMenuContext = React.createContext<{
reset: () => void;
}>({
isSubPageClosedByPageMenu: () => false,
setFieldSchema: () => { },
reset: () => { },
setFieldSchema: () => {},
reset: () => {},
});
IsSubPageClosedByPageMenuContext.displayName = 'IsSubPageClosedByPageMenuContext';
@ -92,7 +92,10 @@ export const IsSubPageClosedByPageMenuProvider: FC = ({ children }) => {
prevParamsRef.current = {};
}, []);
const value = useMemo(() => ({ isSubPageClosedByPageMenu, setFieldSchema, reset }), [isSubPageClosedByPageMenu, reset]);
const value = useMemo(
() => ({ isSubPageClosedByPageMenu, setFieldSchema, reset }),
[isSubPageClosedByPageMenu, reset],
);
return (
<IsSubPageClosedByPageMenuContext.Provider value={value}>{children}</IsSubPageClosedByPageMenuContext.Provider>

View File

@ -269,7 +269,7 @@ DatePicker.FilterWithPicker = function FilterWithPicker(props: any) {
const value = Array.isArray(props.value) ? props.value[0] : props.value;
const compile = useCompile();
const fieldSchema = useFieldSchema();
const targetPicker = value ? inferPickerType(value) : picker;
const targetPicker = value ? inferPickerType(value, picker) : picker;
const targetDateFormat = getPickerFormat(targetPicker) || format;
const newProps = {
utc,
@ -288,6 +288,12 @@ DatePicker.FilterWithPicker = function FilterWithPicker(props: any) {
};
const field: any = useField();
const [stateProps, setStateProps] = useState(newProps);
useEffect(() => {
newProps.picker = targetPicker;
const dateTimeFormat = getDateTimeFormat(targetPicker, format, showTime, timeFormat);
newProps.format = dateTimeFormat;
setStateProps(newProps);
}, [targetPicker]);
return (
<Space.Compact style={{ width: '100%' }}>
<Select
@ -296,7 +302,7 @@ DatePicker.FilterWithPicker = function FilterWithPicker(props: any) {
data-testid="select-picker"
style={{ width: '100px' }}
popupMatchSelectWidth={false}
defaultValue={targetPicker}
value={targetPicker}
options={compile([
{
label: '{{t("Date")}}',

View File

@ -271,7 +271,7 @@ function withParams(value: any[], params: { fieldOperator?: string; isParsingVar
return value;
}
export function inferPickerType(dateString: string): 'year' | 'month' | 'quarter' | 'date' {
export function inferPickerType(dateString: string, picker): 'year' | 'month' | 'quarter' | 'date' {
if (/^\d{4}$/.test(dateString)) {
return 'year';
} else if (/^\d{4}-\d{2}$/.test(dateString)) {
@ -281,6 +281,6 @@ export function inferPickerType(dateString: string): 'year' | 'month' | 'quarter
} else if (/^\d{4}-\d{2}-\d{2}$/.test(dateString)) {
return 'date';
} else {
return 'date';
return picker;
}
}