Skip to content

Commit ac5e83c

Browse files
committed
Change post-submit behavior.
1 parent 8080f2a commit ac5e83c

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

client/src/Editor/CreateObject.jsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import React, { useEffect, useState } from "react";
33
import { TreeView, TreeItem } from "@material-ui/lab";
44
import { useFetchContext } from "../context";
55
import { apiUrl } from "../routes";
6+
import { Link } from "react-router-dom";
67

78
const CreateObject = ({ parentPid = "", allowNoParentPid = false, allowChangeParentPid = true }) => {
89
// Validate properties
@@ -17,7 +18,7 @@ const CreateObject = ({ parentPid = "", allowNoParentPid = false, allowChangePar
1718
} = useFetchContext();
1819
const [models, setModels] = useState({});
1920
const [selectedModel, setSelectedModel] = useState("");
20-
const [results, setResults] = useState("");
21+
const [results, setResults] = useState();
2122
const [title, setTitle] = useState("");
2223
const [parent, setParent] = useState(parentPid);
2324
const [noParent, setNoParent] = useState(allowNoParentPid && parentPid === "");
@@ -57,11 +58,17 @@ const CreateObject = ({ parentPid = "", allowNoParentPid = false, allowChangePar
5758
model: selectedModel,
5859
state,
5960
};
61+
setResults("Working...");
6062
try {
6163
const params = { method: "POST", body: JSON.stringify(data) };
6264
const headers = { "Content-Type": "application/json" };
6365
const result = await makeRequest(url, params, headers);
64-
setResults(await result.text());
66+
const pid = await result.text();
67+
setResults(
68+
<span>
69+
Object created: <Link to={"/edit/object/" + pid}>{pid}</Link>
70+
</span>
71+
);
6572
} catch (e) {
6673
setResults("Error: " + e.message);
6774
}
@@ -136,10 +143,12 @@ const CreateObject = ({ parentPid = "", allowNoParentPid = false, allowChangePar
136143
<input type="hidden" value={parent} name="parent" />
137144
);
138145
}
139-
146+
// If the form has completed, just display the result:
147+
if (results) {
148+
return results;
149+
}
140150
return (
141151
<form onSubmit={handleSubmit} className="editor__create-object">
142-
{results && results.length > 0 ? <div>{"Results: " + results}</div> : ""}
143152
<label>
144153
Title
145154
<input type="text" value={title} name="title" onChange={handleTitleChange} required />

client/src/Editor/CreateObject.test.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { mount, render } from "enzyme";
66
import toJson from "enzyme-to-json";
77
import CreateObject from "./CreateObject";
88
import { FetchContextProvider } from "../context";
9+
import { BrowserRouter } from "react-router-dom";
910

1011
let nodeSelectFunction = null;
1112
let treeItems = null;
@@ -56,9 +57,11 @@ describe("CreateObject", () => {
5657

5758
function getCreateObjectToTest(props) {
5859
return (
59-
<FetchContextProvider>
60-
<CreateObject {...props} />
61-
</FetchContextProvider>
60+
<BrowserRouter>
61+
<FetchContextProvider>
62+
<CreateObject {...props} />
63+
</FetchContextProvider>
64+
</BrowserRouter>
6265
);
6366
}
6467

0 commit comments

Comments
 (0)