Files
frontend-app-authoring/src/hooks.js
Rômulo Penido 2adff6e51d feat: add content search modal [FC-0040] (#928)
* feat: Prototype search UI using Instantsearch + Meilisearch
---------

Co-authored-by: Braden MacDonald <braden@opencraft.com>
2024-04-08 21:39:15 +05:30

34 lines
796 B
JavaScript

import { useEffect } from 'react';
import { history } from '@edx/frontend-platform';
export const useScrollToHashElement = ({ isLoading }) => {
useEffect(() => {
const currentHash = window.location.hash;
if (currentHash) {
const element = document.querySelector(currentHash);
if (element) {
element.scrollIntoView();
history.replace({ hash: '' });
}
}
}, [isLoading]);
};
export const useEscapeClick = ({ onEscape, dependency }) => {
useEffect(() => {
const handleEscapeClick = (event) => {
if (event.key === 'Escape') {
onEscape();
}
};
window.addEventListener('keydown', handleEscapeClick);
return () => {
window.removeEventListener('keydown', handleEscapeClick);
};
}, [dependency]);
};