- {
- roomId
- ? roomId
- : 'None'
- }
-
@@ -77,16 +35,10 @@ const UserRow = ({ user, reload, setReload }: IUserRow) => {
)}
/>
- }
- onClick={() => handleCheckOut(user)}
- >
- Check out
-
-
+
diff --git a/hotel-management/src/pages/User/UserTable.tsx b/hotel-management/src/pages/User/UserTable.tsx
index 645969e..912bbc0 100644
--- a/hotel-management/src/pages/User/UserTable.tsx
+++ b/hotel-management/src/pages/User/UserTable.tsx
@@ -1,5 +1,4 @@
-import { useSearchParams } from 'react-router-dom';
-import { Dispatch, SetStateAction, useEffect, useState } from 'react';
+import { useCallback } from 'react';
// Components
import Menus from '@component/Menus';
@@ -13,9 +12,6 @@ import UserRow from './UserRow';
// Types
import { IUser } from '@type/users';
-// Hooks
-import { useFetch } from '@hook/useFetch';
-
// Constants
import { ORDERBY_OPTIONS, USER_PAGE } from '@constant/commons';
@@ -24,44 +20,23 @@ import Direction from '@commonStyle/Direction';
import { StyledOperationTable } from './styled';
import Spinner from '@commonStyle/Spinner';
-interface IUserTable {
- reload: boolean;
- setReload: Dispatch
>;
-}
+// Hooks
+import { useUsers } from '@hook/users/useUsers';
-const UserTable = ({ reload, setReload }: IUserTable) => {
- const columnName = ['Id', 'Name', 'Identified Code', 'Phone', 'Room Id'];
- const [users, setUsers] = useState([]);
- const [phoneSearch, setPhoneSearch] = useState('');
- const [searchParams] = useSearchParams();
- const sortByValue = searchParams.get('sortBy')
- ? searchParams.get('sortBy')!
- : '';
- const orderByValue = searchParams.get('orderBy')
- ? searchParams.get('orderBy')!
- : '';
+const UserTable = () => {
+ const columnName = ['Id', 'Name', 'Phone'];
+ const { isLoading, users } = useUsers();
- const { data, isPending, errorFetchMsg } = useFetch(
- 'users',
- 'phone',
- phoneSearch,
- sortByValue,
- orderByValue,
- reload
+ const renderUserRow = useCallback(
+ (user: IUser) => (
+
+ ),
+ []
);
- useEffect(() => {
- if (data) {
- setUsers(data);
- } else {
- setUsers([]);
- }
-
- if (errorFetchMsg) {
- console.error(errorFetchMsg);
- }
- }, [data, errorFetchMsg, setUsers]);
-
return (
<>
@@ -69,33 +44,20 @@ const UserTable = ({ reload, setReload }: IUserTable) => {
-
+
- {isPending && }
+ {isLoading && }
- {users.length ? (
+ {users && users.length ? (
-
+
-
- data={users}
- render={(user: IUser) => (
-
- )}
- />
+ data={users} render={renderUserRow} />
) : (
- !isPending && No data to show here!
+ !isLoading && No data to show here!
)}
>
diff --git a/hotel-management/src/pages/User/index.tsx b/hotel-management/src/pages/User/index.tsx
index d1c9b55..4d5079f 100644
--- a/hotel-management/src/pages/User/index.tsx
+++ b/hotel-management/src/pages/User/index.tsx
@@ -1,5 +1,3 @@
-import { useState } from 'react';
-
// Components
import UserTable from './UserTable';
@@ -17,7 +15,6 @@ import { FORM } from '@constant/commons';
const User = () => {
const TITLE = 'Add user';
- const [reload, setReload] = useState(true);
return (
<>
@@ -33,12 +30,12 @@ const User = () => {
)}
/>
-
+
-
+
>
);
diff --git a/hotel-management/src/services/roomServices.ts b/hotel-management/src/services/roomServices.ts
index 926e887..9c7eea4 100644
--- a/hotel-management/src/services/roomServices.ts
+++ b/hotel-management/src/services/roomServices.ts
@@ -24,7 +24,7 @@ const getAllRooms = async (
.from(ROOMS_TABLE)
.select('*')
.order(sortBy, { ascending: orderBy === 'asc' })
- .like('name', `%${roomName}%`);
+ .ilike('name', `%${roomName}%`);
if (error) {
console.error(error.message);
diff --git a/hotel-management/src/services/userServices.ts b/hotel-management/src/services/userServices.ts
index 743f99e..a5aab9a 100644
--- a/hotel-management/src/services/userServices.ts
+++ b/hotel-management/src/services/userServices.ts
@@ -54,7 +54,7 @@ const getAllUsers = async (
.from(USERS_TABLE)
.select('*')
.order(sortBy, { ascending: orderBy === 'asc' })
- .like('phone', `%${phoneSearch}%`);
+ .ilike('phone', `%${phoneSearch}%`);
if (error) {
console.error(error.message);