(
database: databus.Database,
datasheetId: string,
successCb?: (datasheet?: databus.Datasheet) => void,
overWrite = false,
extra?: { recordIds: string[] },
failCb?: () => void,
)
| 3 | import { IClientStoreOptions } from './client_store_provider'; |
| 4 | |
| 5 | export function loadDatasheet( |
| 6 | database: databus.Database, |
| 7 | datasheetId: string, |
| 8 | successCb?: (datasheet?: databus.Datasheet) => void, |
| 9 | overWrite = false, |
| 10 | extra?: { recordIds: string[] }, |
| 11 | failCb?: () => void, |
| 12 | ) { |
| 13 | return async(dispatch: any, getState: () => IReduxState) => { |
| 14 | const state = getState(); |
| 15 | const datasheetState = Selectors.getDatasheet(state, datasheetId); |
| 16 | const { shareId, templateId, embedId } = state.pageParams; |
| 17 | const { recordIds } = extra || {}; |
| 18 | const datasheetLoading = Selectors.getDatasheetLoading(state, datasheetId); |
| 19 | |
| 20 | if (datasheetLoading) { |
| 21 | return; |
| 22 | } |
| 23 | |
| 24 | const needLoad = !datasheetState || datasheetState.isPartOfData || overWrite; |
| 25 | const datasheet = await database.getDatasheet(datasheetId, { |
| 26 | loadOptions: { |
| 27 | shareId, |
| 28 | templateId, |
| 29 | embedId, |
| 30 | recordIds, |
| 31 | dispatch, |
| 32 | getState, |
| 33 | needLoad, |
| 34 | } as IClientLoadDatasheetPackOptions, |
| 35 | storeOptions: { |
| 36 | // recordIds exsits means that only part of recordsIds data is needed @boris |
| 37 | isPartOfData: Boolean(recordIds), |
| 38 | needLoad, |
| 39 | } as IClientStoreOptions, |
| 40 | }); |
| 41 | if (datasheet) { |
| 42 | successCb?.(datasheet); |
| 43 | } else { |
| 44 | failCb?.(); |
| 45 | } |
| 46 | }; |
| 47 | } |
no test coverage detected