setMessage( await VPNService.revokeClient( { revokeClientName }, fetchClients ) );
fetchAvailableClients().catch( e => setMessage( e ) );
setRevokeOpen( false );
+ setRevokeClientName( '' );
};
const handleDisconnect = async () => {
- setMessage( await VPNService.disconnect() );
+ setMessage( await VPNService.disconnect( { clientName: revokeClientName, duration}) );
fetchClients().catch( e => setMessage( e ) );
setSuspendOpen( false );
+ setDuration( 1 );
+ setRevokeClientName( '' );
};
useEffect( () => {
} );
};
- disconnect = () => {
+ disconnect = ( data ) => {
return new Promise( async ( resolve ) => {
try {
- const response = await axios.put( `${ base_url }${ VPNConfig.disconnect }` );
+ const response = await axios.put( `${ base_url }${ VPNConfig.disconnect }`, data );
resolve( response.data.message );
} catch (error) {
resolve( `Error: ${ error.response?.data?.error || 'Failed to disconnect' }` );
availableClients,
message,
setCreateOpen,
- serverStatus } = useVPN();
+ serverStatus,
+ setSuspendOpen } = useVPN();
const clientTable = useMaterialReactTable( {
columns: [
{ accessorKey: 'name', header: 'Name' },
}}><BlockIcon/></IconButton>
<IconButton size='small' color='warning' title='Suspend' onClick={() => {
setRevokeClientName( row.original.clientName );
- setRevokeOpen( true );
+ setSuspendOpen( true );
}}><AccessTimeOutlined/></IconButton>
</Grid>
),