Skip to content

Commit f58601b

Browse files
author
TI JONNY
committed
filter user
1 parent 524fe2a commit f58601b

File tree

8 files changed

+122
-77
lines changed

8 files changed

+122
-77
lines changed

src/Components/Menu/index.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ const Menu = ({ viewdMenu }: { viewdMenu: boolean }) => {
4646
return (
4747
<Container active={viewdMenu}>
4848
<Padding padding="4px" />
49-
5049
<Padding padding="16px">
5150
<Row id="center">
5251
<Column id="center">
@@ -136,7 +135,7 @@ const Menu = ({ viewdMenu }: { viewdMenu: boolean }) => {
136135
path={"/beneficiarios"}
137136
icon={active === 5 ? beneficiaries_hover : beneficiaries}
138137
/><Padding />
139-
<Item
138+
{/* <Item
140139
text={"Reaplicadores"}
141140
funcActiv={() => {
142141
setActive(8);
@@ -145,8 +144,8 @@ const Menu = ({ viewdMenu }: { viewdMenu: boolean }) => {
145144
active={active === 8 ? true : false}
146145
path={"/reaplicadores"}
147146
icon={active === 8 ? turmasHover : turmas}
148-
/>
149-
<Padding />
147+
/> */}
148+
150149
{props.user?.role === ROLE.ADMIN ||
151150
props.user?.role === ROLE.COORDINATORS ? (
152151
<Item

src/Context/Users/context.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import { UsersState } from "./state";
55
export const UsersContext = createContext<UsersTypes | null>(null);
66

77
const UsersProvider = ({ children }: { children: React.ReactNode }) => {
8-
const { users, CreateUser, DeleteUser, UpdateUser, isLoading } = UsersState()
8+
const { users, CreateUser, DeleteUser, UpdateUser, isLoading, role, setRole } = UsersState()
99
return (
10-
<UsersContext.Provider value={{ users, CreateUser, DeleteUser, UpdateUser, isLoading }}>
10+
<UsersContext.Provider value={{ users, CreateUser, DeleteUser, UpdateUser, isLoading, role, setRole }}>
1111
{children}
1212
</UsersContext.Provider>
1313
)

src/Context/Users/state.tsx

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ import { CreateUser } from "./type";
55

66
export const UsersState = () => {
77
const [users, setusers] = useState<any>();
8+
const [role, setRole] = useState<string | undefined>()
89

9-
const { data: userRequest, isLoading } = useFetchRequestUsers();
10+
const { data: userRequest, isLoading } = useFetchRequestUsers(role);
1011

1112
const props = ControllerUser();
1213

@@ -21,45 +22,50 @@ export const UsersState = () => {
2122

2223
const CreateUser = (data: CreateUser) => {
2324
const body = {
24-
name: data.name,
25-
username: data.username,
26-
password: data.password,
27-
role: data.role,
28-
project: GetId(data.project),
29-
sex: data.sex,
30-
color_race: data.color_race,
31-
birthday:data.birthday,
32-
email: data.email,
33-
initial_date: data.initial_date,
34-
phone: data.phone
25+
name: data.name,
26+
username: data.username,
27+
password: data.password,
28+
role: data.role,
29+
project: GetId(data.project),
30+
sex: data.sex,
31+
color_race: data.color_race,
32+
birthday: data.birthday,
33+
email: data.email,
34+
initial_date: data.initial_date,
35+
phone: data.phone
3536
}
3637
props.requestUserMutation.mutate(body);
3738
};
3839

3940
const UpdateUser = (data: CreateUser, id: number) => {
4041
const body = {
41-
name: data.name,
42-
username: data.username,
43-
role: data.role,
44-
project: GetId(data.project),
45-
sex: data.sex,
46-
color_race: data.color_race,
47-
birthday:data.birthday,
48-
email: data.email,
49-
initial_date: data.initial_date,
50-
phone: data.phone
42+
name: data.name,
43+
username: data.username,
44+
role: data.role,
45+
project: GetId(data.project),
46+
sex: data.sex,
47+
color_race: data.color_race,
48+
birthday: data.birthday,
49+
email: data.email,
50+
initial_date: data.initial_date,
51+
phone: data.phone
5152
}
52-
props.requestUpdateUserMutation.mutate({data: body, id: id});
53+
props.requestUpdateUserMutation.mutate({ data: body, id: id });
5354
};
5455

5556
const DeleteUser = (id: number) => {
5657
props.requestDeleteUserMutation.mutate(id)
5758
}
59+
60+
useEffect(() => {
61+
setRole("TODOS")
62+
}, [])
63+
5864
useEffect(() => {
5965
if (userRequest) {
6066
setusers(userRequest);
6167
}
62-
}, [userRequest]);
68+
}, [userRequest, role]);
6369

64-
return { users, CreateUser, DeleteUser, UpdateUser, isLoading };
70+
return { users, CreateUser, DeleteUser, UpdateUser, isLoading, role, setRole };
6571
};

src/Context/Users/type.tsx

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,33 @@
1+
import { Dispatch, SetStateAction } from "react";
2+
13
export interface UsersTypes {
2-
users: any;
3-
CreateUser: (data: CreateUser) => void
4-
DeleteUser: (id: number) => void
5-
UpdateUser: (data: CreateUser, id: number) => void
6-
isLoading: boolean
4+
users: any;
5+
CreateUser: (data: CreateUser) => void
6+
DeleteUser: (id: number) => void
7+
UpdateUser: (data: CreateUser, id: number) => void
8+
isLoading: boolean,
9+
role?: string,
10+
setRole: Dispatch<SetStateAction<string | undefined>>
711
}
812

913
export interface CreateUser {
10-
name: string;
11-
username: string;
12-
password?: string;
13-
project: number[];
14-
role?: {name: string, id: string}
15-
email?: string,
16-
phone?: string,
17-
sex: number,
18-
color_race: number,
19-
initial_date: string,
20-
birthday: string
21-
}
14+
name: string;
15+
username: string;
16+
password?: string;
17+
project: number[];
18+
role?: { name: string, id: string }
19+
email?: string,
20+
phone?: string,
21+
sex: number,
22+
color_race: number,
23+
initial_date: string,
24+
birthday: string
25+
}
2226

23-
export interface User {
24-
id: number
25-
name: string
26-
username: string
27-
active: boolean
28-
role: string
29-
}
27+
export interface User {
28+
id: number
29+
name: string
30+
username: string
31+
active: boolean
32+
role: string
33+
}

src/Pages/Classroom/ClassroomOne/MeetingList/CreateMeeting/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const CreateMeeting = () => {
2424
const CreateMeetingPage = () => {
2525
const props = useContext(CreateMeetingContext) as CreateMeetingType;
2626

27-
const { data: userRequest } = useFetchRequestUsers();
27+
const { data: userRequest } = useFetchRequestUsers(undefined);
2828

2929
const { id } = useParams();
3030

src/Pages/Users/ListUsers.tsx

Lines changed: 50 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ import { useContext, useState } from "react";
66
import { useNavigate } from "react-router-dom";
77
import ContentPage from "../../Components/ContentPage";
88

9+
import DropdownComponent from "../../Components/Dropdown";
910
import Loading from "../../Components/Loading";
11+
import { AplicationContext } from "../../Context/Aplication/context";
1012
import UsersProvider, { UsersContext } from "../../Context/Users/context";
1113
import { UsersTypes } from "../../Context/Users/type";
1214
import { ROLE } from "../../Controller/controllerGlobal";
1315
import { Container, Padding } from "../../Styles/styles";
16+
import { PropsAplicationContext } from "../../Types/types";
1417

1518
const ListUsers = () => {
1619
return (
@@ -23,6 +26,8 @@ const ListUsers = () => {
2326
const ListUsersPage = () => {
2427
const props = useContext(UsersContext) as UsersTypes;
2528
const history = useNavigate();
29+
const propsAplication = useContext(AplicationContext) as PropsAplicationContext;
30+
2631

2732
const [visible, setVisible] = useState<any>(false)
2833
// const actionBodyTemplate = (rowData: any) => {
@@ -41,10 +46,10 @@ const ListUsersPage = () => {
4146
{rowData.role === ROLE.ADMIN
4247
? "Admin"
4348
: rowData.role === ROLE.COORDINATORS
44-
? "Coordenador"
45-
: rowData.role === ROLE.REAPPLICATORS
46-
? "Reaplicador"
47-
: null}
49+
? "Coordenador"
50+
: rowData.role === ROLE.REAPPLICATORS
51+
? "Reaplicador"
52+
: null}
4853
</p>
4954
);
5055
};
@@ -59,28 +64,55 @@ const ListUsersPage = () => {
5964

6065
const ActionsUserBody = (rowData: any) => {
6166
return (
62-
<Button severity="danger" rounded icon={"pi pi-trash"} onClick={() => {setVisible(rowData)}} />
67+
<Button severity="danger" rounded icon={"pi pi-trash"} onClick={() => { setVisible(rowData) }} />
6368
);
6469
};
6570

6671
if (props.isLoading) return <Loading />;
6772

73+
const renderHeader = () => {
74+
return (
75+
<div
76+
className="flex justify-content-between"
77+
// style={{ background: color.colorCard }}
78+
>
79+
<Button label="Criar usuário" onClick={() => history("/users/criar")} />
80+
81+
<div>
82+
<DropdownComponent optionsLabel="name" value={props.role} onChange={(e) => props.setRole(e.target.value)} optionsValue="id" placerholder="Filtrar tipo de usuário" options={propsAplication.user?.role === ROLE.ADMIN
83+
84+
? [
85+
{ id: "TODOS", name: "Todos" },
86+
{ id: ROLE.ADMIN, name: "Admin" },
87+
{ id: ROLE.COORDINATORS, name: "Coordenador" },
88+
{ id: ROLE.REAPPLICATORS, name: "Reaplicador" },
89+
]
90+
: [
91+
{ id: "TODOS", name: "Todos" },
92+
{ id: ROLE.COORDINATORS, name: "Coordenador" },
93+
{ id: ROLE.REAPPLICATORS, name: "Reaplicador" },
94+
]
95+
} />
96+
</div>
97+
98+
</div>
99+
);
100+
};
101+
68102

69103
return (
70104
<Container>
71-
<ContentPage title="Usuários" description="Lista usuários do MeuBen.">
72-
<Padding padding="16px" />
73-
<Button label="Criar usuário" onClick={() => history("/users/criar")} />
74-
<Padding padding="16px" />
75-
<DataTable value={props.users} paginator rows={10} rowsPerPageOptions={[5, 10, 25, 50]} tableStyle={{ minWidth: "50rem" }}>
76-
<Column field="name" header="Nome"></Column>
77-
<Column field="username" header="Usuário"></Column>
78-
<Column field="role" body={typeUserBody} header="Tipo"></Column>
79-
<Column field="active" body={ActiveUserBody} header="Ativo"></Column>
80-
<Column field="actions" body={ActionsUserBody} header="Ações"></Column>
81-
82-
</DataTable>
83-
</ContentPage>
105+
<ContentPage title="Usuários" description="Lista usuários do MeuBen.">
106+
<Padding padding="16px" />
107+
<DataTable value={props.users} header={renderHeader} paginator rows={10} rowsPerPageOptions={[5, 10, 25, 50]} tableStyle={{ minWidth: "50rem" }}>
108+
<Column field="name" header="Nome"></Column>
109+
<Column field="username" header="Usuário"></Column>
110+
<Column field="role" body={typeUserBody} header="Tipo"></Column>
111+
<Column field="active" body={ActiveUserBody} header="Ativo"></Column>
112+
<Column field="actions" body={ActionsUserBody} header="Ações"></Column>
113+
114+
</DataTable>
115+
</ContentPage>
84116
<ConfirmDialog
85117
visible={visible}
86118
onHide={() => setVisible(false)}

src/Services/Users/query.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { useQuery } from "react-query";
22
import { requestUsers, requestUsersChart, requestUsersOne } from "./request";
33

4-
export const useFetchRequestUsers = () => {
5-
return useQuery(["useRequestsUsers"], () => requestUsers());
4+
export const useFetchRequestUsers = (role: string | undefined) => {
5+
return useQuery(["useRequestsUsers", role], () => requestUsers(role));
66
};
77

88
export const useFetchRequestUsersChart = () => {

src/Services/Users/request.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@ import { CreateUser } from "../../Context/Users/type";
22
import http from "../axios";
33
import { getYear, logout } from "../localstorage";
44

5-
export const requestUsers = () => {
5+
export const requestUsers = (role: string | undefined) => {
66
let path = "/user-bff";
77

8+
if(role && role !== "TODOS"){
9+
path = path + "?role="+role
10+
}
11+
812
return http
913
.get(path)
1014
.then((response) => response.data)

0 commit comments

Comments
 (0)