Skip to content

Commit 94b3048

Browse files
Use project name from URL param on import project (#424)
1 parent 0923191 commit 94b3048

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

src/pages/ImportPage.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
VStack,
99
} from "@chakra-ui/react";
1010
import { Project } from "@microbit/makecode-embed/react";
11-
import { ReactNode, useCallback, useEffect, useMemo, useState } from "react";
11+
import { ReactNode, useCallback, useEffect, useState } from "react";
1212
import { FormattedMessage, IntlShape, useIntl } from "react-intl";
1313
import { useNavigate } from "react-router";
1414
import { useSearchParams } from "react-router-dom";
@@ -19,11 +19,11 @@ import DefaultPageLayout, {
1919
import { useConnectionStage } from "../connection-stage-hooks";
2020
import { useDeployment } from "../deployment";
2121
import { useProject } from "../hooks/project-hooks";
22+
import { useLogging } from "../logging/logging-hooks";
2223
import { MicrobitOrgResource } from "../model";
2324
import { defaultProjectName, validateProjectName } from "../project-name";
2425
import { useStore } from "../store";
2526
import { createDataSamplesPageUrl } from "../urls";
26-
import { useLogging } from "../logging/logging-hooks";
2727

2828
const ImportPage = () => {
2929
const intl = useIntl();
@@ -36,15 +36,15 @@ const ImportPage = () => {
3636
const [project, setProject] = useState<Project>();
3737
const logging = useLogging();
3838

39-
const resource = useMemo(() => {
40-
const id = params.get("id");
41-
const project = params.get("project");
42-
const name = params.get("name");
43-
return id && name && project ? { id, project, name } : undefined;
44-
}, [params]);
45-
4639
useEffect(() => {
4740
const updateAsync = async () => {
41+
const resourceId = params.get("id");
42+
const resourceProject = params.get("project");
43+
const resourceName = params.get("name");
44+
const resource =
45+
resourceId && resourceProject && resourceName
46+
? { id: resourceId, project: resourceProject, name: resourceName }
47+
: undefined;
4848
if (!resource || !activitiesBaseUrl) {
4949
return;
5050
}
@@ -55,7 +55,7 @@ const ImportPage = () => {
5555
intl
5656
);
5757
setProject(project);
58-
setName(project.header?.name ?? defaultProjectName);
58+
setName(resourceName ?? defaultProjectName);
5959
} catch (e) {
6060
// Log the fetch error, but fallback to new blank session by default.
6161
logging.error(e);
@@ -64,7 +64,7 @@ const ImportPage = () => {
6464
void updateAsync().then(() => {
6565
setFetchingProject(false);
6666
});
67-
}, [activitiesBaseUrl, intl, logging, resource]);
67+
}, [activitiesBaseUrl, intl, logging, params]);
6868

6969
const loadProject = useStore((s) => s.loadProject);
7070
const newSession = useStore((s) => s.newSession);

0 commit comments

Comments
 (0)