mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-05 05:42:39 +02:00
Merge pull request #1322 from guangyang1206/perf/blog-search-derive-results-usememo
Some checks are pending
Build and Push Docker Images / tag_release (push) Waiting to run
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Blocked by required conditions
Some checks are pending
Build and Push Docker Images / tag_release (push) Waiting to run
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Blocked by required conditions
perf(blog): derive search results with useMemo instead of useState+us…
This commit is contained in:
commit
afb4b09cde
1 changed files with 3 additions and 7 deletions
|
|
@ -3,7 +3,7 @@
|
||||||
import { format } from "date-fns";
|
import { format } from "date-fns";
|
||||||
import FuzzySearch from "fuzzy-search";
|
import FuzzySearch from "fuzzy-search";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { useEffect, useMemo, useState } from "react";
|
import { useMemo, useState } from "react";
|
||||||
import { Container } from "@/components/container";
|
import { Container } from "@/components/container";
|
||||||
import type { BlogEntry } from "./page";
|
import type { BlogEntry } from "./page";
|
||||||
|
|
||||||
|
|
@ -127,17 +127,13 @@ function MagazineSearchGrid({
|
||||||
[allBlogs]
|
[allBlogs]
|
||||||
);
|
);
|
||||||
|
|
||||||
const [results, setResults] = useState(allBlogs);
|
|
||||||
useEffect(() => {
|
|
||||||
setResults(searcher.search(search));
|
|
||||||
}, [search, searcher]);
|
|
||||||
|
|
||||||
const gridItems = useMemo(() => {
|
const gridItems = useMemo(() => {
|
||||||
|
const results = search.trim() ? searcher.search(search) : allBlogs;
|
||||||
if (search.trim()) {
|
if (search.trim()) {
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
return results.filter((b) => b.slug !== featuredSlug);
|
return results.filter((b) => b.slug !== featuredSlug);
|
||||||
}, [results, search, featuredSlug]);
|
}, [search, searcher, allBlogs, featuredSlug]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section aria-labelledby="archive-heading">
|
<section aria-labelledby="archive-heading">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue