'use client' import { useLHSession } from '@components/Contexts/LHSessionContext' import { useOrg } from '@components/Contexts/OrgContext' import AddUserGroup from '@components/Objects/Modals/Dash/OrgUserGroups/AddUserGroup' import EditUserGroup from '@components/Objects/Modals/Dash/OrgUserGroups/EditUserGroup' import ManageUsers from '@components/Objects/Modals/Dash/OrgUserGroups/ManageUsers' import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal' import Modal from '@components/Objects/StyledElements/Modal/Modal' import { getAPIUrl } from '@services/config/config' import { deleteUserGroup } from '@services/usergroups/usergroups' import { swrFetcher } from '@services/utils/ts/requests' import { Pencil, SquareUserRound, Users, X } from 'lucide-react' import React from 'react' import toast from 'react-hot-toast' import useSWR, { mutate } from 'swr' function OrgUserGroups() { const org = useOrg() as any const session = useLHSession() as any const access_token = session?.data?.tokens?.access_token; const [userGroupManagementModal, setUserGroupManagementModal] = React.useState(false) const [createUserGroupModal, setCreateUserGroupModal] = React.useState(false) const [editUserGroupModal, setEditUserGroupModal] = React.useState(false) const [selectedUserGroup, setSelectedUserGroup] = React.useState(null) as any const { data: usergroups } = useSWR( org ? `${getAPIUrl()}usergroups/org/${org.id}` : null, (url) => swrFetcher(url, access_token) ) const deleteUserGroupUI = async (usergroup_id: any) => { const toastId = toast.loading("Deleting..."); const res = await deleteUserGroup(usergroup_id, access_token) if (res.status == 200) { mutate(`${getAPIUrl()}usergroups/org/${org.id}`) toast.success("Deleted usergroup", {id:toastId}) } else { toast.error('Error deleting usergroup', {id:toastId}) } } const handleUserGroupManagementModal = (usergroup_id: any) => { setSelectedUserGroup(usergroup_id) setUserGroupManagementModal(!userGroupManagementModal) } return ( <>

Manage UserGroups & Users

{' '} UserGroups are a way to group users together to manage their access to the resources (Courses) in your organization.{' '}

<> {usergroups?.map((usergroup: any) => ( ))}
UserGroup Description Manage Users Actions
{usergroup.name} {usergroup.description} handleUserGroupManagementModal(usergroup.id) } minHeight="lg" minWidth='lg' dialogContent={ } dialogTitle="Manage UserGroup Users" dialogDescription={ 'Manage the users in this UserGroup' } dialogTrigger={ } /> Edit } minHeight='sm' minWidth='sm' onOpenChange={() => { setEditUserGroupModal(!editUserGroupModal) }} dialogContent={ } /> Delete } functionToExecute={() => { deleteUserGroupUI(usergroup.id) }} status="warning" >
setCreateUserGroupModal(!createUserGroupModal) } minHeight="no-min" dialogContent={ } dialogTitle="Create a UserGroup" dialogDescription={ 'Create a new UserGroup to manage users' } dialogTrigger={ } />
) } export default OrgUserGroups