Merge branch 'use_http_client_dess' into use_http_client_2
This commit is contained in:
commit
c8d48ab24f
13 changed files with 96 additions and 188 deletions
|
@ -53,7 +53,7 @@
|
|||
"inferno-server": "^8.1.1",
|
||||
"isomorphic-cookie": "^1.2.4",
|
||||
"jwt-decode": "^3.1.2",
|
||||
"lemmy-js-client": "0.17.2-rc.23",
|
||||
"lemmy-js-client": "0.17.2-rc.24",
|
||||
"lodash": "^4.17.21",
|
||||
"markdown-it": "^13.0.1",
|
||||
"markdown-it-container": "^3.0.0",
|
||||
|
|
|
@ -1,16 +1,10 @@
|
|||
import { Component } from "inferno";
|
||||
import { T } from "inferno-i18next-dess";
|
||||
import { Link } from "inferno-router";
|
||||
import {
|
||||
CommentResponse,
|
||||
CreateComment,
|
||||
EditComment,
|
||||
Language,
|
||||
} from "lemmy-js-client";
|
||||
import { CreateComment, EditComment, Language } from "lemmy-js-client";
|
||||
import { i18n } from "../../i18next";
|
||||
import { CommentNodeI } from "../../interfaces";
|
||||
import { UserService } from "../../services";
|
||||
import { RequestState } from "../../services/HttpService";
|
||||
import { capitalizeFirstLetter, myAuthRequired } from "../../utils";
|
||||
import { Icon } from "../common/icon";
|
||||
import { MarkdownTextArea } from "../common/markdown-textarea";
|
||||
|
@ -27,9 +21,7 @@ interface CommentFormProps {
|
|||
onReplyCancel?(): void;
|
||||
allLanguages: Language[];
|
||||
siteLanguages: number[];
|
||||
onUpsertComment(
|
||||
form: EditComment | CreateComment
|
||||
): Promise<RequestState<CommentResponse>>;
|
||||
onUpsertComment(form: EditComment | CreateComment): void;
|
||||
}
|
||||
|
||||
export class CommentForm extends Component<CommentFormProps, any> {
|
||||
|
|
|
@ -9,7 +9,6 @@ import {
|
|||
BlockPerson,
|
||||
CommentId,
|
||||
CommentReplyView,
|
||||
CommentResponse,
|
||||
CommentView,
|
||||
CommunityModeratorView,
|
||||
CreateComment,
|
||||
|
@ -40,7 +39,6 @@ import {
|
|||
VoteType,
|
||||
} from "../../interfaces";
|
||||
import { UserService } from "../../services";
|
||||
import { RequestState } from "../../services/HttpService";
|
||||
import {
|
||||
amCommunityCreator,
|
||||
canAdmin,
|
||||
|
@ -128,12 +126,8 @@ interface CommentNodeProps {
|
|||
onSaveComment(form: SaveComment): void;
|
||||
onCommentReplyRead(form: MarkCommentReplyAsRead): void;
|
||||
onPersonMentionRead(form: MarkPersonMentionAsRead): void;
|
||||
onCreateComment(
|
||||
form: EditComment | CreateComment
|
||||
): Promise<RequestState<CommentResponse>>;
|
||||
onEditComment(
|
||||
form: EditComment | CreateComment
|
||||
): Promise<RequestState<CommentResponse>>;
|
||||
onCreateComment(form: EditComment | CreateComment): void;
|
||||
onEditComment(form: EditComment | CreateComment): void;
|
||||
onCommentVote(form: CreateCommentLike): void;
|
||||
onBlockPerson(form: BlockPerson): void;
|
||||
onDeleteComment(form: DeleteComment): void;
|
||||
|
|
|
@ -6,7 +6,6 @@ import {
|
|||
BanPerson,
|
||||
BlockPerson,
|
||||
CommentId,
|
||||
CommentResponse,
|
||||
CommunityModeratorView,
|
||||
CreateComment,
|
||||
CreateCommentLike,
|
||||
|
@ -26,7 +25,6 @@ import {
|
|||
TransferCommunity,
|
||||
} from "lemmy-js-client";
|
||||
import { CommentNodeI, CommentViewType } from "../../interfaces";
|
||||
import { RequestState } from "../../services/HttpService";
|
||||
import { CommentNode } from "./comment-node";
|
||||
|
||||
interface CommentNodesProps {
|
||||
|
@ -50,12 +48,8 @@ interface CommentNodesProps {
|
|||
onSaveComment(form: SaveComment): void;
|
||||
onCommentReplyRead(form: MarkCommentReplyAsRead): void;
|
||||
onPersonMentionRead(form: MarkPersonMentionAsRead): void;
|
||||
onCreateComment(
|
||||
form: EditComment | CreateComment
|
||||
): Promise<RequestState<CommentResponse>>;
|
||||
onEditComment(
|
||||
form: EditComment | CreateComment
|
||||
): Promise<RequestState<CommentResponse>>;
|
||||
onCreateComment(form: EditComment | CreateComment): void;
|
||||
onEditComment(form: EditComment | CreateComment): void;
|
||||
onCommentVote(form: CreateCommentLike): void;
|
||||
onBlockPerson(form: BlockPerson): void;
|
||||
onDeleteComment(form: DeleteComment): void;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import { Component, linkEvent } from "inferno";
|
||||
import { Prompt } from "inferno-router";
|
||||
import {
|
||||
CommunityResponse,
|
||||
CommunityView,
|
||||
CreateCommunity,
|
||||
EditCommunity,
|
||||
|
@ -9,7 +8,6 @@ import {
|
|||
} from "lemmy-js-client";
|
||||
import { Subscription } from "rxjs";
|
||||
import { i18n } from "../../i18next";
|
||||
import { RequestState } from "../../services/HttpService";
|
||||
import { capitalizeFirstLetter, myAuthRequired, randomStr } from "../../utils";
|
||||
import { Icon, Spinner } from "../common/icon";
|
||||
import { ImageUploadForm } from "../common/image-upload-form";
|
||||
|
@ -22,9 +20,7 @@ interface CommunityFormProps {
|
|||
siteLanguages: number[];
|
||||
communityLanguages?: number[];
|
||||
onCancel?(): any;
|
||||
onUpsertCommunity(
|
||||
form: CreateCommunity | EditCommunity
|
||||
): Promise<RequestState<CommunityResponse>>;
|
||||
onUpsertCommunity(form: CreateCommunity | EditCommunity): void;
|
||||
enableNsfw?: boolean;
|
||||
}
|
||||
|
||||
|
@ -288,7 +284,7 @@ export class CommunityForm extends Component<
|
|||
);
|
||||
}
|
||||
|
||||
async handleCreateCommunitySubmit(i: CommunityForm, event: any) {
|
||||
handleCreateCommunitySubmit(i: CommunityForm, event: any) {
|
||||
event.preventDefault();
|
||||
i.setState({ loading: true });
|
||||
const cForm = i.state.form;
|
||||
|
@ -297,7 +293,7 @@ export class CommunityForm extends Component<
|
|||
const cv = i.props.community_view;
|
||||
|
||||
if (cv) {
|
||||
await i.props.onUpsertCommunity({
|
||||
i.props.onUpsertCommunity({
|
||||
community_id: cv.community.id,
|
||||
title: cForm.title,
|
||||
description: cForm.description,
|
||||
|
@ -310,7 +306,7 @@ export class CommunityForm extends Component<
|
|||
});
|
||||
} else {
|
||||
if (cForm.title && cForm.name) {
|
||||
await i.props.onUpsertCommunity({
|
||||
i.props.onUpsertCommunity({
|
||||
name: cForm.name,
|
||||
title: cForm.title,
|
||||
description: cForm.description,
|
||||
|
@ -323,8 +319,6 @@ export class CommunityForm extends Component<
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
i.setState({ loading: false });
|
||||
}
|
||||
|
||||
handleCommunityNameChange(i: CommunityForm, event: any) {
|
||||
|
|
|
@ -4,7 +4,6 @@ import {
|
|||
AddModToCommunity,
|
||||
BlockCommunity,
|
||||
CommunityModeratorView,
|
||||
CommunityResponse,
|
||||
CommunityView,
|
||||
DeleteCommunity,
|
||||
EditCommunity,
|
||||
|
@ -16,7 +15,6 @@ import {
|
|||
} from "lemmy-js-client";
|
||||
import { i18n } from "../../i18next";
|
||||
import { UserService } from "../../services";
|
||||
import { RequestState } from "../../services/HttpService";
|
||||
import {
|
||||
amAdmin,
|
||||
amMod,
|
||||
|
@ -50,9 +48,7 @@ interface SidebarProps {
|
|||
onFollowCommunity(form: FollowCommunity): void;
|
||||
onBlockCommunity(form: BlockCommunity): void;
|
||||
onPurgeCommunity(form: PurgeCommunity): void;
|
||||
onEditCommunity(
|
||||
form: EditCommunity
|
||||
): Promise<RequestState<CommunityResponse>>;
|
||||
onEditCommunity(form: EditCommunity): void;
|
||||
}
|
||||
|
||||
interface SidebarState {
|
||||
|
|
|
@ -14,6 +14,7 @@ import { InitialFetchRequest } from "../../interfaces";
|
|||
import { HttpService, RequestState } from "../../services/HttpService";
|
||||
import {
|
||||
capitalizeFirstLetter,
|
||||
fetchThemeList,
|
||||
isInitialRoute,
|
||||
myAuthRequired,
|
||||
removeFromEmojiDataModel,
|
||||
|
@ -38,6 +39,7 @@ interface AdminSettingsState {
|
|||
instancesRes: RequestState<GetFederatedInstancesResponse>;
|
||||
bannedRes: RequestState<BannedPersonsResponse>;
|
||||
leaveAdminTeamRes: RequestState<GetSiteResponse>;
|
||||
themeList: string[];
|
||||
}
|
||||
|
||||
export class AdminSettings extends Component<any, AdminSettingsState> {
|
||||
|
@ -49,6 +51,7 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
|
|||
bannedRes: { state: "empty" },
|
||||
instancesRes: { state: "empty" },
|
||||
leaveAdminTeamRes: { state: "empty" },
|
||||
themeList: [],
|
||||
};
|
||||
|
||||
constructor(props: any, context: any) {
|
||||
|
@ -74,6 +77,7 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
|
|||
this.setState({
|
||||
bannedRes: { state: "loading" },
|
||||
instancesRes: { state: "loading" },
|
||||
themeList: [],
|
||||
});
|
||||
|
||||
const auth = myAuthRequired();
|
||||
|
@ -85,6 +89,7 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
|
|||
instancesRes: await HttpService.client.getFederatedInstances({
|
||||
auth,
|
||||
}),
|
||||
themeList: await fetchThemeList(),
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -144,6 +149,8 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
|
|||
allowedInstances={federationData?.allowed}
|
||||
blockedInstances={federationData?.blocked}
|
||||
onSaveSite={this.handleEditSite}
|
||||
siteRes={this.state.siteRes}
|
||||
themeList={this.state.themeList}
|
||||
/>
|
||||
</div>
|
||||
<div className="col-12 col-md-6">
|
||||
|
|
|
@ -9,7 +9,7 @@ import {
|
|||
import { i18n } from "../../i18next";
|
||||
import { UserService } from "../../services";
|
||||
import { HttpService, RequestState } from "../../services/HttpService";
|
||||
import { setIsoData } from "../../utils";
|
||||
import { fetchThemeList, setIsoData } from "../../utils";
|
||||
import { Spinner } from "../common/icon";
|
||||
import { SiteForm } from "./site-form";
|
||||
|
||||
|
@ -27,6 +27,7 @@ interface State {
|
|||
};
|
||||
doneRegisteringUser: boolean;
|
||||
registerRes: RequestState<LoginResponse>;
|
||||
themeList: string[];
|
||||
siteRes: GetSiteResponse;
|
||||
}
|
||||
|
||||
|
@ -35,6 +36,7 @@ export class Setup extends Component<any, State> {
|
|||
|
||||
state: State = {
|
||||
registerRes: { state: "empty" },
|
||||
themeList: [],
|
||||
form: {
|
||||
show_nsfw: true,
|
||||
},
|
||||
|
@ -48,6 +50,10 @@ export class Setup extends Component<any, State> {
|
|||
this.handleCreateSite = this.handleCreateSite.bind(this);
|
||||
}
|
||||
|
||||
async componentDidMount() {
|
||||
this.setState({ themeList: await fetchThemeList() });
|
||||
}
|
||||
|
||||
get documentTitle(): string {
|
||||
return `${i18n.t("setup")} - Lemmy`;
|
||||
}
|
||||
|
@ -62,7 +68,12 @@ export class Setup extends Component<any, State> {
|
|||
{!this.state.doneRegisteringUser ? (
|
||||
this.registerUser()
|
||||
) : (
|
||||
<SiteForm showLocal onSaveSite={this.handleCreateSite} />
|
||||
<SiteForm
|
||||
showLocal
|
||||
onSaveSite={this.handleCreateSite}
|
||||
siteRes={this.state.siteRes}
|
||||
themeList={this.state.themeList}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -11,16 +11,9 @@ import {
|
|||
GetSiteResponse,
|
||||
Instance,
|
||||
ListingType,
|
||||
SiteResponse,
|
||||
} from "lemmy-js-client";
|
||||
import { i18n } from "../../i18next";
|
||||
import { RequestState } from "../../services/HttpService";
|
||||
import {
|
||||
capitalizeFirstLetter,
|
||||
fetchThemeList,
|
||||
myAuthRequired,
|
||||
setIsoData,
|
||||
} from "../../utils";
|
||||
import { capitalizeFirstLetter, myAuthRequired } from "../../utils";
|
||||
import { Icon, Spinner } from "../common/icon";
|
||||
import { ImageUploadForm } from "../common/image-upload-form";
|
||||
import { LanguageSelect } from "../common/language-select";
|
||||
|
@ -31,29 +24,25 @@ interface SiteFormProps {
|
|||
blockedInstances?: Instance[];
|
||||
allowedInstances?: Instance[];
|
||||
showLocal?: boolean;
|
||||
onSaveSite(form: EditSite): Promise<RequestState<SiteResponse>>;
|
||||
themeList?: string[];
|
||||
onSaveSite(form: EditSite): void;
|
||||
siteRes: GetSiteResponse;
|
||||
}
|
||||
|
||||
interface SiteFormState {
|
||||
siteForm: EditSite;
|
||||
loading: boolean;
|
||||
themeList?: string[];
|
||||
instance_select: {
|
||||
allowed_instances: string;
|
||||
blocked_instances: string;
|
||||
};
|
||||
siteRes: GetSiteResponse;
|
||||
}
|
||||
|
||||
type InstanceKey = "allowed_instances" | "blocked_instances";
|
||||
|
||||
export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
||||
private isoData = setIsoData(this.context);
|
||||
state: SiteFormState = {
|
||||
siteRes: this.isoData.site_res,
|
||||
siteForm: {
|
||||
auth: "TODO",
|
||||
},
|
||||
siteForm: this.initSiteForm(),
|
||||
loading: false,
|
||||
instance_select: {
|
||||
allowed_instances: "",
|
||||
|
@ -61,6 +50,42 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
|||
},
|
||||
};
|
||||
|
||||
initSiteForm(): EditSite {
|
||||
const site = this.props.siteRes.site_view.site;
|
||||
const ls = this.props.siteRes.site_view.local_site;
|
||||
return {
|
||||
name: site.name,
|
||||
sidebar: site.sidebar,
|
||||
description: site.description,
|
||||
enable_downvotes: ls.enable_downvotes,
|
||||
registration_mode: ls.registration_mode,
|
||||
enable_nsfw: ls.enable_nsfw,
|
||||
community_creation_admin_only: ls.community_creation_admin_only,
|
||||
icon: site.icon,
|
||||
banner: site.banner,
|
||||
require_email_verification: ls.require_email_verification,
|
||||
application_question: ls.application_question,
|
||||
private_instance: ls.private_instance,
|
||||
default_theme: ls.default_theme,
|
||||
default_post_listing_type: ls.default_post_listing_type,
|
||||
legal_information: ls.legal_information,
|
||||
application_email_admins: ls.application_email_admins,
|
||||
reports_email_admins: ls.reports_email_admins,
|
||||
hide_modlog_mod_names: ls.hide_modlog_mod_names,
|
||||
discussion_languages: this.props.siteRes.discussion_languages,
|
||||
slur_filter_regex: ls.slur_filter_regex,
|
||||
actor_name_max_length: ls.actor_name_max_length,
|
||||
federation_enabled: ls.federation_enabled,
|
||||
federation_debug: ls.federation_debug,
|
||||
federation_worker_count: ls.federation_worker_count,
|
||||
captcha_enabled: ls.captcha_enabled,
|
||||
captcha_difficulty: ls.captcha_difficulty,
|
||||
allowed_instances: this.props.allowedInstances?.map(i => i.domain),
|
||||
blocked_instances: this.props.blockedInstances?.map(i => i.domain),
|
||||
auth: "TODO",
|
||||
};
|
||||
}
|
||||
|
||||
constructor(props: any, context: any) {
|
||||
super(props, context);
|
||||
|
||||
|
@ -83,47 +108,6 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
|||
this.handleAddInstance = this.handleAddInstance.bind(this);
|
||||
this.handleInstanceEnterPress = this.handleInstanceEnterPress.bind(this);
|
||||
this.handleInstanceTextChange = this.handleInstanceTextChange.bind(this);
|
||||
|
||||
const site = this.state.siteRes.site_view.site;
|
||||
const ls = this.state.siteRes.site_view.local_site;
|
||||
this.state = {
|
||||
...this.state,
|
||||
siteForm: {
|
||||
name: site.name,
|
||||
sidebar: site.sidebar,
|
||||
description: site.description,
|
||||
enable_downvotes: ls.enable_downvotes,
|
||||
registration_mode: ls.registration_mode,
|
||||
enable_nsfw: ls.enable_nsfw,
|
||||
community_creation_admin_only: ls.community_creation_admin_only,
|
||||
icon: site.icon,
|
||||
banner: site.banner,
|
||||
require_email_verification: ls.require_email_verification,
|
||||
application_question: ls.application_question,
|
||||
private_instance: ls.private_instance,
|
||||
default_theme: ls.default_theme,
|
||||
default_post_listing_type: ls.default_post_listing_type,
|
||||
legal_information: ls.legal_information,
|
||||
application_email_admins: ls.application_email_admins,
|
||||
reports_email_admins: ls.reports_email_admins,
|
||||
hide_modlog_mod_names: ls.hide_modlog_mod_names,
|
||||
discussion_languages: this.state.siteRes.discussion_languages,
|
||||
slur_filter_regex: ls.slur_filter_regex,
|
||||
actor_name_max_length: ls.actor_name_max_length,
|
||||
federation_enabled: ls.federation_enabled,
|
||||
federation_debug: ls.federation_debug,
|
||||
federation_worker_count: ls.federation_worker_count,
|
||||
captcha_enabled: ls.captcha_enabled,
|
||||
captcha_difficulty: ls.captcha_difficulty,
|
||||
allowed_instances: this.props.allowedInstances?.map(i => i.domain),
|
||||
blocked_instances: this.props.blockedInstances?.map(i => i.domain),
|
||||
auth: "TODO",
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
async componentDidMount() {
|
||||
this.setState({ themeList: await fetchThemeList() });
|
||||
}
|
||||
|
||||
// Necessary to stop the loading
|
||||
|
@ -134,7 +118,7 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
|||
componentDidUpdate() {
|
||||
if (
|
||||
!this.state.loading &&
|
||||
!this.state.siteRes.site_view.local_site.site_setup &&
|
||||
!this.props.siteRes.site_view.local_site.site_setup &&
|
||||
(this.state.siteForm.name ||
|
||||
this.state.siteForm.sidebar ||
|
||||
this.state.siteForm.application_question ||
|
||||
|
@ -151,7 +135,7 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
|||
}
|
||||
|
||||
render() {
|
||||
const siteSetup = this.state.siteRes.site_view.local_site.site_setup;
|
||||
const siteSetup = this.props.siteRes.site_view.local_site.site_setup;
|
||||
return (
|
||||
<>
|
||||
<Prompt
|
||||
|
@ -430,7 +414,7 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
|||
className="custom-select w-auto"
|
||||
>
|
||||
<option value="browser">{i18n.t("browser_default")}</option>
|
||||
{this.state.themeList?.map(theme => (
|
||||
{this.props.themeList?.map(theme => (
|
||||
<option key={theme} value={theme}>
|
||||
{theme}
|
||||
</option>
|
||||
|
@ -511,8 +495,8 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
|||
</div>
|
||||
</div>
|
||||
<LanguageSelect
|
||||
allLanguages={this.state.siteRes.all_languages}
|
||||
siteLanguages={this.state.siteRes.discussion_languages}
|
||||
allLanguages={this.props.siteRes.all_languages}
|
||||
siteLanguages={this.props.siteRes.discussion_languages}
|
||||
selectedLanguageIds={this.state.siteForm.discussion_languages}
|
||||
multiple={true}
|
||||
onChange={this.handleDiscussionLanguageChange}
|
||||
|
@ -748,7 +732,7 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
|||
}
|
||||
}
|
||||
|
||||
async handleSaveSiteSubmit(i: SiteForm, event: any) {
|
||||
handleSaveSiteSubmit(i: SiteForm, event: any) {
|
||||
event.preventDefault();
|
||||
const auth = myAuthRequired();
|
||||
i.setState(s => ((s.siteForm.auth = auth), s));
|
||||
|
@ -758,7 +742,7 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
|||
|
||||
let form: EditSite | CreateSite;
|
||||
|
||||
if (i.state.siteRes.site_view.local_site.site_setup) {
|
||||
if (i.props.siteRes.site_view.local_site.site_setup) {
|
||||
form = stateSiteForm;
|
||||
} else {
|
||||
form = {
|
||||
|
@ -810,13 +794,7 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
|||
};
|
||||
}
|
||||
|
||||
const res = await i.props.onSaveSite(form);
|
||||
|
||||
if (res.state === "success") {
|
||||
i.setState(s => ((s.siteRes.site_view = res.data.site_view), s));
|
||||
}
|
||||
|
||||
i.setState({ loading: false });
|
||||
i.props.onSaveSite(form);
|
||||
}
|
||||
|
||||
handleAddInstance(key: InstanceKey) {
|
||||
|
|
|
@ -6,7 +6,6 @@ import {
|
|||
BanPerson,
|
||||
BlockPerson,
|
||||
CommentId,
|
||||
CommentResponse,
|
||||
CommentView,
|
||||
CreateComment,
|
||||
CreateCommentLike,
|
||||
|
@ -37,7 +36,6 @@ import {
|
|||
TransferCommunity,
|
||||
} from "lemmy-js-client";
|
||||
import { CommentViewType, PersonDetailsView } from "../../interfaces";
|
||||
import { RequestState } from "../../services/HttpService";
|
||||
import { commentsToFlatNodes, setupTippy } from "../../utils";
|
||||
import { CommentNodes } from "../comment/comment-nodes";
|
||||
import { Paginator } from "../common/paginator";
|
||||
|
@ -59,8 +57,8 @@ interface PersonDetailsProps {
|
|||
onSaveComment(form: SaveComment): void;
|
||||
onCommentReplyRead(form: MarkCommentReplyAsRead): void;
|
||||
onPersonMentionRead(form: MarkPersonMentionAsRead): void;
|
||||
onCreateComment(form: CreateComment): Promise<RequestState<CommentResponse>>;
|
||||
onEditComment(form: EditComment): Promise<RequestState<CommentResponse>>;
|
||||
onCreateComment(form: CreateComment): void;
|
||||
onEditComment(form: EditComment): void;
|
||||
onCommentVote(form: CreateCommentLike): void;
|
||||
onBlockPerson(form: BlockPerson): void;
|
||||
onDeleteComment(form: DeleteComment): void;
|
||||
|
|
|
@ -1,11 +1,5 @@
|
|||
import { Component } from "inferno";
|
||||
import {
|
||||
GetSiteResponse,
|
||||
UserOperation,
|
||||
VerifyEmailResponse,
|
||||
wsJsonToRes,
|
||||
wsUserOp,
|
||||
} from "lemmy-js-client";
|
||||
import { GetSiteResponse, VerifyEmailResponse } from "lemmy-js-client";
|
||||
import { i18n } from "../../i18next";
|
||||
import { HttpService, RequestState } from "../../services/HttpService";
|
||||
import { setIsoData, toast } from "../../utils";
|
||||
|
@ -76,21 +70,4 @@ export class VerifyEmail extends Component<any, State> {
|
|||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
parseMessage(msg: any) {
|
||||
const op = wsUserOp(msg);
|
||||
console.log(msg);
|
||||
if (msg.error) {
|
||||
toast(i18n.t(msg.error), "danger");
|
||||
this.setState(this.state);
|
||||
this.props.history.push("/");
|
||||
return;
|
||||
} else if (op == UserOperation.VerifyEmail) {
|
||||
const data = wsJsonToRes(msg);
|
||||
if (data) {
|
||||
toast(i18n.t("email_verified"));
|
||||
this.props.history.push("/login");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,6 @@ import {
|
|||
EditPost,
|
||||
GetSiteMetadataResponse,
|
||||
Language,
|
||||
PostResponse,
|
||||
PostView,
|
||||
SearchResponse,
|
||||
} from "lemmy-js-client";
|
||||
|
@ -50,8 +49,8 @@ interface PostFormProps {
|
|||
siteLanguages: number[];
|
||||
params?: PostFormParams;
|
||||
onCancel?(): void;
|
||||
onCreate?(form: CreatePost): Promise<RequestState<PostResponse>>;
|
||||
onEdit?(form: EditPost): Promise<RequestState<PostResponse>>;
|
||||
onCreate?(form: CreatePost): void;
|
||||
onEdit?(form: EditPost): void;
|
||||
enableNsfw?: boolean;
|
||||
enableDownvotes?: boolean;
|
||||
selectedCommunityChoice?: Choice;
|
||||
|
@ -481,7 +480,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
|
|||
}
|
||||
}
|
||||
|
||||
async handlePostSubmit(i: PostForm, event: any) {
|
||||
handlePostSubmit(i: PostForm, event: any) {
|
||||
event.preventDefault();
|
||||
// Coerce empty url string to undefined
|
||||
if ((i.state.form.url ?? "blank") === "") {
|
||||
|
@ -493,7 +492,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
|
|||
const pForm = i.state.form;
|
||||
const pv = i.props.post_view;
|
||||
if (pv) {
|
||||
await i.props.onEdit?.({
|
||||
i.props.onEdit?.({
|
||||
name: pForm.name,
|
||||
url: pForm.url,
|
||||
body: pForm.body,
|
||||
|
@ -503,7 +502,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
|
|||
auth,
|
||||
});
|
||||
} else if (pForm.name && pForm.community_id) {
|
||||
await i.props.onCreate?.({
|
||||
i.props.onCreate?.({
|
||||
name: pForm.name,
|
||||
community_id: pForm.community_id,
|
||||
url: pForm.url,
|
||||
|
|
46
yarn.lock
46
yarn.lock
|
@ -3187,7 +3187,7 @@ debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
|
|||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
debuglog@*, debuglog@^1.0.1:
|
||||
debuglog@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
|
||||
integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==
|
||||
|
@ -4881,7 +4881,7 @@ import-sort@^6.0.0:
|
|||
is-builtin-module "^3.0.0"
|
||||
resolve "^1.8.1"
|
||||
|
||||
imurmurhash@*, imurmurhash@^0.1.4:
|
||||
imurmurhash@^0.1.4:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
|
||||
integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
|
||||
|
@ -5615,10 +5615,10 @@ leac@^0.6.0:
|
|||
resolved "https://registry.yarnpkg.com/leac/-/leac-0.6.0.tgz#dcf136e382e666bd2475f44a1096061b70dc0912"
|
||||
integrity sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==
|
||||
|
||||
lemmy-js-client@0.17.2-rc.23:
|
||||
version "0.17.2-rc.23"
|
||||
resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.17.2-rc.23.tgz#7e3e2d2ba82b721a9dc092e687874eebeb080637"
|
||||
integrity sha512-MXUg2s9CZbH5+G53RvfM9M/UnPtH+LnnMc05sWRNVkKDnpl1nHudIrbRTqOOJNikTf1sJLxGvUOi8TTDJ3OSdQ==
|
||||
lemmy-js-client@0.17.2-rc.24:
|
||||
version "0.17.2-rc.24"
|
||||
resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.17.2-rc.24.tgz#3b09233a6d89286e559be2e840d81c0c549562ad"
|
||||
integrity sha512-aSHz7UTcwnwnNd9poY8tEXP7RA9ieZm9MAfSljcbCNU5ds9CASXYNodmraUVJiqCmT4HWnj7IeVmBC9r7nTHnw==
|
||||
dependencies:
|
||||
cross-fetch "^3.1.5"
|
||||
form-data "^4.0.0"
|
||||
|
@ -5764,11 +5764,6 @@ lockfile@^1.0.4:
|
|||
dependencies:
|
||||
signal-exit "^3.0.2"
|
||||
|
||||
lodash._baseindexof@*:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c"
|
||||
integrity sha512-bSYo8Pc/f0qAkr8fPJydpJjtrHiSynYfYBjtANIgXv5xEf1WlTC63dIDlgu0s9dmTvzRu1+JJTxcIAHe+sH0FQ==
|
||||
|
||||
lodash._baseuniq@~4.6.0:
|
||||
version "4.6.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
|
||||
|
@ -5777,33 +5772,11 @@ lodash._baseuniq@~4.6.0:
|
|||
lodash._createset "~4.0.0"
|
||||
lodash._root "~3.0.0"
|
||||
|
||||
lodash._bindcallback@*:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
|
||||
integrity sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ==
|
||||
|
||||
lodash._cacheindexof@*:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92"
|
||||
integrity sha512-S8dUjWr7SUT/X6TBIQ/OYoCHo1Stu1ZRy6uMUSKqzFnZp5G5RyQizSm6kvxD2Ewyy6AVfMg4AToeZzKfF99T5w==
|
||||
|
||||
lodash._createcache@*:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093"
|
||||
integrity sha512-ev5SP+iFpZOugyab/DEUQxUeZP5qyciVTlgQ1f4Vlw7VUcCD8fVnyIqVUEIaoFH9zjAqdgi69KiofzvVmda/ZQ==
|
||||
dependencies:
|
||||
lodash._getnative "^3.0.0"
|
||||
|
||||
lodash._createset@~4.0.0:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
|
||||
integrity sha512-GTkC6YMprrJZCYU3zcqZj+jkXkrXzq3IPBcF/fIPpNEAB4hZEtXU8zp/RwKOvZl43NUmwDbyRk3+ZTbeRdEBXA==
|
||||
|
||||
lodash._getnative@*, lodash._getnative@^3.0.0:
|
||||
version "3.9.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
|
||||
integrity sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==
|
||||
|
||||
lodash._root@~3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
|
||||
|
@ -5829,11 +5802,6 @@ lodash.pick@^4.4.0:
|
|||
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
|
||||
integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==
|
||||
|
||||
lodash.restparam@*:
|
||||
version "3.6.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
|
||||
integrity sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==
|
||||
|
||||
lodash.sortby@^4.7.0:
|
||||
version "4.7.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
|
||||
|
@ -7590,7 +7558,7 @@ readable-stream@~1.1.10:
|
|||
isarray "0.0.1"
|
||||
string_decoder "~0.10.x"
|
||||
|
||||
readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0:
|
||||
readdir-scoped-modules@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309"
|
||||
integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==
|
||||
|
|
Loading…
Reference in a new issue