MCPcopy Create free account
hub / github.com/apitable/apitable / loadDatasheet

Function loadDatasheet

packages/widget-sdk/src/resource/databus/datasheet.ts:5–47  ·  view source on GitHub ↗
(
  database: databus.Database,
  datasheetId: string,
  successCb?: (datasheet?: databus.Datasheet) => void,
  overWrite = false,
  extra?: { recordIds: string[] },
  failCb?: () => void,
)

Source from the content-addressed store, hash-verified

3import { IClientStoreOptions } from './client_store_provider';
4
5export 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}

Callers 1

fetchResourceMethod · 0.90

Calls 1

getDatasheetMethod · 0.45

Tested by

no test coverage detected