diff --git a/scm-ui/src/users/containers/UserForm.js b/scm-ui/src/users/components/UserForm.js similarity index 53% rename from scm-ui/src/users/containers/UserForm.js rename to scm-ui/src/users/components/UserForm.js index 40ecf4504a..b93877e0e3 100644 --- a/scm-ui/src/users/containers/UserForm.js +++ b/scm-ui/src/users/components/UserForm.js @@ -9,6 +9,7 @@ import Loading from "../../components/Loading"; type Props = { submitForm: User => void, user?: User, + loading?: boolean, t: string => string }; @@ -38,49 +39,49 @@ class UserForm extends React.Component { render() { const { t } = this.props; const user = this.state; - - let nameField = null; - if (!this.props.user) { - nameField = ( - + if (user) { + return ( +
+ + + + + + + + ); + } else { + return ; } - return ( -
- {nameField} - - - - - - - - ); } handleUsernameChange = (name: string) => { diff --git a/scm-ui/src/users/containers/DeleteUserButton.js b/scm-ui/src/users/components/buttons/DeleteUserButton.js similarity index 87% rename from scm-ui/src/users/containers/DeleteUserButton.js rename to scm-ui/src/users/components/buttons/DeleteUserButton.js index c6c9f43cf3..39a33d32ac 100644 --- a/scm-ui/src/users/containers/DeleteUserButton.js +++ b/scm-ui/src/users/components/buttons/DeleteUserButton.js @@ -1,9 +1,9 @@ // @flow import React from "react"; import { translate } from "react-i18next"; -import type { User } from "../types/User"; -import { confirmAlert } from "../../components/modals/ConfirmAlert"; -import { NavAction } from "../../components/navigation"; +import type { User } from "../../types/User"; +import { confirmAlert } from "../../../components/modals/ConfirmAlert"; +import { NavAction } from "../../../components/navigation"; type Props = { user: User, diff --git a/scm-ui/src/users/containers/DeleteUserButton.test.js b/scm-ui/src/users/components/buttons/DeleteUserButton.test.js similarity index 89% rename from scm-ui/src/users/containers/DeleteUserButton.test.js rename to scm-ui/src/users/components/buttons/DeleteUserButton.test.js index 9c406cd6d0..09e1d87cb9 100644 --- a/scm-ui/src/users/containers/DeleteUserButton.test.js +++ b/scm-ui/src/users/components/buttons/DeleteUserButton.test.js @@ -1,11 +1,11 @@ import React from "react"; import { mount, shallow } from "enzyme"; -import "../../tests/enzyme"; -import "../../tests/i18n"; +import "../../../tests/enzyme"; +import "../../../tests/i18n"; import DeleteUserButton from "./DeleteUserButton"; -import { confirmAlert } from "../../components/modals/ConfirmAlert"; -jest.mock("../../components/modals/ConfirmAlert"); +import { confirmAlert } from "../../../components/modals/ConfirmAlert"; +jest.mock("../../../components/modals/ConfirmAlert"); describe("DeleteUserButton", () => { it("should render nothing, if the delete link is missing", () => { diff --git a/scm-ui/src/users/containers/EditUserButton.js b/scm-ui/src/users/components/buttons/EditUserButton.js similarity index 84% rename from scm-ui/src/users/containers/EditUserButton.js rename to scm-ui/src/users/components/buttons/EditUserButton.js index 5f4224e498..dc7b8d9351 100644 --- a/scm-ui/src/users/containers/EditUserButton.js +++ b/scm-ui/src/users/components/buttons/EditUserButton.js @@ -1,8 +1,8 @@ //@flow import React from "react"; import { translate } from "react-i18next"; -import { EditButton } from "../../components/buttons"; -import type { UserEntry } from "../types/UserEntry"; +import { EditButton } from "../../../components/buttons"; +import type { UserEntry } from "../../types/UserEntry"; type Props = { t: string => string, diff --git a/scm-ui/src/users/containers/EditUserButton.test.js b/scm-ui/src/users/components/buttons/EditUserButton.test.js similarity index 90% rename from scm-ui/src/users/containers/EditUserButton.test.js rename to scm-ui/src/users/components/buttons/EditUserButton.test.js index 68f2cc7d35..c708284f0f 100644 --- a/scm-ui/src/users/containers/EditUserButton.test.js +++ b/scm-ui/src/users/components/buttons/EditUserButton.test.js @@ -1,7 +1,7 @@ import React from "react"; import { shallow } from "enzyme"; -import "../../tests/enzyme"; -import "../../tests/i18n"; +import "../../../tests/enzyme"; +import "../../../tests/i18n"; import EditUserButton from "./EditUserButton"; it("should render nothing, if the edit link is missing", () => { diff --git a/scm-ui/src/users/components/buttons/index.js b/scm-ui/src/users/components/buttons/index.js new file mode 100644 index 0000000000..b5baba92d5 --- /dev/null +++ b/scm-ui/src/users/components/buttons/index.js @@ -0,0 +1,2 @@ +export { default as DeleteUserButton } from "./DeleteUserButton"; +export { default as EditUserButton } from "./EditUserButton"; diff --git a/scm-ui/src/users/containers/Details.js b/scm-ui/src/users/components/table/Details.js similarity index 90% rename from scm-ui/src/users/containers/Details.js rename to scm-ui/src/users/components/table/Details.js index 74bdae4cd9..269df9db10 100644 --- a/scm-ui/src/users/containers/Details.js +++ b/scm-ui/src/users/components/table/Details.js @@ -1,8 +1,8 @@ //@flow import React from "react"; -import type { User } from "../types/User"; +import type { User } from "../../types/User"; import { translate } from "react-i18next"; -import { Checkbox } from "../../components/forms"; +import { Checkbox } from "../../../components/forms"; type Props = { user: User, diff --git a/scm-ui/src/users/containers/UserRow.js b/scm-ui/src/users/components/table/UserRow.js similarity index 94% rename from scm-ui/src/users/containers/UserRow.js rename to scm-ui/src/users/components/table/UserRow.js index e161e2b802..b801701a21 100644 --- a/scm-ui/src/users/containers/UserRow.js +++ b/scm-ui/src/users/components/table/UserRow.js @@ -1,7 +1,7 @@ // @flow import React from "react"; import { Link } from "react-router-dom"; -import type { User } from "../types/User"; +import type { User } from "../../types/User"; type Props = { user: User diff --git a/scm-ui/src/users/containers/UserTable.js b/scm-ui/src/users/components/table/UserTable.js similarity index 93% rename from scm-ui/src/users/containers/UserTable.js rename to scm-ui/src/users/components/table/UserTable.js index 8435b128fd..9862dd64cf 100644 --- a/scm-ui/src/users/containers/UserTable.js +++ b/scm-ui/src/users/components/table/UserTable.js @@ -2,7 +2,7 @@ import React from "react"; import { translate } from "react-i18next"; import UserRow from "./UserRow"; -import type { UserEntry } from "../types/UserEntry"; +import type { UserEntry } from "../../types/UserEntry"; type Props = { t: string => string, diff --git a/scm-ui/src/users/components/table/index.js b/scm-ui/src/users/components/table/index.js new file mode 100644 index 0000000000..e1ef7cec49 --- /dev/null +++ b/scm-ui/src/users/components/table/index.js @@ -0,0 +1,3 @@ +export { default as Details } from "./Details"; +export { default as UserRow } from "./UserRow"; +export { default as UserTable } from "./UserTable"; diff --git a/scm-ui/src/users/containers/AddUser.js b/scm-ui/src/users/containers/AddUser.js index d2e148eda0..54a5f7b419 100644 --- a/scm-ui/src/users/containers/AddUser.js +++ b/scm-ui/src/users/containers/AddUser.js @@ -1,7 +1,7 @@ //@flow import React from "react"; import { connect } from "react-redux"; -import UserForm from "./UserForm"; +import UserForm from "./../components/UserForm"; import type { User } from "../types/User"; import type { History } from "history"; import { createUser } from "../modules/users"; diff --git a/scm-ui/src/users/containers/EditUser.js b/scm-ui/src/users/containers/EditUser.js index 8cdb8f9298..bb07424b14 100644 --- a/scm-ui/src/users/containers/EditUser.js +++ b/scm-ui/src/users/containers/EditUser.js @@ -1,7 +1,7 @@ //@flow import React from "react"; import { connect } from "react-redux"; -import UserForm from "./UserForm"; +import UserForm from "./../components/UserForm"; import type { User } from "../types/User"; import { modifyUser } from "../modules/users"; diff --git a/scm-ui/src/users/containers/SingleUser.js b/scm-ui/src/users/containers/SingleUser.js index 509fe6cd82..cac857a68a 100644 --- a/scm-ui/src/users/containers/SingleUser.js +++ b/scm-ui/src/users/containers/SingleUser.js @@ -3,7 +3,7 @@ import React from "react"; import { connect } from "react-redux"; import { Page } from "../../components/layout"; import { Route } from "react-router"; -import Details from "./Details"; +import { Details } from "./../components/table"; import EditUser from "./EditUser"; import type { User } from "../types/User"; import type { UserEntry } from "../types/UserEntry"; @@ -11,7 +11,7 @@ import { fetchUser, deleteUser } from "../modules/users"; import Loading from "../../components/Loading"; import { Navigation, Section, NavLink } from "../../components/navigation"; -import DeleteUserButton from "./DeleteUserButton"; +import { DeleteUserButton } from "./../components/buttons"; import ErrorPage from "../../components/ErrorPage"; type Props = { diff --git a/scm-ui/src/users/containers/Users.js b/scm-ui/src/users/containers/Users.js index 41cb9e9026..92a467fc3b 100644 --- a/scm-ui/src/users/containers/Users.js +++ b/scm-ui/src/users/containers/Users.js @@ -5,7 +5,7 @@ import { translate } from "react-i18next"; import { fetchUsers, getUsersFromState } from "../modules/users"; import { Page } from "../../components/layout"; -import UserTable from "./UserTable"; +import { UserTable } from "./../components/table"; import type { User } from "../types/User"; import { AddButton } from "../../components/buttons"; import type { UserEntry } from "../types/UserEntry";