chore: format code

This commit is contained in:
David Wheatley 2021-10-13 19:31:05 +01:00
parent cfab9a65ca
commit d6efed3e77
No known key found for this signature in database
GPG Key ID: DCC0FCE349280DFF
2 changed files with 40 additions and 43 deletions

View File

@ -10,49 +10,46 @@ import type Mithril from 'mithril';
* the search dropdown. * the search dropdown.
*/ */
export default class Source implements SearchSource { export default class Source implements SearchSource {
protected results = new Map<string, unknown[]>(); protected results = new Map<string, unknown[]>();
search(query: string) { search(query: string) {
query = query.toLowerCase(); query = query.toLowerCase();
this.results.set(query, []); this.results.set(query, []);
const params = { const params = {
filter: { q: query }, filter: { q: query },
page: { limit: 3 }, page: { limit: 3 },
include: 'mostRelevantPost', include: 'mostRelevantPost',
}; };
return app.request( return app.request(app.forum.attribute('apiUrl') + '/blomstra/search', params).then((results) => this.results.set(query, results));
app.forum.attribute('apiUrl') + '/blomstra/search', }
params
).then((results) => this.results.set(query, results));
}
view(query: string): Array<Mithril.Vnode> { view(query: string): Array<Mithril.Vnode> {
query = query.toLowerCase(); query = query.toLowerCase();
const results = (this.results.get(query) || []).map((discussion: unknown) => { const results = (this.results.get(query) || []).map((discussion: unknown) => {
const mostRelevantPost = discussion.mostRelevantPost(); const mostRelevantPost = discussion.mostRelevantPost();
return ( return (
<li className="DiscussionSearchResult" data-index={'discussions' + discussion.id()}> <li className="DiscussionSearchResult" data-index={'discussions' + 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> : ''}
</Link> </Link>
</li> </li>
); );
}) as Array<Mithril.Vnode>; }) as Array<Mithril.Vnode>;
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,
]; ];
} }
} }

View File

@ -4,12 +4,12 @@ import Search from 'flarum/forum/components/Search';
import Source from './Source'; import Source from './Source';
app.initializers.add('blomstra-search', () => { app.initializers.add('blomstra-search', () => {
extend(Search.prototype, 'sourceItems', function (items) { extend(Search.prototype, 'sourceItems', function (items) {
items.remove('users'); items.remove('users');
items.remove('discussions'); items.remove('discussions');
items.add('discussions', new Source()); items.add('discussions', new Source());
console.log(items) console.log(items);
}); });
}); });