import * as React from "react"; import * as Actions from "~/common/actions"; import * as Constants from "~/common/constants"; import * as System from "~/components/system"; import * as Strings from "~/common/strings"; import { css } from "@emotion/react"; const STYLES_GROUP = css` display: flex; align-items: center; justify-content: space-between; width: 100%; overflow-wrap: break-word; white-space: pre-wrap; `; const STYLES_LEFT = css` padding: 12px 0 0 0; min-width: 10%; overflow-wrap: break-word; white-space: pre-wrap; `; const STYLES_RIGHT = css` padding-left: 48px; padding-top: 24px; flex-shrink: 0; `; export default class SidebarSingleSlateSettings extends React.Component { state = { slatename: this.props.current.slatename, public: this.props.current.data.public, body: this.props.current.data.body, name: this.props.current.data.name, loading: false, }; _handleSubmit = async () => { this.setState({ loading: true }); const response = await Actions.updateSlate({ id: this.props.current.id, data: { name: this.state.name, public: this.state.public, body: this.state.body, }, }); if (!response) { alert("TODO: Server Error"); return this.setState({ loading: false }); } if (response.error) { alert(`TODO: ${response.decorator}`); return this.setState({ loading: false }); } await this.props.onSubmit({}); }; _handleCancel = () => { this.props.onCancel(); }; _handleChange = (e) => { this.setState({ [e.target.name]: e.target.value }); }; _handleDelete = async (e) => { this.setState({ loading: true }); if ( !window.confirm( "Are you sure you want to delete this Slate? This action is irreversible." ) ) { return this.setState({ loading: false }); } const response = await Actions.deleteSlate({ id: this.props.current.id, }); if (!response) { alert("TODO: Server Error"); return this.setState({ loading: false }); } if (response.error) { alert(`TODO: ${response.decorator}`); return this.setState({ loading: false }); } await this.props.onAction({ type: "NAVIGATE", value: "V1_NAVIGATION_SLATES", }); return await this.props.onRehydrate(); }; render() { console.log(this.props); const { slatename } = this.state; const slug = Strings.createSlug(this.state.name); const url = `/${this.props.viewer.username}/${slug}`; return ( Slate Settings Update settings for {this.props.current.slatename}. Changing the slatename will change your public slate URL. Your slate URL is:{" "} https://slate.host{url} } name="name" value={this.state.name} placeholder="Name" onChange={this._handleChange} onSubmit={this._handleSubmit} />
Save changes {!this.state.loading ? ( Cancel ) : null}
{!this.state.loading ? ( ) : null} {!this.state.loading ? (
Delete {this.props.current.slatename}
) : null} ); } }