mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-05-05 13:39:24 +08:00
fix: picker format mismatch in filter form field (#6234)
* fix: picker format mismatch in filter form field * fix: bug
This commit is contained in:
parent
211e688547
commit
d62911b646
@ -2,9 +2,7 @@
|
||||
"version": "1.5.10",
|
||||
"npmClient": "yarn",
|
||||
"useWorkspaces": true,
|
||||
"npmClientArgs": [
|
||||
"--ignore-engines"
|
||||
],
|
||||
"npmClientArgs": ["--ignore-engines"],
|
||||
"command": {
|
||||
"version": {
|
||||
"forcePublish": true,
|
||||
|
@ -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>
|
||||
|
@ -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")}}',
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user