This commit is contained in:
Ruidy Nemausat 2020-05-05 18:44:21 +02:00
parent 33a07ba1ae
commit cf9c80f6b1
4 changed files with 12 additions and 96 deletions

View file

@ -62,4 +62,4 @@
- [ ] Filter users in Users Modal
- [ ] EditForms for Project and Ticket
- [ ] Admin Page
- [ ] Use auth0 user info to create appUser account
- [x] Use auth0 user info to create appUser account

View file

@ -1,4 +1,5 @@
{
"domain": "dev-fyjrvohx.auth0.com",
"clientId": "NOTxfOhjCLkdvsstLm2tcS1kiAjCdWm9"
"clientId": "NOTxfOhjCLkdvsstLm2tcS1kiAjCdWm9",
"audience": "https://localhost:5001/api/V1/"
}

View file

@ -1,7 +1,13 @@
import React, { FC, ReactNode } from "react";
import { Link } from "react-router-dom";
import { Link as RouterLink } from "react-router-dom";
import { makeStyles } from "@material-ui/core/styles";
import { Card, CardActions, CardContent, Typography } from "@material-ui/core";
import {
Card,
CardActions,
CardContent,
Typography,
Link,
} from "@material-ui/core";
import ProgressBar from "../Progress/ProgressBar";
interface IProps {
@ -33,7 +39,7 @@ const HorizontalCard: FC<IProps> = ({
<ProgressBar value={progress} />
<CardContent>
<Typography variant="h5" component="h2">
<Link to={link}>
<Link color="primary" component={RouterLink} to={link}>
<b>{title ?? "Nothing to do"}</b>
</Link>
</Typography>

View file

@ -1,91 +0,0 @@
import React, { FC, useState, ChangeEvent, FormEvent, useEffect } from "react";
import { Modal } from "./Modal";
import { AvatarList } from "./AvatarList";
import { User } from "../types/User";
import { FilterBar } from "./FilterBar";
import { patch } from "../utils/http";
import { Constants } from "../utils/Constants";
import { UsersModalEntry } from "./UsersModalEntry";
import { useParams } from "react-router-dom";
interface IProps {
show: boolean;
users: User[];
allUsers: User[];
handleClose(): void;
}
export const UsersModal: FC<IProps> = ({
show,
handleClose,
users,
allUsers
}) => {
const [filterText, setFilterText] = useState<string>("");
const [members, setMembers] = useState<User[]>(users);
const { id } = useParams();
const handleChange: (e: ChangeEvent<HTMLInputElement>) => void = (
e: ChangeEvent<HTMLInputElement>
) => {
setFilterText(e.target.value);
};
const handleSubmit: (event: FormEvent<HTMLFormElement>) => void = async (
e: FormEvent
) => {
e.preventDefault();
await patch<User[]>(
`${Constants.projectsURI}/${id}/members`,
members.map(m => m.id)
);
handleClose();
};
return (
<Modal show={show} handleClose={handleClose}>
<div className="row valign-wrapper indigo">
<div className="col s10">
<h4 className="white-text">Manage users</h4>
</div>
<div className="col s2">
<i
className="right material-icons indigo lighten-3 circle"
onClick={handleClose}
>
close
</i>
</div>
</div>
<div className="center">
<AvatarList users={users} />
<FilterBar
filterText={filterText}
clearFilterText={() => setFilterText("")}
handleChange={handleChange}
/>
</div>
<form onSubmit={handleSubmit}>
<ul>
{allUsers.map((u: User) => (
<li key={u.id}>
<UsersModalEntry
user={u}
members={members}
setMembers={setMembers}
/>
</li>
))}
</ul>
<div className="modal-footer grey lighten-3">
<input
type="submit"
className="modal-close waves-effect waves-green btn indigo"
value="Done"
/>
</div>
</form>
</Modal>
);
};