import { useEffect, useState } from 'react'; import List from '@mui/material/List'; import ListItem from '@mui/material/ListItem'; import ListItemButton from '@mui/material/ListItemButton'; import ListItemText from '@mui/material/ListItemText'; import IconButton from '@mui/material/IconButton'; import GroupAddIcon from '@mui/icons-material/GroupAdd'; import { executeEvent } from '../../utils/events'; import { Box, ButtonBase, Collapse, Typography, useTheme } from '@mui/material'; import { getGroupNames } from './UserListOfInvites'; import { CustomLoader } from '../../common/CustomLoader'; import { getBaseApiReact } from '../../App'; import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; import ExpandLessIcon from '@mui/icons-material/ExpandLess'; import { useTranslation } from 'react-i18next'; export const GroupInvites = ({ myAddress, setOpenAddGroup }) => { const [groupsWithJoinRequests, setGroupsWithJoinRequests] = useState([]); const [isExpanded, setIsExpanded] = useState(false); const [loading, setLoading] = useState(true); const { t } = useTranslation([ 'auth', 'core', 'group', 'question', 'tutorial', ]); const theme = useTheme(); const getJoinRequests = async () => { try { setLoading(true); const response = await fetch( `${getBaseApiReact()}/groups/invites/${myAddress}/?limit=0` ); const data = await response.json(); const resMoreData = await getGroupNames(data); setGroupsWithJoinRequests(resMoreData); } catch (error) { console.log(error); } finally { setLoading(false); } }; useEffect(() => { if (myAddress) { getJoinRequests(); } }, [myAddress]); return ( setIsExpanded((prev) => !prev)} > {t('group:group.invites', { postProcess: 'capitalizeFirstChar' })}{' '} {groupsWithJoinRequests?.length > 0 && ` (${groupsWithJoinRequests?.length})`} {isExpanded ? ( ) : ( )} {loading && groupsWithJoinRequests.length === 0 && ( )} {!loading && groupsWithJoinRequests.length === 0 && ( {t('group:message.generic.no_display', { postProcess: 'capitalizeFirstChar', })} )} {groupsWithJoinRequests?.map((group) => { return ( { setOpenAddGroup(true); setTimeout(() => { executeEvent('openGroupInvitesRequest', {}); }, 300); }} disablePadding secondaryAction={ } > ); })} ); };