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 (
);
}
}
export default Clients;