import { LoadingButton } from '@mui/lab'; import { Box, Input, MenuItem, Select, SelectChangeEvent } from '@mui/material'; import { useState } from 'react'; import { Spacer } from '../../common/Spacer'; import { Label } from './AddGroup'; import { getFee } from '../../background/background.ts'; import { useTranslation } from 'react-i18next'; export const InviteMember = ({ groupId, setInfoSnack, setOpenSnack, show }) => { const [value, setValue] = useState(''); const [expiryTime, setExpiryTime] = useState('259200'); const [isLoadingInvite, setIsLoadingInvite] = useState(false); const { t } = useTranslation([ 'auth', 'core', 'group', 'question', 'tutorial', ]); const inviteMember = async () => { try { const fee = await getFee('GROUP_INVITE'); await show({ message: t('core:message.question.perform_transaction', { action: 'GROUP_INVITE', postProcess: 'capitalizeFirstChar', }), publishFee: fee.fee + ' QORT', }); setIsLoadingInvite(true); if (!expiryTime || !value) return; new Promise((res, rej) => { window .sendMessage('inviteToGroup', { groupId, qortalAddress: value, inviteTime: +expiryTime, }) .then((response) => { if (!response?.error) { setInfoSnack({ type: 'success', message: t('group:message.success.group_invite', { value: value, postProcess: 'capitalizeFirstChar', }), }); setOpenSnack(true); res(response); setValue(''); return; } setInfoSnack({ type: 'error', message: response?.error, }); setOpenSnack(true); rej(response.error); }) .catch((error) => { setInfoSnack({ type: 'error', message: error?.message || t('core:message.error.generic', { postProcess: 'capitalizeFirstChar', }), }); setOpenSnack(true); rej(error); }); }); } catch (error) { console.log(error); } finally { setIsLoadingInvite(false); } }; const handleChange = (event: SelectChangeEvent) => { setExpiryTime(event.target.value as string); }; return ( {t('group:action.invite_member', { postProcess: 'capitalizeFirstChar' })} setValue(e.target.value)} /> {t('core:action.invite', { postProcess: 'capitalizeFirstChar' })} ); };