Minor improvement on reusability of filter function

This commit is contained in:
Joao Ramos
2023-12-07 23:34:31 +00:00
parent ec56a5426b
commit 26c4368f31

View File

@@ -42,6 +42,8 @@ export default function AdminDashboard({user}: Props) {
setShowModal(!!selectedUser && page === ""); setShowModal(!!selectedUser && page === "");
}, [selectedUser, page]); }, [selectedUser, page]);
const inactiveCountryManagerFilter = (x: User) => x.type === "agent" && (x.status === "disabled" || moment().isAfter(x.subscriptionExpirationDate));
const UserDisplay = (displayUser: User) => ( const UserDisplay = (displayUser: User) => (
<div <div
onClick={() => setSelectedUser(displayUser)} onClick={() => setSelectedUser(displayUser)}
@@ -149,8 +151,6 @@ export default function AdminDashboard({user}: Props) {
); );
const InactiveCountryManagerList = () => { const InactiveCountryManagerList = () => {
const filter = (x: User) => x.type === "agent" && (x.status === "disabled" || moment().isAfter(x.subscriptionExpirationDate));
return ( return (
<> <>
<div className="flex flex-col gap-4"> <div className="flex flex-col gap-4">
@@ -160,10 +160,10 @@ export default function AdminDashboard({user}: Props) {
<BsArrowLeft className="text-xl" /> <BsArrowLeft className="text-xl" />
<span>Back</span> <span>Back</span>
</div> </div>
<h2 className="text-2xl font-semibold">Inactive Country Managers ({users.filter(filter).length})</h2> <h2 className="text-2xl font-semibold">Inactive Country Managers ({users.filter(inactiveCountryManagerFilter).length})</h2>
</div> </div>
<UserList user={user} filters={[filter]} /> <UserList user={user} filters={[inactiveCountryManagerFilter]} />
</> </>
); );
} }
@@ -259,10 +259,7 @@ export default function AdminDashboard({user}: Props) {
onClick={() => setPage("inactiveCountryManagers")} onClick={() => setPage("inactiveCountryManagers")}
Icon={BsPerson} Icon={BsPerson}
label="Inactive Country Managers" label="Inactive Country Managers"
value={ value={users.filter(inactiveCountryManagerFilter).length}
users.filter((x) => x.type === "agent" && (x.status === "disabled" || moment().isAfter(x.subscriptionExpirationDate)))
.length
}
color="rose" color="rose"
/> />
<IconCard <IconCard