1
0
mirror of https://github.com/flarum/core.git synced 2025-06-04 13:45:05 +02:00

Revert "chore: better typings for DiscussionListState"

This reverts commit e9b3d3d313e0f3b5357cbdd2d48a386a4e2a8e7d.
This commit is contained in:
David Wheatley 2021-10-27 17:17:01 +02:00
parent e9b3d3d313
commit 57d91b2d87
No known key found for this signature in database
GPG Key ID: DCC0FCE349280DFF

View File

@ -2,12 +2,6 @@ import app from '../../forum/app';
import PaginatedListState, { Page } from '../../common/states/PaginatedListState'; import PaginatedListState, { Page } from '../../common/states/PaginatedListState';
import Discussion from '../../common/models/Discussion'; import Discussion from '../../common/models/Discussion';
export interface IRequestParams {
include: string[];
filter: Record<string, string>;
sort?: string;
}
export default class DiscussionListState extends PaginatedListState<Discussion> { export default class DiscussionListState extends PaginatedListState<Discussion> {
protected extraDiscussions: Discussion[] = []; protected extraDiscussions: Discussion[] = [];
@ -19,24 +13,21 @@ export default class DiscussionListState extends PaginatedListState<Discussion>
return 'discussions'; return 'discussions';
} }
requestParams(): IRequestParams { requestParams() {
const params: IRequestParams = { const params: any = { include: ['user', 'lastPostedUser'], filter: this.params.filter || {} };
include: ['user', 'lastPostedUser'],
filter: this.params.filter || {},
};
params.sort = this.sortMap().get(this.params.sort); params.sort = this.sortMap()[this.params.sort];
if (this.params.q) { if (this.params.q) {
params.filter.q = this.params.q; params.filter.q = this.params.q;
params.include.push('mostRelevantPost', 'mostRelevantPost.user'); params.include.push('mostRelevantPost', 'mostRelevantPost.user');
} }
return params; return params;
} }
protected loadPage(page: number = 1): Promise<Discussion[]> { protected loadPage(page: number = 1): any {
const preloadedDiscussions = app.preloadedApiDocument() as Discussion[] | null; const preloadedDiscussions = app.preloadedApiDocument();
if (preloadedDiscussions) { if (preloadedDiscussions) {
this.initialLoading = false; this.initialLoading = false;
@ -47,7 +38,7 @@ export default class DiscussionListState extends PaginatedListState<Discussion>
return super.loadPage(page); return super.loadPage(page);
} }
clear(): void { clear() {
super.clear(); super.clear();
this.extraDiscussions = []; this.extraDiscussions = [];
@ -74,11 +65,11 @@ export default class DiscussionListState extends PaginatedListState<Discussion>
/** /**
* In the last request, has the user searched for a discussion? * In the last request, has the user searched for a discussion?
*/ */
isSearchResults(): boolean { isSearchResults() {
return !!this.params.q; return !!this.params.q;
} }
removeDiscussion(discussion: Discussion): void { removeDiscussion(discussion: Discussion) {
for (const page of this.pages) { for (const page of this.pages) {
const index = page.items.indexOf(discussion); const index = page.items.indexOf(discussion);
@ -100,7 +91,7 @@ export default class DiscussionListState extends PaginatedListState<Discussion>
/** /**
* Add a discussion to the top of the list. * Add a discussion to the top of the list.
*/ */
addDiscussion(discussion: Discussion): void { addDiscussion(discussion: Discussion) {
this.removeDiscussion(discussion); this.removeDiscussion(discussion);
this.extraDiscussions.unshift(discussion); this.extraDiscussions.unshift(discussion);