// @flow import * as React from 'react'; import { observable } from 'mobx'; import { observer, inject } from 'mobx-react'; import ApiKeysStore from 'stores/ApiKeysStore'; import Button from 'components/Button'; import Input from 'components/Input'; import CenteredContent from 'components/CenteredContent'; import PageTitle from 'components/PageTitle'; import HelpText from 'components/HelpText'; import List from 'components/List'; import TokenListItem from './components/TokenListItem'; type Props = { apiKeys: ApiKeysStore, }; @observer class Tokens extends React.Component { @observable name: string = ''; componentDidMount() { this.props.apiKeys.fetchPage({ limit: 100 }); } handleUpdate = (ev: SyntheticInputEvent<*>) => { this.name = ev.target.value; }; handleSubmit = async (ev: SyntheticEvent<*>) => { ev.preventDefault(); await this.props.apiKeys.create({ name: this.name }); this.name = ''; }; render() { const { apiKeys } = this.props; const hasApiKeys = apiKeys.orderedData.length > 0; return (

API Tokens

You can create an unlimited amount of personal API tokens to hack on Outline. For more details about the API take a look at the{' '} developer documentation. {hasApiKeys && ( {apiKeys.orderedData.map(token => ( ))} )}