import Grid from '@material-ui/core/Grid'; import IconButton from '@material-ui/core/IconButton'; import Paper from '@material-ui/core/Paper'; import Table from '@material-ui/core/Table'; import TableBody from '@material-ui/core/TableBody'; import TableCell from '@material-ui/core/TableCell'; import TableHead from '@material-ui/core/TableHead'; import TableRow from '@material-ui/core/TableRow'; import Delete from '@material-ui/icons/Delete'; import Edit from '@material-ui/icons/Edit'; import React, {Component, SFC} from 'react'; import ConfirmDialog from '../common/ConfirmDialog'; import DefaultPage from '../common/DefaultPage'; import Button from '@material-ui/core/Button'; import AddClientDialog from './AddClientDialog'; import UpdateDialog from './UpdateClientDialog'; import {observer} from 'mobx-react'; import {observable} from 'mobx'; import {inject, Stores} from '../inject'; import {IClient} from '../types'; import CopyableSecret from '../common/CopyableSecret'; import {LastUsedCell} from '../common/LastUsedCell'; @observer class Clients extends Component> { @observable private showDialog = false; @observable private deleteId: false | number = false; @observable private updateId: false | number = false; public componentDidMount = () => this.props.clientStore.refresh(); public render() { const { deleteId, updateId, showDialog, props: {clientStore}, } = this; const clients = clientStore.getItems(); return ( (this.showDialog = true)}> Create Client }> Name Token Last Used {clients.map((client: IClient) => ( (this.updateId = client.id)} fDelete={() => (this.deleteId = client.id)} /> ))}
{showDialog && ( (this.showDialog = false)} fOnSubmit={clientStore.create} /> )} {updateId !== false && ( (this.updateId = false)} fOnSubmit={(name) => clientStore.update(updateId, name)} initialName={clientStore.getByID(updateId).name} /> )} {deleteId !== false && ( (this.deleteId = false)} fOnSubmit={() => clientStore.remove(deleteId)} /> )}
); } } interface IRowProps { name: string; value: string; lastUsed: string | null; fEdit: VoidFunction; fDelete: VoidFunction; } const Row: SFC = ({name, value, lastUsed, fEdit, fDelete}) => ( {name} ); export default inject('clientStore')(Clients);