open repo page after repo is created

This commit is contained in:
Maren Süwer
2019-01-22 11:58:31 +01:00
parent e1a889143c
commit 0a7dca0be3
2 changed files with 18 additions and 7 deletions

View File

@@ -29,7 +29,11 @@ type Props = {
// dispatch functions
fetchRepositoryTypesIfNeeded: () => void,
createRepo: (link: string, Repository, callback: () => void) => void,
createRepo: (
link: string,
Repository,
callback: (repo: Repository) => void
) => void,
resetForm: () => void,
// context props
@@ -45,8 +49,8 @@ class Create extends React.Component<Props> {
repoCreated = (repo: Repository) => {
const { history } = this.props;
//TODO: Problem: repo name can be set in history, but repo namespace is not known without fetching anything
history.push("/repos");
history.push("/repo/" + repo.namespace + "/" + repo.name);
};
render() {
@@ -71,7 +75,9 @@ class Create extends React.Component<Props> {
repositoryTypes={repositoryTypes}
loading={createLoading}
submitForm={repo => {
createRepo(repoLink, repo, () => this.repoCreated(repo));
createRepo(repoLink, repo, (repo: Repository) =>
this.repoCreated(repo)
);
}}
/>
</Page>

View File

@@ -164,16 +164,21 @@ export function fetchRepoFailure(
export function createRepo(
link: string,
repository: Repository,
callback?: () => void
callback?: (repo: Repository) => void
) {
return function(dispatch: any) {
dispatch(createRepoPending());
return apiClient
.post(link, repository, CONTENT_TYPE)
.then(() => {
.then(response => {
const location = response.headers.get("Location");
dispatch(createRepoSuccess());
return apiClient.get(location);
})
.then(response => response.json())
.then(response => {
if (callback) {
callback();
callback(response);
}
})
.catch(err => {