UNPKG

stitch-ui

Version:

91 lines (87 loc) 2.59 kB
// TODO proptypes /* eslint-disable react/prop-types */ import React from "react"; // eslint-disable-line no-unused-vars import { Banner, FormRow, FormRowInputGroup, Button } from "../../core"; import APIKey from "./APIKey"; export default class APIKeys extends React.Component { constructor(props) { super(props); this.createAPIKey = this.createAPIKey.bind(this); } createAPIKey() { return this.props .createAPIKey({ name: this.props.newKeyName }) .then(this.props.closeNewKeyForm) .then(this.props.loadAPIKeys); } render() { const { apiKeys, getAPIKey, deleteAPIKey, enableAPIKey, loadAPIKeys, disableAPIKey, showNewKeyForm, openNewKeyForm, newKeyName, setAPIKeyHidden, setNewKeyName, apiKeyError } = this.props; // TODO hook up enterPressedCaller to new key form. return ( <div className="view-modal-body"> <Banner message={apiKeyError} error /> <FormRow> <FormRowInputGroup> {apiKeys .map(k => <APIKey key={k._id} apiKey={k} deleteAPIKey={() => deleteAPIKey(k._id).then(loadAPIKeys)} enableAPIKey={() => enableAPIKey(k._id).then(loadAPIKeys)} disableAPIKey={() => disableAPIKey(k._id).then(loadAPIKeys)} getAPIKey={() => getAPIKey(k._id)} setAPIKeyHidden={v => setAPIKeyHidden(k._id, v)} /> ) .toArray()} </FormRowInputGroup> </FormRow> {!showNewKeyForm && <FormRow> <FormRowInputGroup> <Button small default onClick={openNewKeyForm} name="createAPIKey" > Create API Key </Button> </FormRowInputGroup> </FormRow>} {showNewKeyForm && <FormRow> <FormRowInputGroup> <div> <input type="text" name="newKeyName" placeholder="Name" value={newKeyName} className="text-input" onChange={e => setNewKeyName(e.target.value)} /> <Button small primary onClick={this.createAPIKey}> Save </Button> </div> </FormRowInputGroup> </FormRow>} </div> ); } }