import React, { Component } from "react" import { observable } from "mobx" import { observer } from "mobx-react" import { isChrome, getSettings, setStorage } from "utils/browser" import ApiClient from "api/Client" @observer class Options extends Component { @observable subdomain = ""; @observable apiKey = ""; @observable errorMessage = null; @observable isSuccess = false; componentDidMount() { getSettings(false).then(({ subdomain, apiKey }) => { this.subdomain = subdomain || "" this.apiKey = apiKey || "" }) } onChange = event => { this[event.target.name] = event.target.value.trim() }; handleSubmit = _event => { this.isSuccess = false this.errorMessage = null setStorage({ subdomain: this.subdomain, apiKey: this.apiKey }).then(() => { const { version } = chrome.runtime.getManifest() const apiClient = new ApiClient({ subdomain: this.subdomain, apiKey: this.apiKey, version }) apiClient .login() .then(() => { this.isSuccess = true this.closeWindow() }) .catch(error => { this.errorMessage = error.response?.data?.message || "Anmeldung fehlgeschlagen" }) }) }; handleInputKeyDown = event => { if (event.key === "Enter") { this.handleSubmit() } }; closeWindow = () => { isChrome() && window.close() }; render() { return (

Einstellungen

{this.errorMessage && (
{this.errorMessage}
)} {this.isSuccess && (
Anmeldung erfolgreich
)}
.mocoapp.com

Den API-Schlüssel findest du in deinem Profil unter "Integrationen".

) } } export default Options