diff --git a/ui/src/App.tsx b/ui/src/App.tsx index 438c285e..bf6e0a32 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -9,7 +9,7 @@ import Home from "./views/Home" import Repo from "./views/Repo" import Deployment from "./views/Deployment" import Settings from "./views/Settings" -import Members from "./views/Members" +import Members from "./views/members" function App(): JSX.Element { return ( diff --git a/ui/src/components/MemberList.tsx b/ui/src/components/MemberList.tsx deleted file mode 100644 index 1f89e902..00000000 --- a/ui/src/components/MemberList.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { List, Switch, Button, Avatar } from "antd" - -import { User } from "../models" - -interface MemberListProps { - users: User[] - onChangeSwitch(user: User, checked: boolean): void - onClickDelete(user: User): void -} - -export default function MemberList(props: MemberListProps): JSX.Element { - return { - return {props.onChangeSwitch(u, checked)}} - />, - - ]} - > - } - title={u.login} - /> - - }} - > - - -} \ No newline at end of file diff --git a/ui/src/components/Pagination.tsx b/ui/src/components/Pagination.tsx index e086e29d..8fd39864 100644 --- a/ui/src/components/Pagination.tsx +++ b/ui/src/components/Pagination.tsx @@ -1,19 +1,17 @@ import { Button } from 'antd' interface PaginationProps { - page: number - isLast: boolean + disabledPrev: boolean + disabledNext: boolean onClickPrev(): void onClickNext(): void } export default function Pagination(props: PaginationProps): JSX.Element { - const isFirst = props.page <= 1 - return (
- - + +
) } \ No newline at end of file diff --git a/ui/src/views/Home.tsx b/ui/src/views/Home.tsx index d93a318c..40a9842b 100644 --- a/ui/src/views/Home.tsx +++ b/ui/src/views/Home.tsx @@ -57,8 +57,6 @@ export default function Home(): JSX.Element { f() } - const isLast = repos.length < perPage - if (loading) { return (
@@ -95,7 +93,12 @@ export default function Home(): JSX.Element {
- +
) diff --git a/ui/src/views/RepoHome.tsx b/ui/src/views/RepoHome.tsx index 6f725a26..2e6c5fdd 100644 --- a/ui/src/views/RepoHome.tsx +++ b/ui/src/views/RepoHome.tsx @@ -46,8 +46,6 @@ export default function RepoHome(): JSX.Element { // eslint-disable-next-line }, [dispatch]) - const isLast = deployments.length < perPage - const onChangeEnv = (env: string) => { dispatch(slice.actions.setEnv(env)) dispatch(fetchDeployments()) @@ -85,7 +83,12 @@ export default function RepoHome(): JSX.Element { }
- +
) diff --git a/ui/src/views/members/MemberList.tsx b/ui/src/views/members/MemberList.tsx new file mode 100644 index 00000000..f833560a --- /dev/null +++ b/ui/src/views/members/MemberList.tsx @@ -0,0 +1,51 @@ +import { shallowEqual } from "react-redux" +import { List, Switch, Button, Avatar } from "antd" + +import { useAppSelector, useAppDispatch } from "../../redux/hooks" +import { updateUser, deleteUser } from "../../redux/members" + +import { User } from "../../models" + +export default function MemberList(): JSX.Element { + const { users } = useAppSelector(state => state.members, shallowEqual) + const dispatch = useAppDispatch() + + const onChangeSwitch = (user: User, checked: boolean) => { + dispatch(updateUser({user, admin: checked})) + } + + const onClickDelete = (user: User) => { + dispatch(deleteUser(user)) + } + + return ( + ( + {onChangeSwitch(user, checked)}} + />, + + ]} + > + } + title={user.login} + /> + + )} + /> + ) +} \ No newline at end of file diff --git a/ui/src/views/Members.tsx b/ui/src/views/members/index.tsx similarity index 62% rename from ui/src/views/Members.tsx rename to ui/src/views/members/index.tsx index 065363ba..304a716d 100644 --- a/ui/src/views/Members.tsx +++ b/ui/src/views/members/index.tsx @@ -3,18 +3,16 @@ import { shallowEqual } from "react-redux" import { Input } from "antd" import { Helmet } from "react-helmet" -import { useAppSelector, useAppDispatch } from "../redux/hooks" -import { membersSlice as slice, fetchUsers, updateUser, deleteUser, perPage } from "../redux/members" +import { useAppSelector, useAppDispatch } from "../../redux/hooks" +import { membersSlice as slice, fetchUsers, perPage } from "../../redux/members" -import { User } from "../models" - -import Main from './Main' -import MemberList from "../components/MemberList" -import Pagination from "../components/Pagination" +import Main from '../Main' +import MemberList from "./MemberList" +import Pagination from "../../components/Pagination" const { Search } = Input -export default function Member(): JSX.Element { +export default function Members(): JSX.Element { const { users, page } = useAppSelector(state => state.members, shallowEqual) const dispatch = useAppDispatch() @@ -27,14 +25,6 @@ export default function Member(): JSX.Element { dispatch(fetchUsers()) } - const onChangeSwitch = (user: User, checked: boolean) => { - dispatch(updateUser({user, admin: checked})) - } - - const onClickDelete = (user: User) => { - dispatch(deleteUser(user)) - } - const onClickPrev = () => { dispatch(slice.actions.decreasePage()) dispatch(fetchUsers()) @@ -57,16 +47,12 @@ export default function Member(): JSX.Element {
- +