20 lines
492 B
TypeScript
20 lines
492 B
TypeScript
type ScrollOptionsTarget = {
|
|
scrollTo: (options: ScrollToOptions) => void;
|
|
};
|
|
|
|
type FocusTarget = ScrollOptionsTarget & {
|
|
focus: (options?: FocusOptions) => void;
|
|
};
|
|
|
|
const topLeft: ScrollToOptions = { top: 0, left: 0, behavior: "auto" };
|
|
|
|
export const resetApplicationScroll = (
|
|
main: FocusTarget | undefined,
|
|
viewport: ScrollOptionsTarget,
|
|
focusMain = true,
|
|
) => {
|
|
main?.scrollTo(topLeft);
|
|
viewport.scrollTo(topLeft);
|
|
if (focusMain) main?.focus({ preventScroll: true });
|
|
};
|