frontend/src/js/actions/pages/loadPages.ts (13 lines of code) (raw):

import { ThunkAction } from "redux-thunk"; import { fetchPages } from "../../components/viewer/PageViewer/pageViewerApi"; import { GiantAction, PagesActionType } from "../../types/redux/GiantActions"; import { GiantState } from "../../types/redux/GiantState"; export function loadPages(uri: string, q?: string, maybeViewportTop?: number, maybeViewportBottom?: number): ThunkAction<void, GiantState, void, GiantAction> { const viewportTop = maybeViewportTop ?? 0; const viewportBottom = maybeViewportBottom ?? window.innerHeight; const pageApiUri = `/api/pages/text/${uri}`; return async dispatch => { const doc = await fetchPages(pageApiUri, viewportTop, viewportBottom, q); dispatch({ type: PagesActionType.SET_PAGES, doc }); }; }