import React, {Component} from 'react'; import Grid from 'material-ui/Grid'; import Table, {TableBody, TableCell, TableHead, TableRow} from 'material-ui/Table'; import Paper from 'material-ui/Paper'; import Button from 'material-ui/Button'; import IconButton from 'material-ui/IconButton'; import Dialog, {DialogActions, DialogContent, DialogTitle} from 'material-ui/Dialog'; import TextField from 'material-ui/TextField'; import Tooltip from 'material-ui/Tooltip'; import ClientStore from '../stores/ClientStore'; import ToggleVisibility from '../component/ToggleVisibility'; import * as ClientAction from '../actions/ClientAction'; import DefaultPage from '../component/DefaultPage'; import ConfirmDialog from '../component/ConfirmDialog'; import PropTypes from 'prop-types'; import Delete from 'material-ui-icons/Delete'; class Clients extends Component { constructor() { super(); this.state = {clients: [], showDialog: false, deleteId: -1}; } componentWillMount() { ClientStore.on('change', this.updateClients); this.updateClients(); } componentWillUnmount() { ClientStore.removeListener('change', this.updateClients); } updateClients = () => this.setState({...this.state, clients: ClientStore.get()}); showCreateDialog = () => this.setState({...this.state, showDialog: true}); hideCreateDialog = () => this.setState({...this.state, showDialog: false}); showDeleteDialog = (deleteId) => this.setState({...this.state, deleteId}); hideDeleteDelete = () => this.setState({...this.state, deleteId: -1}); render() { const {clients, deleteId, showDialog} = this.state; return ( Name token {clients.map((client) => { return ( this.showDeleteDialog(client.id)}/> ); })}
{showDialog && } {deleteId !== -1 && ClientAction.deleteClient(deleteId)}/>}
); } } class Row extends Component { static propTypes = { name: PropTypes.string.isRequired, value: PropTypes.string.isRequired, fDelete: PropTypes.func.isRequired, }; render() { const {name, value, fDelete} = this.props; return ( {name} ); } } class AddDialog extends Component { static propTypes = { fClose: PropTypes.func.isRequired, fOnSubmit: PropTypes.func.isRequired, }; constructor() { super(); this.state = {name: ''}; } handleChange(propertyName, event) { const state = this.state; state[propertyName] = event.target.value; this.setState(state); } render() { const {fClose, fOnSubmit} = this.props; const {name} = this.state; const submitEnabled = this.state.name.length !== 0; const submitAndClose = () => { fOnSubmit(name); fClose(); }; return ( Create a client
); } } export default Clients;