Skip to content

Commit 44045fc

Browse files
authored
Merge pull request #169 from Riyad-Murad/staging
Staging
2 parents 23a22dd + 7cf95fe commit 44045fc

File tree

5 files changed

+106
-7
lines changed

5 files changed

+106
-7
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// src/Components/CommonComponents/CustomTable/CustomTable.jsx
2+
import "./styles.css";
3+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
4+
import { faPenToSquare } from "@fortawesome/free-solid-svg-icons";
5+
6+
const CustomTable = ({ headers, data }) => {
7+
return (
8+
<table className="custom-table">
9+
<thead>
10+
<tr>
11+
{headers.map((header, idx) => (
12+
<th key={idx}>{header}</th>
13+
))}
14+
</tr>
15+
</thead>
16+
<tbody>
17+
{data.map((user, idx) => (
18+
<tr key={idx}>
19+
<td>{user.name}</td>
20+
<td>{user.email}</td>
21+
<td>{user.phone_number}</td>
22+
<td>
23+
<FontAwesomeIcon icon={faPenToSquare} className="edit-icon" />
24+
</td>
25+
</tr>
26+
))}
27+
</tbody>
28+
</table>
29+
);
30+
};
31+
32+
export default CustomTable;
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/* CustomTable.css */
2+
.custom-table {
3+
width: 100%;
4+
border-collapse: collapse;
5+
margin-top: 20px;
6+
}
7+
8+
.custom-table thead tr {
9+
background-color: #f9a43a;
10+
color: #000000;
11+
text-align: left;
12+
}
13+
14+
.custom-table th,
15+
.custom-table td {
16+
padding: 12px 15px;
17+
}
18+
19+
.custom-table tbody tr {
20+
background-color: #fff9f3;
21+
color: #000000;
22+
border-bottom: 1px solid #ddd;
23+
}
24+
25+
.edit-icon {
26+
cursor: pointer;
27+
color: #000000;
28+
font-size: 18px;
29+
}

amp-client/src/Pages/ProviderPages/ProviderUsers/ProviderUsers.jsx

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,31 @@
11
import "./styles.css";
2+
import { useEffect, useState } from "react";
3+
import { useSelector } from "react-redux";
4+
import CustomTable from "../../../Components/CommonComponents/CustomTable/CustomTable";
5+
import ProviderUsersService from "../Services/ProviderUsersService/ProviderUsersService";
26

37
const ProviderUsers = () => {
8+
const [users, setUsers] = useState([]);
9+
const userId = useSelector((state) => state.user.id);
10+
const { getAllUsers } = ProviderUsersService();
11+
12+
useEffect(() => {
13+
const fetchUsers = async () => {
14+
const fetched = await getAllUsers(userId);
15+
setUsers(Array.isArray(fetched) ? fetched : []);
16+
};
17+
fetchUsers();
18+
}, [userId]);
19+
20+
const tableHeaders = ["Full Name", "Email", "Phone Number", "Actions"];
21+
422
return (
5-
<>
6-
<div className="provider-users-container">
7-
<div className="main-content">
8-
<h1 className="main-content-title section-titles">Users</h1>
9-
</div>
23+
<div className="provider-users-container">
24+
<div className="main-content">
25+
<h1 className="main-content-title section-titles">Users</h1>
26+
<CustomTable headers={tableHeaders} data={users} />
1027
</div>
11-
</>
28+
</div>
1229
);
1330
};
1431

amp-client/src/Pages/ProviderPages/ProviderUsers/styles.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
.provider-users-container {
33
display: flex;
44
flex-direction: row;
5+
margin-right: 15px;
56
}
Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,21 @@
1-
import axiosInstance from "../../../../Axios/axios";
1+
// src/Pages/Provider/Services/ProviderUsers/ProviderUsersService.js
2+
import axiosInstance from "../../../../Axios/axios";
3+
4+
const ProviderUsersService = () => {
5+
const getAllUsers = async (providerId) => {
6+
try {
7+
const response = await axiosInstance.get(
8+
`providers/getAllUsers/${providerId}`
9+
);
10+
// Access the correct data field
11+
return Array.isArray(response.data.data) ? response.data.data : [];
12+
} catch (error) {
13+
console.error("Error fetching users:", error);
14+
return [];
15+
}
16+
};
17+
18+
return { getAllUsers };
19+
};
20+
21+
export default ProviderUsersService;

0 commit comments

Comments
 (0)