import { myAuthRequired } from "@utils/app"; import { capitalizeFirstLetter } from "@utils/helpers"; import { Component, InfernoMouseEvent, linkEvent } from "inferno"; import { EditSite, Tagline } from "lemmy-js-client"; import { i18n } from "../../i18next"; import { HtmlTags } from "../common/html-tags"; import { Icon, Spinner } from "../common/icon"; import { MarkdownTextArea } from "../common/markdown-textarea"; interface TaglineFormProps { taglines: Array; onSaveSite(form: EditSite): void; loading: boolean; } interface TaglineFormState { taglines: Array; editingRow?: number; } export class TaglineForm extends Component { state: TaglineFormState = { editingRow: undefined, taglines: this.props.taglines.map(x => x.content), }; constructor(props: any, context: any) { super(props, context); } get documentTitle(): string { return i18n.t("taglines"); } render() { return (
{i18n.t("taglines")}
{this.state.taglines.map((cv, index) => ( ))}
{this.state.editingRow == index && ( this.handleTaglineChange(this, index, s) } hideNavigationWarnings allLanguages={[]} siteLanguages={[]} /> )} {this.state.editingRow != index &&
{cv}
}
); } handleTaglineChange(i: TaglineForm, index: number, val: string) { if (i.state.taglines) { i.setState(prev => ({ ...prev, taglines: prev.taglines.map((tl, i) => (i === index ? val : tl)), })); } } handleDeleteTaglineClick(d: { i: TaglineForm; index: number }, event: any) { event.preventDefault(); d.i.setState(prev => ({ ...prev, taglines: prev.taglines.filter((_, i) => i !== d.index), editingRow: undefined, })); } handleEditTaglineClick(d: { i: TaglineForm; index: number }, event: any) { event.preventDefault(); if (this.state.editingRow == d.index) { d.i.setState({ editingRow: undefined }); } else { d.i.setState({ editingRow: d.index }); } } async handleSaveClick(i: TaglineForm) { i.props.onSaveSite({ taglines: i.state.taglines, auth: myAuthRequired(), }); } handleAddTaglineClick( i: TaglineForm, event: InfernoMouseEvent ) { event.preventDefault(); const newTaglines = [...i.state.taglines]; newTaglines.push(""); i.setState({ taglines: newTaglines, editingRow: newTaglines.length - 1, }); } }