Skip to content

Commit d2bcf3a

Browse files
authored
Merge pull request #1934 from tekdi/release-1.11.0
Release 1.11.0 to admin prod
2 parents 668fad9 + 2e4df52 commit d2bcf3a

File tree

3 files changed

+84
-36
lines changed

3 files changed

+84
-36
lines changed

apps/admin-app-repo/src/components/DynamicForm/RJSFWidget/CustomDateWidget.tsx

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import React, { useState, useEffect } from 'react';
33
import { TextField } from '@mui/material';
44
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
55
import { LocalizationProvider, DatePicker } from '@mui/x-date-pickers';
6+
import { CalendarToday } from '@mui/icons-material';
67
import dayjs from 'dayjs';
78
import { useTranslation } from 'react-i18next';
89

@@ -48,14 +49,19 @@ const CustomDateWidget = ({
4849
}
4950
};
5051

51-
const errorText = rawErrors?.length > 0 ? rawErrors[0] : '';
52+
// Filter out 'is a required property' messages
53+
const displayErrors = rawErrors?.filter(
54+
(error) => !error.toLowerCase().includes('required')
55+
) || [];
56+
57+
const errorText = displayErrors.length > 0 ? displayErrors[0] : '';
5258

5359
return (
5460
<>
5561
<input
5662
value={value ?? ''}
5763
required={required}
58-
onChange={() => {}}
64+
onChange={() => { /* no-op */ }}
5965
tabIndex={-1}
6066
style={{
6167
height: 1,
@@ -78,25 +84,35 @@ const CustomDateWidget = ({
7884
minDate={minValue ? dayjs(minValue, 'YYYY-MM-DD') : undefined}
7985
maxDate={maxValue ? dayjs(maxValue, 'YYYY-MM-DD') : undefined}
8086
format="DD-MM-YYYY"
87+
openTo="day"
88+
views={['year', 'month', 'day']}
8189
slotProps={{
8290
textField: {
8391
fullWidth: true,
8492
variant: 'outlined',
85-
// error: rawErrors.length > 0,
86-
// helperText: errorText,
93+
error: displayErrors.length > 0,
94+
helperText: errorText,
8795
required,
8896
inputProps: {
8997
readOnly: true,
9098
},
91-
onClick: (event: any) => {
92-
event.preventDefault();
99+
InputProps: {
100+
endAdornment: <CalendarToday />,
93101
},
94-
onKeyDown: (event: any) => {
95-
event.preventDefault();
96-
},
97-
onInput: (event: any) => {
98-
event.preventDefault();
99-
}
102+
},
103+
popper: {
104+
placement: 'bottom-start',
105+
modifiers: [
106+
{
107+
name: 'preventOverflow',
108+
options: {
109+
boundary: 'viewport',
110+
},
111+
},
112+
],
113+
},
114+
actionBar: {
115+
actions: ['clear', 'today', 'cancel', 'accept'],
100116
},
101117
}}
102118
required={required}

libs/shared-lib-v2/src/DynamicForm/components/RJSFWidget/CustomDateWidget.tsx

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import React, { useState, useEffect } from 'react';
33
import { TextField } from '@mui/material';
44
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
55
import { LocalizationProvider, DatePicker } from '@mui/x-date-pickers';
6+
import { CalendarToday } from '@mui/icons-material';
67
import dayjs from 'dayjs';
78
import { useTranslation } from 'libs/shared-lib-v2/src/lib/context/LanguageContext';
89

@@ -48,14 +49,19 @@ const CustomDateWidget = ({
4849
}
4950
};
5051

51-
const errorText = rawErrors?.length > 0 ? rawErrors[0] : '';
52+
// Filter out 'is a required property' messages
53+
const displayErrors = rawErrors?.filter(
54+
(error) => !error.toLowerCase().includes('required')
55+
) || [];
56+
57+
const errorText = displayErrors.length > 0 ? displayErrors[0] : '';
5258

5359
return (
5460
<>
5561
<input
5662
value={value ?? ''}
5763
required={required}
58-
onChange={() => {}}
64+
onChange={() => { /* no-op */ }}
5965
tabIndex={-1}
6066
style={{
6167
height: 1,
@@ -78,25 +84,35 @@ const CustomDateWidget = ({
7884
minDate={minValue ? dayjs(minValue, 'YYYY-MM-DD') : undefined}
7985
maxDate={maxValue ? dayjs(maxValue, 'YYYY-MM-DD') : undefined}
8086
format="DD-MM-YYYY"
87+
openTo="day"
88+
views={['year', 'month', 'day']}
8189
slotProps={{
8290
textField: {
8391
fullWidth: true,
8492
variant: 'outlined',
85-
// error: rawErrors.length > 0,
86-
// helperText: errorText,
93+
error: displayErrors.length > 0,
94+
helperText: errorText,
8795
required,
8896
inputProps: {
8997
readOnly: true,
9098
},
91-
onClick: (event: any) => {
92-
event.preventDefault();
99+
InputProps: {
100+
endAdornment: <CalendarToday />,
93101
},
94-
onKeyDown: (event: any) => {
95-
event.preventDefault();
96-
},
97-
onInput: (event: any) => {
98-
event.preventDefault();
99-
}
102+
},
103+
popper: {
104+
placement: 'bottom-start',
105+
modifiers: [
106+
{
107+
name: 'preventOverflow',
108+
options: {
109+
boundary: 'viewport',
110+
},
111+
},
112+
],
113+
},
114+
actionBar: {
115+
actions: ['clear', 'today', 'cancel', 'accept'],
100116
},
101117
}}
102118
required={required}

mfes/scp-teacher-repo/src/components/DynamicForm/RJSFWidget/CustomDateWidget.tsx

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import React, { useState, useEffect } from 'react';
33
import { TextField } from '@mui/material';
44
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
55
import { LocalizationProvider, DatePicker } from '@mui/x-date-pickers';
6+
import { CalendarToday } from '@mui/icons-material';
67
import dayjs from 'dayjs';
78
import { useTranslation } from 'react-i18next';
89

@@ -48,14 +49,19 @@ const CustomDateWidget = ({
4849
}
4950
};
5051

51-
const errorText = rawErrors?.length > 0 ? rawErrors[0] : '';
52+
// Filter out 'is a required property' messages
53+
const displayErrors = rawErrors?.filter(
54+
(error) => !error.toLowerCase().includes('required')
55+
) || [];
56+
57+
const errorText = displayErrors.length > 0 ? displayErrors[0] : '';
5258

5359
return (
5460
<>
5561
<input
5662
value={value ?? ''}
5763
required={required}
58-
onChange={() => {}}
64+
onChange={() => { /* no-op */ }}
5965
tabIndex={-1}
6066
style={{
6167
height: 1,
@@ -78,25 +84,35 @@ const CustomDateWidget = ({
7884
minDate={minValue ? dayjs(minValue, 'YYYY-MM-DD') : undefined}
7985
maxDate={maxValue ? dayjs(maxValue, 'YYYY-MM-DD') : undefined}
8086
format="DD-MM-YYYY"
87+
openTo="day"
88+
views={['year', 'month', 'day']}
8189
slotProps={{
8290
textField: {
8391
fullWidth: true,
8492
variant: 'outlined',
85-
// error: rawErrors.length > 0,
86-
// helperText: errorText,
93+
error: displayErrors.length > 0,
94+
helperText: errorText,
8795
required,
8896
inputProps: {
8997
readOnly: true,
9098
},
91-
onClick: (event: any) => {
92-
event.preventDefault();
99+
InputProps: {
100+
endAdornment: <CalendarToday />,
93101
},
94-
onKeyDown: (event: any) => {
95-
event.preventDefault();
96-
},
97-
onInput: (event: any) => {
98-
event.preventDefault();
99-
}
102+
},
103+
popper: {
104+
placement: 'bottom-start',
105+
modifiers: [
106+
{
107+
name: 'preventOverflow',
108+
options: {
109+
boundary: 'viewport',
110+
},
111+
},
112+
],
113+
},
114+
actionBar: {
115+
actions: ['clear', 'today', 'cancel', 'accept'],
100116
},
101117
}}
102118
required={required}

0 commit comments

Comments
 (0)