Optimized resource filtering

This commit is contained in:
2023-06-10 21:55:55 +02:00
parent 30f0417378
commit 9edaa2ff27

View File

@ -50,28 +50,30 @@ export default function NodePage() {
const node = useNode(nodeName); const node = useNode(nodeName);
const [searchFilter, setSearchFilter] = useState(""); const [searchFilter, setSearchFilter] = useState("");
const filter = searchFilter.toLocaleLowerCase();
const filterResources = (resource) => {
return (
resource.name.toLowerCase().includes(filter) ||
resource.vmid.toString().includes(filter)
);
};
const sortedLXCs = useMemo(() => { const sortedLXCs = useMemo(() => {
if (!node.lxc.isSuccess) return []; if (!node.lxc.isSuccess) return [];
const filter = searchFilter.toLocaleLowerCase(); let data = node.lxc.data;
return node.lxc.data if (searchFilter.length > 0) {
.filter( data = data.filter(filterResources);
(lxc) => }
lxc.name.toLowerCase().includes(filter) || return data.sort((a, b) => a.vmid - b.vmid);
lxc.vmid.toString().includes(filter)
)
.sort((a, b) => a.vmid - b.vmid);
}, [node.lxc.data, searchFilter]); }, [node.lxc.data, searchFilter]);
const sortedVMs = useMemo(() => { const sortedVMs = useMemo(() => {
if (!node.qemu.isSuccess) return []; if (!node.qemu.isSuccess) return [];
const filter = searchFilter.toLocaleLowerCase(); let data = node.qemu.data;
return node.qemu.data if (searchFilter.length > 0) {
.filter( data = data.filter(filterResources);
(qemu) => }
qemu.name.toLowerCase().includes(filter) || return data.sort((a, b) => a.vmid - b.vmid);
qemu.vmid.toString().includes(filter)
)
.sort((a, b) => a.vmid - b.vmid);
}, [node.qemu.data, searchFilter]); }, [node.qemu.data, searchFilter]);
return ( return (