Skip to content

Commit 96d5f94

Browse files
authored
Publisher pages lazy import, pt4 (#5471)
* feature: lazy import account snaps and name registration pages * fix: use Link components for SPA navigation
1 parent 043bf57 commit 96d5f94

4 files changed

Lines changed: 19 additions & 13 deletions

File tree

static/js/publisher/components/PublishedSnapSection/PublishedSnapSection.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { useState } from "react";
2+
import { Link } from "react-router-dom";
23
import { Accordion } from "@canonical/react-components";
4+
35
import PublishedSnapList from "../PublishedSnapList";
46
import PublisherMetrics from "../PublisherMetrics";
57
import { ITEMS_PER_PAGE } from "../../constants";
6-
78
import type { ISnap } from "../../types";
89

910
function PublishedSnapSection({
@@ -38,12 +39,12 @@ function PublishedSnapSection({
3839
/>
3940
<div className="accordion-actions">
4041
<div className="accordion-actions__row u-align--right">
41-
<a
42-
href="/account/register-snap"
42+
<Link
43+
to="/register-snap"
4344
className="p-button u-float-right p-snap-list__register u-no-margin--top is-dense"
4445
>
4546
Register a snap name
46-
</a>
47+
</Link>
4748
</div>
4849
</div>
4950
</>

static/js/publisher/index.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,11 @@ import BrandStoreRoute from "./components/BrandStoreRoute/BrandStoreRoute";
99
import PublisherLayout from "./layouts/PublisherLayout";
1010
import SnapsManagementLayout from "./layouts/SnapsManagementLayout";
1111

12-
import AccountSnaps from "./pages/AccountSnaps";
1312
import BrandStoreSettings from "./pages/BrandStoreSettings";
1413
import Members from "./pages/Members";
1514
import Model from "./pages/Model";
1615
import Policies from "./pages/Model/Policies";
1716
import Models from "./pages/Models";
18-
import RegisterNameDispute from "./pages/RegisterNameDispute";
19-
import RegisterSnap from "./pages/RegisterSnap";
20-
import RequestReservedName from "./pages/RequestReservedName";
2117
import SigningKeys from "./pages/SigningKeys";
2218
import Snaps from "./pages/Snaps";
2319
import ValidationSet from "./pages/ValidationSet";
@@ -34,6 +30,14 @@ const Listing = importComponent(() => import("./pages/Listing"));
3430
const Builds = importComponent(() => import("./pages/Builds"));
3531
const Build = importComponent(() => import("./pages/Build"));
3632
const Releases = importComponent(() => import("./pages/Releases"));
33+
const AccountSnaps = importComponent(() => import("./pages/AccountSnaps"));
34+
const RegisterNameDispute = importComponent(
35+
() => import("./pages/RegisterNameDispute"),
36+
);
37+
const RegisterSnap = importComponent(() => import("./pages/RegisterSnap"));
38+
const RequestReservedName = importComponent(
39+
() => import("./pages/RequestReservedName"),
40+
);
3741

3842
Sentry.init({
3943
dsn: window.SENTRY_DSN,

static/js/publisher/pages/RegisterNameDispute/RegisterNameDisputeForm.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
Col,
88
Button,
99
} from "@canonical/react-components";
10+
import { Link } from "react-router-dom";
1011

1112
type Props = {
1213
snapName: string | null;
@@ -85,9 +86,9 @@ function RegisterNameDisputeForm({
8586
</Row>
8687
<hr />
8788
<div className="u-align--right">
88-
<a className="p-button" href="/register-snap">
89+
<Link className="p-button" to="/register-snap">
8990
Register a new name
90-
</a>
91+
</Link>
9192
<Button
9293
type="submit"
9394
appearance="positive"

static/js/publisher/pages/RegisterSnap/RegistrationError.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ function RegistrationError({ snapName, errorCode, isPrivate, store }: Props) {
4040
return (
4141
<Notification severity="information">
4242
'<strong>{snapName}</strong>' is reserved. You can{" "}
43-
<a
44-
href={`/request-reserved-name?snap_name=${snapName}&store=${store}&is_isPrivate=${isPrivate}`}
43+
<Link
44+
to={`/request-reserved-name?snap_name=${snapName}&store=${store}&is_isPrivate=${isPrivate}`}
4545
>
4646
request a reserved name
47-
</a>{" "}
47+
</Link>{" "}
4848
or register a new name below.
4949
</Notification>
5050
);

0 commit comments

Comments
 (0)