fix: override endpoint not used correctly
This commit is contained in:
parent
ed718e1458
commit
23dd403417
|
|
@ -8,8 +8,8 @@ export default function extendDiscussionState() {
|
||||||
override(DiscussionListState.prototype, 'loadPage', async function (this: DiscussionListState, original, page: number = 1) {
|
override(DiscussionListState.prototype, 'loadPage', async function (this: DiscussionListState, original, page: number = 1) {
|
||||||
const preloaded = app.data.apiDocument || null;
|
const preloaded = app.data.apiDocument || null;
|
||||||
|
|
||||||
// If existing payload is given or no search is made, fallback on native page.
|
// If existing payload is given fallback on native page.
|
||||||
if (preloaded || !this.requestParams()?.filter?.q) return original.call(this, page);
|
if (preloaded) return original.call(this, page);
|
||||||
|
|
||||||
const params = this.requestParams();
|
const params = this.requestParams();
|
||||||
params.page = {
|
params.page = {
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ export default class DiscussionsSearchSource implements SearchSource {
|
||||||
this.results.set(query, models);
|
this.results.set(query, models);
|
||||||
}
|
}
|
||||||
|
|
||||||
view(query: string): Mithril.Children {
|
view(query: string): Array<Mithril.Vnode> {
|
||||||
query = query.toLowerCase();
|
query = query.toLowerCase();
|
||||||
|
|
||||||
// Get results from map
|
// Get results from map
|
||||||
|
|
@ -54,7 +54,7 @@ export default class DiscussionsSearchSource implements SearchSource {
|
||||||
const mostRelevantPost = discussion.mostRelevantPost();
|
const mostRelevantPost = discussion.mostRelevantPost();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<li className="DiscussionSearchResult" data-index={`${this.type}${discussion.id()}`} key={`${this.type}${discussion.id()}`}>
|
<li className="DiscussionSearchResult" data-index={`${this.type}${discussion.id()}`}>
|
||||||
<Link href={app.route.discussion(discussion, mostRelevantPost && mostRelevantPost.number())}>
|
<Link href={app.route.discussion(discussion, mostRelevantPost && mostRelevantPost.number())}>
|
||||||
<div className="DiscussionSearchResult-title">{highlight(discussion.title(), query)}</div>
|
<div className="DiscussionSearchResult-title">{highlight(discussion.title(), query)}</div>
|
||||||
{!!mostRelevantPost && <div className="DiscussionSearchResult-excerpt">{highlight(mostRelevantPost.contentPlain(), query, 100)}</div>}
|
{!!mostRelevantPost && <div className="DiscussionSearchResult-excerpt">{highlight(mostRelevantPost.contentPlain(), query, 100)}</div>}
|
||||||
|
|
@ -63,16 +63,14 @@ export default class DiscussionsSearchSource implements SearchSource {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return [
|
||||||
<>
|
<li className="Dropdown-header">{app.translator.trans('core.forum.search.discussions_heading')}</li>,
|
||||||
<li className="Dropdown-header">{app.translator.trans('core.forum.search.discussions_heading')}</li>
|
|
||||||
<li>
|
<li>
|
||||||
<LinkButton icon="fas fa-search" href={app.route('index', { q: query })}>
|
<LinkButton icon="fas fa-search" href={app.route('index', { q: query })}>
|
||||||
{app.translator.trans('core.forum.search.all_discussions_button', { query })}
|
{app.translator.trans('core.forum.search.all_discussions_button', { query })}
|
||||||
</LinkButton>
|
</LinkButton>
|
||||||
</li>
|
</li>,
|
||||||
{results}
|
...results,
|
||||||
</>
|
];
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import app from 'flarum/forum/app';
|
import app from 'flarum/forum/app';
|
||||||
|
|
||||||
import Search from 'flarum/forum/components/Search';
|
import Search, { SearchAttrs, SearchSource } from 'flarum/forum/components/Search';
|
||||||
|
|
||||||
import { extend } from 'flarum/common/extend';
|
import { extend } from 'flarum/common/extend';
|
||||||
import ItemList from 'flarum/common/utils/ItemList';
|
import ItemList from 'flarum/common/utils/ItemList';
|
||||||
|
|
@ -9,12 +9,15 @@ import DiscussionsSearchSource from './SearchSources/DiscussionsSearchSource';
|
||||||
import extendDiscussionState from './PaginatedListStates/extendDiscussionState';
|
import extendDiscussionState from './PaginatedListStates/extendDiscussionState';
|
||||||
|
|
||||||
app.initializers.add('blomstra-search', () => {
|
app.initializers.add('blomstra-search', () => {
|
||||||
extend(Search.prototype, 'sourceItems', function (this: Search, items: ItemList) {
|
extend(Search.prototype, 'sourceItems', function (this: Search<SearchAttrs>, items: ItemList<SearchSource>) {
|
||||||
// items.remove('users');
|
items.setContent('discussions', new DiscussionsSearchSource());
|
||||||
items.remove('discussions');
|
|
||||||
|
|
||||||
items.add('discussions', new DiscussionsSearchSource());
|
|
||||||
});
|
});
|
||||||
|
|
||||||
extendDiscussionState();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.initializers.add(
|
||||||
|
'blomstra-search-early',
|
||||||
|
() => {
|
||||||
|
extendDiscussionState();
|
||||||
|
},
|
||||||
|
999999
|
||||||
|
);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue