import React, { createContext, useState, useContext, useEffect } from 'react';
import { VPNService } from '../../services';
+import { CreateVPNClientDialog, ConfirmRevoke } from '../index';
const VPNContext = createContext( undefined );
handleRevokeClientSubmit
};
- return <VPNContext.Provider value={ value }>{ children }</VPNContext.Provider>;
+ return <VPNContext.Provider value={ value }>{children}
+ {revokeOpen && <ConfirmRevoke open={revokeOpen} onClose={() => setRevokeOpen(false)} onConfirm={handleRevokeClientSubmit}/>}
+ {createOpen && <CreateVPNClientDialog open={createOpen} onClose={() => setCreateOpen(false)} onCreate={handleCreateClientSubmit}/>}
+ { children }</VPNContext.Provider>;
};
import { Container, Typography, Button, Grid } from '@mui/material';
import { MaterialReactTable, useMaterialReactTable } from 'material-react-table';
-import { ConfirmRevoke, CreateVPNClientDialog } from '../../components';
import { useVPN } from '../../components/VPN/VPNContext';
const VPN = () => {
- const { revokeOpen,
- setRevokeOpen,
+ const { setRevokeOpen,
setRevokeClientName,
clients,
availableClients,
message,
- createOpen,
- setCreateOpen,
- handleCreateClientSubmit,
- handleRevokeClientSubmit } = useVPN();
+ setCreateOpen } = useVPN();
const clientTable = useMaterialReactTable( {
columns: [
{ accessorKey: 'name', header: 'Name' },
data: availableClients,
renderTopToolbarCustomActions: () => (
<>
- {createOpen && <CreateVPNClientDialog open={createOpen} onClose={() => setCreateOpen(false)} onCreate={handleCreateClientSubmit}/>}
<Button variant="contained"
color="primary"
onClick={ () => setCreateOpen( true ) }>
return (
<Container>
- { revokeOpen &&
- <ConfirmRevoke
- open={revokeOpen}
- onClose={() => setRevokeOpen(false)}
- onConfirm={handleRevokeClientSubmit}
- />}
-
<Typography variant="h5" className="mt-6">Available OpenVPN Clients</Typography>
<MaterialReactTable table={ availableTable } />