Skip to content

Commit 86fb296

Browse files
committed
Cleanup
1 parent f8c5871 commit 86fb296

File tree

9 files changed

+24
-66
lines changed

9 files changed

+24
-66
lines changed

web/src/components/Docs/ReferencedBy.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export function ReferencedBy({ name, module }: { name: string; module: string })
8686
</RefLink>
8787
))}
8888
{collapsible && (
89-
<ToggleButton onClick={() => setExpanded(!expanded)}>
89+
<ToggleButton onClick={() => setExpanded(!expanded)} aria-label={expanded ? "Show fewer references" : "Show all references"} aria-expanded={expanded}>
9090
{expanded ? "show less" : `+${refs.length - COLLAPSE_THRESHOLD} more…`}
9191
</ToggleButton>
9292
)}

web/src/components/Docs/SchemaClass.tsx

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, { useContext, useMemo } from "react";
2-
import { Link, useNavigate } from "react-router-dom";
2+
import { useNavigate } from "react-router-dom";
33
import styled from "styled-components";
44
import * as api from "./api";
55
import { SchemaTypeView, MetadataTags } from "./SchemaType";
@@ -8,6 +8,7 @@ import { KindIcon } from "./utils/components";
88
import { DeclarationsContext } from "./DeclarationsContext";
99
import { useSearchWords, useSearchOffsets } from "./utils/filtering";
1010
import {
11+
CollapsedItemsLink,
1112
CommonGroupMembers,
1213
CommonGroupSignature,
1314
CommonGroupWrapper,
@@ -58,17 +59,6 @@ const FieldOffset = styled.span`
5859
}
5960
`;
6061

61-
const CollapsedFieldsLink = styled(Link)`
62-
display: block;
63-
padding: 4px 8px;
64-
font-size: 14px;
65-
color: ${(props) => props.theme.textDim};
66-
text-decoration: none;
67-
68-
&:hover {
69-
text-decoration: underline;
70-
}
71-
`;
7262

7363
export const ModuleBadge: React.FC<{ module: string }> = ({ module }) => {
7464
const { root } = useContext(DeclarationsContext);
@@ -151,9 +141,9 @@ export const SchemaClassView: React.FC<{
151141
<SchemaFieldView key={field.name} field={field} highlighted={(searchWords.length > 0 && matchesWords(field.name, searchWords)) || (searchOffsets.length > 0 && searchOffsets.includes(field.offset))} />
152142
))}
153143
{hiddenCount > 0 && (
154-
<CollapsedFieldsLink to={`${root}/${declaration.module}/${declaration.name}`}>
144+
<CollapsedItemsLink to={`${root}/${declaration.module}/${declaration.name}`}>
155145
{hiddenCount} more field{hiddenCount !== 1 ? "s" : ""}
156-
</CollapsedFieldsLink>
146+
</CollapsedItemsLink>
157147
)}
158148
</ClassMembers>
159149
)}

web/src/components/Docs/SchemaEnum.tsx

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import * as api from "./api";
22
import React, { useContext, useMemo } from "react";
3-
import { Link } from "react-router-dom";
43
import styled from "styled-components";
54
import { ColoredSyntax } from "~components/ColoredSyntax";
65
import { KindIcon } from "./utils/components";
@@ -10,6 +9,7 @@ import { ReferencedBy } from "./ReferencedBy";
109
import { ModuleBadge, matchesWords } from "./SchemaClass";
1110
import { useSearchWords } from "./utils/filtering";
1211
import {
12+
CollapsedItemsLink,
1313
CommonGroupMembers,
1414
CommonGroupSignature,
1515
CommonGroupWrapper,
@@ -48,17 +48,6 @@ const EnumMemberSignature = styled.div`
4848
font-size: 16px;
4949
`;
5050

51-
const CollapsedMembersLink = styled(Link)`
52-
display: block;
53-
padding: 4px 8px;
54-
font-size: 14px;
55-
color: ${(props) => props.theme.textDim};
56-
text-decoration: none;
57-
58-
&:hover {
59-
text-decoration: underline;
60-
}
61-
`;
6251

6352
export const SchemaEnumView: React.FC<{
6453
className?: string;
@@ -96,9 +85,9 @@ export const SchemaEnumView: React.FC<{
9685
<EnumMemberView key={member.name} member={member} highlighted={searchWords.length > 0 && matchesWords(member.name, searchWords)} />
9786
))}
9887
{hiddenCount > 0 && (
99-
<CollapsedMembersLink to={`${root}/${declaration.module}/${declaration.name}`}>
88+
<CollapsedItemsLink to={`${root}/${declaration.module}/${declaration.name}`}>
10089
{hiddenCount} more member{hiddenCount !== 1 ? "s" : ""}
101-
</CollapsedMembersLink>
90+
</CollapsedItemsLink>
10291
)}
10392
</EnumMembers>
10493
)}

web/src/components/Docs/utils/styles.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,15 @@ export const DeclarationNameLink = styled(Link)`
4848
text-decoration: underline;
4949
}
5050
`;
51+
52+
export const CollapsedItemsLink = styled(Link)`
53+
display: block;
54+
padding: 4px 8px;
55+
font-size: 14px;
56+
color: ${(props) => props.theme.textDim};
57+
text-decoration: none;
58+
59+
&:hover {
60+
text-decoration: underline;
61+
}
62+
`;

web/src/components/Search/index.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ export function SearchBox({ baseUrl, className, placeholder = "Search..." }: { b
6060
setInputValue(urlSearch);
6161
pendingRef.current = urlSearch;
6262
}
63+
// Intentionally depends only on location.search — we sync *from* the URL,
64+
// not when search/setSearch change (which would cause loops).
6365
}, [location.search]); // eslint-disable-line react-hooks/exhaustive-deps
6466

6567
// Sync input when search is set externally (e.g. from programmatic navigation)

web/src/components/Search/search.svg

Lines changed: 0 additions & 35 deletions
This file was deleted.

web/src/pages/data.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export async function loadSchemas(): Promise<Declaration[]> {
1111
if (cached) return cached;
1212

1313
const response = await fetch(`${import.meta.env.BASE_URL}schemas.json`);
14+
if (!response.ok) throw new Error(`Failed to load schemas: ${response.status}`);
1415
const data: SchemasJson = await response.json();
1516

1617
const classes: Declaration[] = data.classes.map((c) => ({ ...c, kind: "class" as const }));

web/src/pages/schemas/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export default function SchemasPage() {
1818
useEffect(() => {
1919
loadSchemas()
2020
.then(setDeclarations)
21-
.catch((e) => setError(String(e)));
21+
.catch((e) => setError(e instanceof Error ? e.message : String(e)));
2222
}, []);
2323

2424
if (error) return <><NavBar /><LoadingMessage>Failed to load schemas: {error}</LoadingMessage></>;

web/src/utils/types.tsx

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)