Flow for all the files
This commit is contained in:
@ -1,23 +1,26 @@
|
||||
// @flow
|
||||
import { observable, action, runInAction } from 'mobx';
|
||||
import invariant from 'invariant';
|
||||
import { client } from 'utils/ApiClient';
|
||||
import type { Pagination, Document } from 'types';
|
||||
|
||||
class SearchStore {
|
||||
@observable documents;
|
||||
@observable pagination;
|
||||
@observable selectedDocument;
|
||||
@observable searchTerm;
|
||||
@observable documents: ?(Document[]);
|
||||
@observable pagination: Pagination;
|
||||
@observable searchTerm: ?string = null;
|
||||
|
||||
@observable isFetching = false;
|
||||
|
||||
/* Actions */
|
||||
|
||||
@action search = async query => {
|
||||
@action search = async (query: string) => {
|
||||
this.searchTerm = query;
|
||||
this.isFetching = true;
|
||||
|
||||
if (query) {
|
||||
try {
|
||||
const res = await client.get('/documents.search', { query });
|
||||
invariant(res && res.data && res.pagination, 'API response');
|
||||
const { data, pagination } = res;
|
||||
runInAction('search document', () => {
|
||||
this.documents = data;
|
||||
|
Reference in New Issue
Block a user