import { Component, linkEvent } from "inferno"; import { T } from "inferno-i18next-dess"; import { ApproveRegistrationApplication, RegistrationApplicationView, } from "lemmy-js-client"; import { i18n } from "../../i18next"; import { WebSocketService } from "../../services"; import { mdToHtml, myAuth, wsClient } from "../../utils"; import { PersonListing } from "../person/person-listing"; import { MarkdownTextArea } from "./markdown-textarea"; import { MomentTime } from "./moment-time"; interface RegistrationApplicationProps { application: RegistrationApplicationView; } interface RegistrationApplicationState { denyReason?: string; denyExpanded: boolean; } export class RegistrationApplication extends Component< RegistrationApplicationProps, RegistrationApplicationState > { state: RegistrationApplicationState = { denyReason: this.props.application.registration_application.deny_reason, denyExpanded: false, }; constructor(props: any, context: any) { super(props, context); this.handleDenyReasonChange = this.handleDenyReasonChange.bind(this); } render() { const a = this.props.application; const ra = this.props.application.registration_application; const accepted = a.creator_local_user.accepted_application; return (
{i18n.t("applicant")}:
{i18n.t("created")}:
{i18n.t("answer")}:
{a.admin && (
{accepted ? ( # ) : (
# {ra.deny_reason && (
{i18n.t("deny_reason")}:{" "}
)}
)}
)} {this.state.denyExpanded && (
)} {(!ra.admin_id || (ra.admin_id && !accepted)) && ( )} {(!ra.admin_id || (ra.admin_id && accepted)) && ( )}
); } handleApprove(i: RegistrationApplication) { const auth = myAuth(); if (auth) { i.setState({ denyExpanded: false }); const form: ApproveRegistrationApplication = { id: i.props.application.registration_application.id, approve: true, auth, }; WebSocketService.Instance.send( wsClient.approveRegistrationApplication(form) ); } } handleDeny(i: RegistrationApplication) { if (i.state.denyExpanded) { i.setState({ denyExpanded: false }); const auth = myAuth(); if (auth) { const form: ApproveRegistrationApplication = { id: i.props.application.registration_application.id, approve: false, deny_reason: i.state.denyReason, auth, }; WebSocketService.Instance.send( wsClient.approveRegistrationApplication(form) ); } } else { i.setState({ denyExpanded: true }); } } handleDenyReasonChange(val: string) { this.setState({ denyReason: val }); } }