🩹(react) fix DateRangePicker layout overflow
Resolved a width conflict in the date range picker where the field width conflicted with the component's min-width. This caused content overflow in the field container, resulting in layout issues.
This commit is contained in:
committed by
NathanVss
parent
f685abb36c
commit
9795b7184b
5
.changeset/tidy-beds-attack.md
Normal file
5
.changeset/tidy-beds-attack.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@openfun/cunningham-react": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix DateRangePicker layout overflow
|
||||||
@@ -46,6 +46,7 @@ export type DatePickerAuxProps = PropsWithChildren &
|
|||||||
isFocused: boolean;
|
isFocused: boolean;
|
||||||
labelAsPlaceholder: boolean;
|
labelAsPlaceholder: boolean;
|
||||||
optionalClassName?: string;
|
optionalClassName?: string;
|
||||||
|
isRange?: boolean;
|
||||||
onClear: () => void;
|
onClear: () => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -67,6 +68,7 @@ const DatePickerAux = forwardRef(
|
|||||||
locale,
|
locale,
|
||||||
disabled = false,
|
disabled = false,
|
||||||
optionalClassName,
|
optionalClassName,
|
||||||
|
isRange,
|
||||||
...props
|
...props
|
||||||
}: DatePickerAuxProps,
|
}: DatePickerAuxProps,
|
||||||
ref: Ref<HTMLDivElement>,
|
ref: Ref<HTMLDivElement>,
|
||||||
@@ -82,7 +84,12 @@ const DatePickerAux = forwardRef(
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<I18nProvider locale={locale || currentLocale}>
|
<I18nProvider locale={locale || currentLocale}>
|
||||||
<Field {...props}>
|
<Field
|
||||||
|
{...props}
|
||||||
|
className={classNames({
|
||||||
|
"c__date-picker__range__container": isRange,
|
||||||
|
})}
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
ref={pickerRef}
|
ref={pickerRef}
|
||||||
className={classNames(["c__date-picker", optionalClassName], {
|
className={classNames(["c__date-picker", optionalClassName], {
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ export const DateRangePicker = ({
|
|||||||
pickerState,
|
pickerState,
|
||||||
pickerProps,
|
pickerProps,
|
||||||
optionalClassName: "c__date-picker__range",
|
optionalClassName: "c__date-picker__range",
|
||||||
|
isRange: true,
|
||||||
onClear: () => {
|
onClear: () => {
|
||||||
pickerState.setValue({
|
pickerState.setValue({
|
||||||
start: null as unknown as DateValue,
|
start: null as unknown as DateValue,
|
||||||
|
|||||||
@@ -221,7 +221,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&__range {
|
&__range {
|
||||||
min-width: px-to-rem(350px);
|
$component-min-width: px-to-rem(350px);
|
||||||
|
min-width: $component-min-width;
|
||||||
|
|
||||||
|
&__container {
|
||||||
|
min-width: $component-min-width;
|
||||||
|
}
|
||||||
|
|
||||||
&__separator {
|
&__separator {
|
||||||
background-color: var(--c--theme--colors--greyscale-400);
|
background-color: var(--c--theme--colors--greyscale-400);
|
||||||
|
|||||||
@@ -189,8 +189,16 @@ export const RangeControlled = () => {
|
|||||||
"2023-06-23T13:37:00.000+02:00",
|
"2023-06-23T13:37:00.000+02:00",
|
||||||
]);
|
]);
|
||||||
return (
|
return (
|
||||||
<div>
|
<>
|
||||||
<div className="clr-greyscale-900">Value: {value?.join(" ")}</div>
|
<div className="clr-greyscale-900">Value: {value?.join(" ")}</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: "flex",
|
||||||
|
alignItems: "center",
|
||||||
|
gap: "1rem",
|
||||||
|
marginTop: "1rem",
|
||||||
|
}}
|
||||||
|
>
|
||||||
<DateRangePicker
|
<DateRangePicker
|
||||||
startLabel="Start date"
|
startLabel="Start date"
|
||||||
endLabel="Due date"
|
endLabel="Due date"
|
||||||
@@ -201,5 +209,6 @@ export const RangeControlled = () => {
|
|||||||
/>
|
/>
|
||||||
<Button onClick={() => setValue(null)}>Reset</Button>
|
<Button onClick={() => setValue(null)}>Reset</Button>
|
||||||
</div>
|
</div>
|
||||||
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user