Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 94d7958

Browse files
committed
chore: make the template docs view the default
1 parent 67e1ab4 commit 94d7958

9 files changed

+54
-74
lines changed

site/src/pages/TemplatePage/TemplateLayout.tsx

+4-3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
import { useQuery } from "react-query";
2121
import { Outlet, useLocation, useNavigate, useParams } from "react-router-dom";
2222
import { TemplatePageHeader } from "./TemplatePageHeader";
23+
import { TemplateStats } from "./TemplateStats";
2324

2425
const templatePermissions = (
2526
templateId: string,
@@ -132,9 +133,6 @@ export const TemplateLayout: FC<PropsWithChildren> = ({
132133
<Tabs active={activeTab} className="mb-10 -mt-3">
133134
<Margins>
134135
<TabsList>
135-
<TabLink to="" value="summary">
136-
Summary
137-
</TabLink>
138136
<TabLink to="docs" value="docs">
139137
Docs
140138
</TabLink>
@@ -143,6 +141,9 @@ export const TemplateLayout: FC<PropsWithChildren> = ({
143141
Source Code
144142
</TabLink>
145143
)}
144+
<TabLink to="resources" value="resources">
145+
Resources
146+
</TabLink>
146147
<TabLink to="versions" value="versions">
147148
Versions
148149
</TabLink>

site/src/pages/TemplatePage/TemplatePageHeader.tsx

+4
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import type { FC } from "react";
3636
import { useQuery } from "react-query";
3737
import { Link as RouterLink, useNavigate } from "react-router-dom";
3838
import { useDeletionDialogState } from "./useDeletionDialogState";
39+
import { TemplateStats } from "./TemplateStats";
3940

4041
type TemplateMenuProps = {
4142
organizationName: string;
@@ -238,6 +239,9 @@ export const TemplatePageHeader: FC<TemplatePageHeaderProps> = ({
238239
</div>
239240
</Stack>
240241
</PageHeader>
242+
<div className="pb-8">
243+
<TemplateStats template={template} activeVersion={activeVersion} />
244+
</div>
241245
</Margins>
242246
);
243247
};

site/src/pages/TemplatePage/TemplateSummaryPage/TemplateSummaryPage.tsx renamed to site/src/pages/TemplatePage/TemplateResourcesPage/TemplateResourcesPage.tsx

+4-8
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import type { FC } from "react";
44
import { Helmet } from "react-helmet-async";
55
import { useQuery } from "react-query";
66
import { getTemplatePageTitle } from "../utils";
7-
import { TemplateSummaryPageView } from "./TemplateSummaryPageView";
7+
import { TemplateResourcesPageView } from "./TemplateResourcesPageView";
88

9-
export const TemplateSummaryPage: FC = () => {
9+
export const TemplateResourcesPage: FC = () => {
1010
const { template, activeVersion } = useTemplateLayoutContext();
1111
const { data: resources } = useQuery({
1212
queryKey: ["templates", template.id, "resources"],
@@ -18,13 +18,9 @@ export const TemplateSummaryPage: FC = () => {
1818
<Helmet>
1919
<title>{getTemplatePageTitle("Template", template)}</title>
2020
</Helmet>
21-
<TemplateSummaryPageView
22-
resources={resources}
23-
template={template}
24-
activeVersion={activeVersion}
25-
/>
21+
<TemplateResourcesPageView resources={resources} template={template} />
2622
</>
2723
);
2824
};
2925

30-
export default TemplateSummaryPage;
26+
export default TemplateResourcesPage;
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,29 @@
11
import type { Meta, StoryObj } from "@storybook/react";
22
import {
33
MockTemplate,
4-
MockTemplateVersion,
54
MockWorkspaceResource,
65
MockWorkspaceVolumeResource,
76
} from "testHelpers/entities";
8-
import { TemplateSummaryPageView } from "./TemplateSummaryPageView";
7+
import { TemplateResourcesPageView } from "./TemplateResourcesPageView";
98

10-
const meta: Meta<typeof TemplateSummaryPageView> = {
11-
title: "pages/TemplatePage/TemplateSummaryPageView",
12-
component: TemplateSummaryPageView,
9+
const meta: Meta<typeof TemplateResourcesPageView> = {
10+
title: "pages/TemplatePage/TemplateResourcesPageView",
11+
component: TemplateResourcesPageView,
1312
};
1413

1514
export default meta;
16-
type Story = StoryObj<typeof TemplateSummaryPageView>;
15+
type Story = StoryObj<typeof TemplateResourcesPageView>;
1716

1817
export const Example: Story = {
1918
args: {
2019
template: MockTemplate,
21-
activeVersion: MockTemplateVersion,
2220
resources: [MockWorkspaceResource, MockWorkspaceVolumeResource],
2321
},
2422
};
2523

2624
export const NoIcon: Story = {
2725
args: {
2826
template: { ...MockTemplate, icon: "" },
29-
activeVersion: MockTemplateVersion,
3027
resources: [MockWorkspaceResource, MockWorkspaceVolumeResource],
3128
},
3229
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import type { Template, WorkspaceResource } from "api/typesGenerated";
2+
import { Loader } from "components/Loader/Loader";
3+
import { TemplateResourcesTable } from "modules/templates/TemplateResourcesTable/TemplateResourcesTable";
4+
import { type FC } from "react";
5+
import { Navigate, useLocation } from "react-router-dom";
6+
7+
export interface TemplateResourcesPageViewProps {
8+
resources?: WorkspaceResource[];
9+
template: Template;
10+
}
11+
12+
export const TemplateResourcesPageView: FC<TemplateResourcesPageViewProps> = ({
13+
resources,
14+
}) => {
15+
const location = useLocation();
16+
17+
if (location.hash === "#readme") {
18+
return <Navigate to="docs" replace />;
19+
}
20+
21+
if (!resources) {
22+
return <Loader />;
23+
}
24+
25+
const getStartedResources = (resources: WorkspaceResource[]) => {
26+
return resources.filter(
27+
(resource) => resource.workspace_transition === "start",
28+
);
29+
};
30+
31+
return <TemplateResourcesTable resources={getStartedResources(resources)} />;
32+
};

site/src/pages/TemplatePage/TemplateSummaryPage/TemplateSummaryPageView.tsx

-52
This file was deleted.

site/src/router.tsx

+5-3
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,9 @@ const TemplatePermissionsPage = lazy(
9292
"./pages/TemplateSettingsPage/TemplatePermissionsPage/TemplatePermissionsPage"
9393
),
9494
);
95-
const TemplateSummaryPage = lazy(
96-
() => import("./pages/TemplatePage/TemplateSummaryPage/TemplateSummaryPage"),
95+
const TemplateResourcesPage = lazy(
96+
() =>
97+
import("./pages/TemplatePage/TemplateResourcesPage/TemplateResourcesPage"),
9798
);
9899
const CreateWorkspaceExperimentRouter = lazy(
99100
() => import("./pages/CreateWorkspacePage/CreateWorkspaceExperimentRouter"),
@@ -329,9 +330,10 @@ const templateRouter = () => {
329330
<Route path=":template">
330331
<Route element={<TemplateRedirectController />}>
331332
<Route element={<TemplateLayout />}>
332-
<Route index element={<TemplateSummaryPage />} />
333+
<Route index element={<Navigate to="docs" replace />} />
333334
<Route path="docs" element={<TemplateDocsPage />} />
334335
<Route path="files" element={<TemplateFilesPage />} />
336+
<Route path="resources" element={<TemplateResourcesPage />} />
335337
<Route path="versions" element={<TemplateVersionsPage />} />
336338
<Route path="embed" element={<TemplateEmbedPage />} />
337339
<Route path="insights" element={<TemplateInsightsPage />} />

0 commit comments

Comments
 (0)