Skip to content

Commit ddb643a

Browse files
Remove collapse state middleware (#214)
1 parent 28ddfa1 commit ddb643a

6 files changed

Lines changed: 9 additions & 173 deletions

File tree

app/actions/menu-collapse/route.ts

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

app/actions/menu-collapse/server.ts

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

app/components/docs-menu/menu.tsx

Lines changed: 4 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from "react";
2-
import { Link, useSubmit } from "react-router";
2+
import { Link } from "react-router";
33
import { clsx } from "clsx";
44

55
import iconsHref from "~/icons.svg";
@@ -8,7 +8,6 @@ import type { MenuDoc } from "~/modules/gh-docs/.server/docs";
88
import { useNavigation } from "~/hooks/use-navigation";
99
import { useDelayedValue } from "~/hooks/use-delayed-value";
1010
import { useHeaderData } from "../docs-header/use-header-data";
11-
import { useDocsLayoutRouteLoaderData } from "~/hooks/use-docs-layout";
1211

1312
export function Menu({
1413
menu,
@@ -50,7 +49,7 @@ function MenuCategory({ category }: { category: MenuDoc }) {
5049
}
5150

5251
return (
53-
<MenuCategoryDetails className="group" slug={category.slug}>
52+
<MenuCategoryDetails className="group">
5453
<MenuSummary>
5554
{category.attrs.title}
5655
<svg aria-hidden className="hidden h-5 w-5 group-open:block">
@@ -91,67 +90,17 @@ function MenuHeading({ label }: { label: string }) {
9190

9291
type MenuCategoryDetailsType = {
9392
className?: string;
94-
slug?: string;
9593
children: React.ReactNode;
9694
};
9795

98-
function MenuCategoryDetails({
99-
className,
100-
slug,
101-
children,
102-
}: MenuCategoryDetailsType) {
103-
const [isOpen, submitMenuCollapse] = useMenuCollapse(slug);
104-
96+
function MenuCategoryDetails({ className, children }: MenuCategoryDetailsType) {
10597
return (
106-
<details
107-
className={clsx(className, "relative flex flex-col")}
108-
open={isOpen}
109-
onToggle={(e) => {
110-
submitMenuCollapse(e.currentTarget.open);
111-
}}
112-
>
98+
<details className={clsx(className, "relative flex flex-col")} open>
11399
{children}
114100
</details>
115101
);
116102
}
117103

118-
function useMenuCollapse(category?: string) {
119-
const menuCollapseState = useDocsLayoutRouteLoaderData()?.menuCollapseState;
120-
const [isOpen, setIsOpen] = React.useState(
121-
menuCollapseState?.[category ?? ""] ?? true,
122-
);
123-
const submit = useSubmit();
124-
125-
const submitMenuCollapse = React.useCallback(
126-
(open: boolean) => {
127-
// Fire and forget, assume that the submit will succeed and just update
128-
setIsOpen(open);
129-
130-
if (!category) return;
131-
132-
return submit(
133-
{ category, open },
134-
{
135-
navigate: false,
136-
method: "post",
137-
action: "/menu-collapse",
138-
},
139-
);
140-
},
141-
[category, submit],
142-
);
143-
144-
// Auto-expand when navigating to a page within this category
145-
let { isActive } = useNavigation(category);
146-
React.useEffect(() => {
147-
if (isActive) {
148-
submitMenuCollapse(true);
149-
}
150-
}, [isActive, submitMenuCollapse]);
151-
152-
return [isOpen, submitMenuCollapse] as const;
153-
}
154-
155104
let sortDocs = (a: MenuDoc, b: MenuDoc) =>
156105
(a.attrs.order || Infinity) - (b.attrs.order || Infinity);
157106

app/pages/docs-layout.tsx

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,9 @@ import semver from "semver";
1313
import { useRef } from "react";
1414
import { useCodeBlockCopyButton } from "~/ui/utils";
1515

16-
import {
17-
menuCollapseContext,
18-
// menuCollapseStateMiddleware,
19-
} from "~/actions/menu-collapse/server";
20-
2116
import docsCss from "~/styles/docs.css?url";
2217

23-
// export let unstable_middleware = [menuCollapseStateMiddleware];
24-
25-
export async function loader({ request, params, context }: Route.LoaderArgs) {
18+
export async function loader({ request, params }: Route.LoaderArgs) {
2619
let url = new URL(request.url);
2720
if (!url.pathname.endsWith("/")) {
2821
url.pathname += "/";
@@ -62,17 +55,9 @@ export async function loader({ request, params, context }: Route.LoaderArgs) {
6255
getHeaderData("en", ref, refParam),
6356
]);
6457

65-
// Only retain the menu collapse state on the main branch to avoid bleeding
66-
// to other branches
67-
let menuCollapseState =
68-
header.currentGitHubRef === "main"
69-
? menuCollapseContext(context).get()
70-
: {};
71-
7258
return {
7359
menu,
7460
header,
75-
menuCollapseState,
7661
};
7762
}
7863

app/routes.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ const routes: RouteConfig = [
77
route("/color-scheme", "actions/color-scheme/route.ts"),
88

99
route("", "pages/docs-layout.tsx", { id: "docs" }, [
10-
route("/menu-collapse", "actions/menu-collapse/route.ts"),
1110
route("home.md", "pages/doc.tsx", { id: "home-md" }),
1211
route("home", "pages/doc.tsx", { id: "home" }),
1312
route("changelog.md", "pages/doc.tsx", { id: "changelog-md" }),

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)