Skip to content

Commit 9f83852

Browse files
committed
Improve displaying offsets, add hex to enums
1 parent aa6db75 commit 9f83852

2 files changed

Lines changed: 44 additions & 10 deletions

File tree

src/components/Docs/SchemaClass.tsx

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,25 @@ const FieldRow = styled.div`
4545
border: 1px solid var(--group-border);
4646
border-radius: 8px;
4747
overflow: hidden;
48+
display: grid;
49+
grid-template-columns: auto 1fr;
50+
gap: 0 6px;
4851
4952
&[data-highlighted] {
5053
background-color: var(--search-highlight);
5154
}
5255
`;
5356

57+
const FieldIcon = styled.div`
58+
grid-column: 1;
59+
grid-row: 1 / -1;
60+
`;
61+
62+
const FieldContent = styled.div`
63+
grid-column: 2;
64+
min-width: 0;
65+
`;
66+
5467
const FieldSignature = styled.div`
5568
font-weight: 600;
5669
font-size: 16px;
@@ -70,6 +83,7 @@ const FieldOffset = styled.button`
7083
color: var(--text-dim);
7184
font-variant-numeric: tabular-nums;
7285
cursor: pointer;
86+
margin-left: auto;
7387
7488
&:hover {
7589
color: var(--highlight);
@@ -185,19 +199,25 @@ export const SchemaClassView: React.FC<{
185199
function SchemaFieldView({ field, highlighted }: { field: api.SchemaField; highlighted: boolean }) {
186200
const { root } = useContext(DeclarationsContext);
187201
const navigate = useNavigate();
188-
const offsetHex = `0x${field.offset.toString(16).toUpperCase()}`;
202+
const hexDigits = field.offset.toString(16).toUpperCase();
203+
const paddedHex = hexDigits.length % 2 !== 0 ? `0${hexDigits}` : hexDigits;
204+
const offsetHex = `0x${paddedHex}`;
189205
return (
190206
<FieldRow data-highlighted={highlighted || undefined}>
191-
<FieldSignature>
207+
<FieldIcon>
192208
<KindIcon kind="field" size="small" />
193-
<FieldOffset
194-
onClick={() => navigate(`${root}?search=${encodeURIComponent(`offset:${offsetHex}`)}`)}
195-
>
196-
{offsetHex}
197-
</FieldOffset>
198-
{field.name}: <SchemaTypeView type={field.type} />
199-
</FieldSignature>
200-
<MetadataTags metadata={field.metadata} />
209+
</FieldIcon>
210+
<FieldContent>
211+
<FieldSignature>
212+
{field.name}: <SchemaTypeView type={field.type} />
213+
<FieldOffset
214+
onClick={() => navigate(`${root}?search=${encodeURIComponent(`offset:${offsetHex}`)}`)}
215+
>
216+
{field.offset} ({offsetHex})
217+
</FieldOffset>
218+
</FieldSignature>
219+
<MetadataTags metadata={field.metadata} />
220+
</FieldContent>
201221
</FieldRow>
202222
);
203223
}

src/components/Docs/SchemaEnum.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,17 @@ const EnumMemberWrapper = styled.div`
4949
const EnumMemberSignature = styled.div`
5050
font-weight: 600;
5151
font-size: 16px;
52+
display: flex;
53+
align-items: baseline;
54+
gap: 6px;
55+
`;
56+
57+
const EnumMemberHex = styled.span`
58+
font-size: 14px;
59+
font-weight: 500;
60+
color: var(--text-dim);
61+
font-variant-numeric: tabular-nums;
62+
margin-left: auto;
5263
`;
5364

5465
export const SchemaEnumView: React.FC<{
@@ -120,11 +131,14 @@ function EnumMemberView({
120131
member: api.SchemaEnumMember;
121132
highlighted: boolean;
122133
}) {
134+
const hexDigits = member.value.toString(16).toUpperCase();
135+
const paddedHex = hexDigits.length % 2 !== 0 ? `0${hexDigits}` : hexDigits;
123136
return (
124137
<EnumMemberWrapper data-highlighted={highlighted || undefined}>
125138
<EnumMemberSignature>
126139
<KindIcon kind="enum-member" size="small" />
127140
{member.name} = <ColoredSyntax kind="literal">{member.value}</ColoredSyntax>
141+
<EnumMemberHex>0x{paddedHex}</EnumMemberHex>
128142
</EnumMemberSignature>
129143
{member.metadata && <MetadataTags metadata={member.metadata} />}
130144
</EnumMemberWrapper>

0 commit comments

Comments
 (0)