diff --git a/src/app/registers/RegisterBrowser.tsx b/src/app/registers/RegisterBrowser.tsx
index 567119a..a55eda0 100644
--- a/src/app/registers/RegisterBrowser.tsx
+++ b/src/app/registers/RegisterBrowser.tsx
@@ -1,10 +1,12 @@
-'use client';
+"use client";
-import { useEffect, useState } from 'react';
-import { usePathname, useRouter, useSearchParams } from 'next/navigation';
-import { Register, RegisterAccess, Note } from '@/utils/register_parser';
-import { Form, Container, Row, Table, OverlayTrigger, Tooltip } from 'react-bootstrap';
+import { useEffect, useMemo, useState } from "react";
+import { usePathname, useRouter, useSearchParams } from "next/navigation";
+import { Register, RegisterAccess, Note } from "@/utils/register_parser";
+import { Form, Row, Table, OverlayTrigger, Tooltip } from "react-bootstrap";
import RegisterDetail from "@/app/registers/RegisterDetail";
+import ExplorerLayout from "@/components/explorer/ExplorerLayout";
+import FilterSidebar from "@/components/explorer/FilterSidebar";
interface RegisterBrowserProps {
registers: Register[];
@@ -73,7 +75,7 @@ export function renderAccess(access: RegisterAccess, extraNotes: Note[] = []) {
* @returns A React component that allows users to browse and search registers.
*/
export default function RegisterBrowser({ registers }: RegisterBrowserProps) {
- const [searchTerm, setSearchTerm] = useState('');
+ const [searchTerm, setSearchTerm] = useState("");
const searchParams = useSearchParams();
const router = useRouter();
const pathname = usePathname();
@@ -102,30 +104,42 @@ export default function RegisterBrowser({ registers }: RegisterBrowserProps) {
router.replace(url, { scroll: false });
};
- const filteredRegisters = registers.filter(register =>
- register.search.includes(searchTerm.toLowerCase())
- );
-
+ const filteredRegisters = useMemo(() => (
+ registers.filter((register) => register.search.includes(searchTerm.toLowerCase()))
+ ), [registers, searchTerm]);
return (
-