Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
6d8766e
fix skeleton title for index page
reidbarber Nov 19, 2025
0fdcbc5
remove Home link from Overview section
reidbarber Nov 19, 2025
b053f58
convert relative links in markdown from .html links to .md
reidbarber Nov 19, 2025
613c98b
fix card logo centering in Safari
reidbarber Nov 19, 2025
71544c7
add homepage links to mobile header
reidbarber Nov 20, 2025
4b0e2ce
fix blog video props to match originals
reidbarber Nov 20, 2025
83cff30
improve search sections
reidbarber Nov 20, 2025
c76ce6f
refine "All" tag display logic
reidbarber Nov 20, 2025
e0843cf
fix missing 'client side routing guides' and 'framework setup guides'…
reidbarber Nov 21, 2025
49f74b9
don't clear search field before navigation
reidbarber Nov 21, 2025
d400496
Merge branch 'main' into s2-docs-testing-followup-high-priority
LFDanLu Nov 21, 2025
e21dd1a
remove useEffects
reidbarber Nov 22, 2025
8ea47fa
keep 'All' tag after its added
reidbarber Nov 24, 2025
a4c7493
Merge branch 'main' into s2-docs-testing-followup-high-priority
reidbarber Nov 24, 2025
e251d13
fix extra newline in code output
reidbarber Nov 24, 2025
56fca34
Merge remote-tracking branch 'origin/main' into s2-docs-testing-follo…
reidbarber Nov 24, 2025
a08af45
add comment
reidbarber Nov 24, 2025
0c6ae14
Merge remote-tracking branch 'origin/main' into s2-docs-testing-follo…
reidbarber Nov 24, 2025
5968c7c
Merge remote-tracking branch 'origin/main' into s2-docs-testing-follo…
reidbarber Nov 24, 2025
295ee56
Merge branch 'main' into s2-docs-testing-followup-high-priority
reidbarber Nov 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 4 additions & 14 deletions packages/dev/s2-docs/src/searchUtils.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -219,20 +219,15 @@ export function useSearchTagSelection(
) {
const [selectedTagId, setSelectedTagId] = useState<string>(initialTagId);
const prevSearchWasEmptyRef = useRef<boolean>(true);
const [hasShowAllTriggered, setHasShowAllTriggered] = useState(false);

// Ensure selected tag is valid for the current library
const baseSectionIds = sectionTags.map(s => s.id);
const resourceTagIds = resourceTags.map(t => t.id);
const allBaseIds = useMemo(() => [...baseSectionIds, ...resourceTagIds], [baseSectionIds, resourceTagIds]);
const isResourceSelected = selectedTagId && resourceTagIds.includes(selectedTagId);

useEffect(() => {
// "All" tag is shown once a non-Resource search starts
if (searchValue.trim().length > 0 && !isResourceSelected) {
setHasShowAllTriggered(true);
}
}, [searchValue, isResourceSelected]);
// "All" tag is shown when there's a search value and a resource tag is not selected
const hasShowAllTriggered = searchValue.trim().length > 0 && !isResourceSelected;

const sectionIds = useMemo(() => {
return hasShowAllTriggered ? ['all', ...allBaseIds] : allBaseIds;
Expand Down Expand Up @@ -262,13 +257,8 @@ export function useSectionTagsForDisplay(
selectedTagId: string,
resourceTagIds: string[]
): Tag[] {
const [hasShowAllTriggered, setHasShowAllTriggered] = useState(false);

useEffect(() => {
if (searchValue.trim().length > 0 && !resourceTagIds.includes(selectedTagId)) {
setHasShowAllTriggered(true);
}
}, [searchValue, selectedTagId, resourceTagIds]);
// "All" tag is shown when there's a search value and a resource tag is not selected
const hasShowAllTriggered = searchValue.trim().length > 0 && !resourceTagIds.includes(selectedTagId);

return useMemo(() => {
const base = sections.map(s => ({id: s.id, name: s.name}));
Expand Down