Skip to content

Commit 8ba3751

Browse files
committed
Add support for small screens in the date range input
1 parent 3bb0a8f commit 8ba3751

File tree

2 files changed

+76
-22
lines changed

2 files changed

+76
-22
lines changed

community-dashboard/app/components/DateRangeInput/index.tsx

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ function DateRangeInput<N extends NameType>(props: Props<N>) {
131131
endDate: undefined,
132132
});
133133
const [calendarMonthSelectionPopupClassName] = React.useState(randomString(16));
134+
const [rangeInputClassName] = React.useState(randomString(16));
134135
const createdContainerRef = React.useRef<HTMLDivElement>(null);
135136
const popupRef = React.useRef<HTMLDivElement>(null);
136137

@@ -167,6 +168,15 @@ function DateRangeInput<N extends NameType>(props: Props<N>) {
167168
[hideCalendar, calendarMonthSelectionPopupClassName],
168169
);
169170

171+
React.useEffect(() => {
172+
if (showCalendar && window.innerWidth <= 528) {
173+
const el = document.getElementsByClassName(
174+
rangeInputClassName,
175+
)?.[0];
176+
el?.scrollIntoView(true);
177+
}
178+
}, [showCalendar, rangeInputClassName]);
179+
170180
useBlurEffect(
171181
showCalendar,
172182
handlePopupBlur,
@@ -311,7 +321,7 @@ function DateRangeInput<N extends NameType>(props: Props<N>) {
311321
</>
312322
)}
313323
actionsContainerClassName={actionsContainerClassName}
314-
className={className}
324+
className={_cs(rangeInputClassName, className)}
315325
disabled={disabled}
316326
error={error}
317327
errorContainerClassName={errorContainerClassName}
@@ -395,23 +405,24 @@ function DateRangeInput<N extends NameType>(props: Props<N>) {
395405
</RawButton>
396406
))}
397407
</div>
398-
399-
<Calendar
400-
onDateClick={handleCalendarDateClick}
401-
className={styles.calendar}
402-
monthSelectionPopupClassName={calendarMonthSelectionPopupClassName}
403-
dateRenderer={DateRenderer}
404-
rendererParams={dateRendererParams}
405-
initialDate={firstInitialDate}
406-
/>
407-
<Calendar
408-
onDateClick={handleCalendarDateClick}
409-
className={styles.calendar}
410-
monthSelectionPopupClassName={calendarMonthSelectionPopupClassName}
411-
dateRenderer={DateRenderer}
412-
rendererParams={dateRendererParams}
413-
initialDate={secondInitialDate}
414-
/>
408+
<div className={styles.calendars}>
409+
<Calendar
410+
onDateClick={handleCalendarDateClick}
411+
className={styles.calendar}
412+
monthSelectionPopupClassName={calendarMonthSelectionPopupClassName}
413+
dateRenderer={DateRenderer}
414+
rendererParams={dateRendererParams}
415+
initialDate={firstInitialDate}
416+
/>
417+
<Calendar
418+
onDateClick={handleCalendarDateClick}
419+
className={styles.calendar}
420+
monthSelectionPopupClassName={calendarMonthSelectionPopupClassName}
421+
dateRenderer={DateRenderer}
422+
rendererParams={dateRendererParams}
423+
initialDate={secondInitialDate}
424+
/>
425+
</div>
415426
</Popup>
416427
)}
417428
</>

community-dashboard/app/components/DateRangeInput/styles.css

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,14 @@
4848
max-width: unset!important;
4949
max-height: unset!important;
5050

51-
.calendar {
52-
--padding: var(--spacing-medium);
53-
width: calc(var(--width-calendar-date) * 7 + 2 * var(--padding));
54-
height: 100%;
51+
.calendars {
52+
display: flex;
53+
54+
.calendar {
55+
--padding: var(--spacing-medium);
56+
width: calc(var(--width-calendar-date) * 7 + 2 * var(--padding));
57+
height: 100%;
58+
}
5559
}
5660

5761
.predefined-options {
@@ -71,6 +75,45 @@
7175
}
7276
}
7377
}
78+
79+
@media screen and (max-width: 50rem) {
80+
height: auto;
81+
82+
.popup-content {
83+
flex-wrap: wrap;
84+
85+
.calendars {
86+
order: 1;
87+
88+
.calendar {
89+
flex-grow: 1;
90+
width: auto;
91+
height: unset;
92+
}
93+
}
94+
95+
.predefined-options {
96+
flex-direction: row;
97+
flex-wrap: wrap;
98+
order: 2;
99+
text-align: initial;
100+
101+
.option {
102+
justify-content: unset;
103+
width: auto;
104+
}
105+
}
106+
107+
}
108+
}
109+
110+
@media screen and (max-width: 33rem) {
111+
.popup-content {
112+
.calendars {
113+
flex-wrap: wrap;
114+
}
115+
}
116+
}
74117
}
75118

76119
.calendar-date {

0 commit comments

Comments
 (0)