diff --git a/src/pages/RepositoriesPage.jsx b/src/pages/RepositoriesPage.jsx
index f5884f4..527484d 100644
--- a/src/pages/RepositoriesPage.jsx
+++ b/src/pages/RepositoriesPage.jsx
@@ -22,6 +22,7 @@ export default function RepositoriesPage() {
const [openInfo, setOpenInfo] = useState(false)
const infoRef = useRef(null)
+
useEffect(() => {
function handleClickOutside(event) {
if (
@@ -31,11 +32,22 @@ export default function RepositoriesPage() {
setOpenInfo(false)
}
}
+
+ function handleEscape(event) {
+ if (event.key === 'Escape' && openInfo) {
+ setOpenInfo(false);
+ document.getElementById('info-button')?.focus();
+ }
+ }
+
document.addEventListener('mousedown', handleClickOutside)
+ document.addEventListener('keydown', handleEscape)
+
return () => {
document.removeEventListener('mousedown', handleClickOutside)
+ document.removeEventListener('keydown', handleEscape)
}
- }, [])
+ }, [openInfo])
const navigate = useNavigate()
const allRepos = model?.totalRepos ?? []
@@ -54,7 +66,7 @@ export default function RepositoriesPage() {
const { sorted, sortConfig, onSort } = useSortedData(filtered, 'healthScore', 'desc')
const visible = sorted.slice(0, shown)
- if(loading) return
+ if (loading) return
if (!model) return null
const TABLE_COLS = [
@@ -82,8 +94,21 @@ export default function RepositoriesPage() {
Repository Explorer