Skip to content

Commit 772e447

Browse files
Created header components
1 parent f79e922 commit 772e447

File tree

4 files changed

+31
-9
lines changed

4 files changed

+31
-9
lines changed

packages/cursorless-org-docs/src/docs/user/languages/components/DynamicTOC.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ interface Props {
55
maxHeadingLevel?: number;
66
}
77

8-
export default function DynamicTOC({
8+
export function DynamicTOC({
99
minHeadingLevel = 2,
1010
maxHeadingLevel = 3,
1111
}: Props) {
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import React from "react";
2+
3+
export function H2({ children }: { children: string }) {
4+
return <Header level={2}>{children}</Header>;
5+
}
6+
7+
export function H3({ children }: { children: string }) {
8+
return <Header level={3}>{children}</Header>;
9+
}
10+
11+
interface HeaderProps {
12+
level: number;
13+
children: string;
14+
}
15+
16+
function Header({ level, children }: HeaderProps) {
17+
const Tag = `h${level}` as keyof React.JSX.IntrinsicElements;
18+
const href = children.toLowerCase().replaceAll(" ", "-");
19+
return (
20+
<Tag id={href} className="scope-header anchorWithStickyNavbar_IncK">
21+
{children}
22+
<a className="hash-link" href={`#${href}`} />
23+
</Tag>
24+
);
25+
}

packages/cursorless-org-docs/src/docs/user/languages/components/Language.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from "react";
2-
import DynamicTOC from "./DynamicTOC";
2+
import { DynamicTOC } from "./DynamicTOC";
33
import { ScopeSupport } from "./ScopeSupport";
44

55
interface Props {

packages/cursorless-org-docs/src/docs/user/languages/components/ScopeSupport.tsx

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ import {
55
type ScopeSupportFacet,
66
type ScopeSupportFacetInfo,
77
} from "@cursorless/common";
8+
import { usePluginData } from "@docusaurus/useGlobalData";
89
import React, { useState } from "react";
910
import { Code, type Highlight } from "./Code";
11+
import { H2, H3 } from "./Header";
1012
import "./ScopeSupport.css";
1113
import type { Fixture, ScopeTests } from "./types";
1214
import { getFacetInfo, prettifyFacet, prettifyScopeType } from "./util";
13-
import { usePluginData } from "@docusaurus/useGlobalData";
1415

1516
type RangeType = "content" | "removal";
1617

@@ -61,7 +62,7 @@ export function ScopeSupport({ languageId }: Props) {
6162

6263
return (
6364
<>
64-
<h2>Scopes</h2>
65+
<H2>Scopes</H2>
6566

6667
<p>
6768
Below are visualizations of all our scope tests for this language. These
@@ -85,13 +86,9 @@ function renderScope(
8586
renderWhitespace: boolean,
8687
scope: Scope,
8788
) {
88-
const href = scope.scope.toLowerCase().replaceAll(" ", "-");
8989
return (
9090
<div key={scope.scope}>
91-
<h3 id={href} className="scope-header anchorWithStickyNavbar_IncK">
92-
{scope.scope}
93-
<a className="hash-link" href={`#${href}`} />
94-
</h3>
91+
<H3>{scope.scope}</H3>
9592
{scope.facets.map((f) =>
9693
renderFacet(languageId, rangeType, renderWhitespace, f),
9794
)}

0 commit comments

Comments
 (0)