File size: 913 Bytes
bc20498 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import { isBrowser } from "./index.js";
/**
* Handles `initialFocus` prop behavior for the
* Calendar & RangeCalendar components.
*/
export function handleCalendarInitialFocus(calendar) {
if (!isBrowser)
return;
const selectedDay = calendar.querySelector("[data-selected]");
if (selectedDay)
return focusWithoutScroll(selectedDay);
const today = calendar.querySelector("[data-today]");
if (today)
return focusWithoutScroll(today);
const firstDay = calendar.querySelector("[data-calendar-date]");
if (firstDay)
return focusWithoutScroll(firstDay);
}
export function focusWithoutScroll(element) {
const scrollPosition = {
x: window.pageXOffset || document.documentElement.scrollLeft,
y: window.pageYOffset || document.documentElement.scrollTop,
};
element.focus();
window.scrollTo(scrollPosition.x, scrollPosition.y);
}
|