| import {observer} from "mobx-react-lite";
import {useStore} from "../../../../app/stores/store";
import {useEffect} from "react";
function ListUsers() {
    const {userStore} = useStore();
    const {allUsers, user} = userStore
    useEffect(() => {
        userStore.listUsers()
    }, [userStore])
    return (
        <>
            <div className="flex flex-col mt-8 ml-16">
                <div className="-my-2 py-2 overflow-x-auto sm:-mx-6 sm:px-6 lg:-mx-8 lg:px-8">
                    <div className="flex flex-col">
                        <div className="-my-2 overflow-x-auto sm:-mx-6 lg:-mx-8">
                            <a href="/"
                               className="ml-8 whitespace-nowrap inline-flex items-center justify-center px-4 py-2 border border-transparent rounded-md shadow-sm text-base font-medium text-white bg-indigo-600 hover:bg-indigo-700">Create new</a>
                            <div className="py-2 align-middle inline-block min-w-full sm:px-6 lg:px-8">
                                <div className="shadow overflow-hidden border-b border-gray-200 sm:rounded-lg">
                                    <table className="min-w-full divide-y divide-gray-200">
                                        <thead className="bg-gray-50">
                                        <tr>
                                            <th
                                                scope="col"
                                                className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
                                            >
                                                Name
                                            </th>
                                            <th
                                                scope="col"
                                                className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
                                            >
                                                Email
                                            </th>
                                            <th
                                                scope="col"
                                                className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
                                            >
                                                Is admin
                                            </th>
                                            <th scope="col" className="relative px-6 py-3">
                                                Actions
                                            </th>
                                        </tr>
                                        </thead>
                                        <tbody className="bg-white divide-y divide-gray-200">
                                        {allUsers.map((usr) => (
                                            <tr key={usr.email} className={`${usr.email === user?.email ? 'bg-gray-500 text-white' : ''}`}>
                                                <td className="px-6 py-4 whitespace-nowrap">
                                                    {usr.name}
                                                </td>
                                                <td className="px-6 py-4 whitespace-nowrap">
                                                    {usr.email}
                                                </td>
                                                <td className="px-6 py-4 whitespace-nowrap">
                                                  <span
                                                      className={`px-2 inline-flex text-xs leading-5 font-semibold rounded-full ${!usr.blocked ? 'bg-green-100 text-green-800': 'bg-red-100 text-red-800'}`}>
                                                    {!usr.blocked ? 'Active' : 'Blocked'}
                                                  </span>
                                                </td>
                                                <td className="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
                                                    {usr.email !== user?.email ?
                                                        !usr.blocked ? (
                                                            <button onClick={() => userStore.blockUnblock(usr.email)} className="text-indigo-600 hover:text-indigo-900 cursor-pointer">
                                                                Block
                                                            </button>
                                                        ) : (
                                                            <button onClick={() => userStore.blockUnblock(usr.email)} className="text-red-600 hover:text-red-900 cursor-pointer">
                                                                Unblock
                                                            </button>
                                                        )
                                                        : null
                                                    }
                                                </td>
                                            </tr>
                                        ))}
                                        </tbody>
                                    </table>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </>
    );
}
export default observer(ListUsers);
 |