@deephaven/dashboard-core-plugins 0.91.0 → 0.91.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/GridWidgetPlugin.d.ts +1 -1
- package/dist/GridWidgetPlugin.d.ts.map +1 -1
- package/dist/GridWidgetPlugin.js +24 -32
- package/dist/GridWidgetPlugin.js.map +1 -1
- package/dist/PandasWidgetPlugin.d.ts +1 -1
- package/dist/PandasWidgetPlugin.d.ts.map +1 -1
- package/dist/PandasWidgetPlugin.js +26 -55
- package/dist/PandasWidgetPlugin.js.map +1 -1
- package/dist/useIrisGridModel.d.ts +20 -0
- package/dist/useIrisGridModel.d.ts.map +1 -0
- package/dist/useIrisGridModel.js +96 -0
- package/dist/useIrisGridModel.js.map +1 -0
- package/package.json +23 -23
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { type WidgetComponentProps } from '@deephaven/plugin';
|
|
3
3
|
import { type dh } from '@deephaven/jsapi-types';
|
|
4
|
-
export declare function GridWidgetPlugin(
|
|
4
|
+
export declare function GridWidgetPlugin({ fetch, }: WidgetComponentProps<dh.Table>): JSX.Element | null;
|
|
5
5
|
export default GridWidgetPlugin;
|
|
6
6
|
//# sourceMappingURL=GridWidgetPlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/GridWidgetPlugin.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"GridWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/GridWidgetPlugin.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAQjD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,GACN,EAAE,oBAAoB,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAoBrD;AAED,eAAe,gBAAgB,CAAC"}
|
package/dist/GridWidgetPlugin.js
CHANGED
|
@@ -1,42 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
3
|
-
import { useEffect, useState } from 'react';
|
|
4
|
-
import { useApi } from '@deephaven/jsapi-bootstrap';
|
|
5
|
-
import { IrisGrid, IrisGridModelFactory } from '@deephaven/iris-grid';
|
|
1
|
+
import { IrisGrid } from '@deephaven/iris-grid';
|
|
6
2
|
import { useSelector } from 'react-redux';
|
|
7
3
|
import { getSettings } from '@deephaven/redux';
|
|
4
|
+
import { LoadingOverlay } from '@deephaven/components';
|
|
5
|
+
import { getErrorMessage } from '@deephaven/utils';
|
|
6
|
+
import { useIrisGridModel } from "./useIrisGridModel.js";
|
|
8
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
-
export function GridWidgetPlugin(
|
|
10
|
-
var dh = useApi();
|
|
11
|
-
var settings = useSelector(getSettings);
|
|
12
|
-
var [model, setModel] = useState();
|
|
8
|
+
export function GridWidgetPlugin(_ref) {
|
|
13
9
|
var {
|
|
14
10
|
fetch
|
|
15
|
-
} =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
cancelled = true;
|
|
34
|
-
};
|
|
35
|
-
}, [dh, fetch]);
|
|
36
|
-
return model ? /*#__PURE__*/_jsx(IrisGrid, {
|
|
11
|
+
} = _ref;
|
|
12
|
+
var settings = useSelector(getSettings);
|
|
13
|
+
var fetchResult = useIrisGridModel(fetch);
|
|
14
|
+
if (fetchResult.status === 'loading') {
|
|
15
|
+
return /*#__PURE__*/_jsx(LoadingOverlay, {
|
|
16
|
+
isLoading: true
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
if (fetchResult.status === 'error') {
|
|
20
|
+
return /*#__PURE__*/_jsx(LoadingOverlay, {
|
|
21
|
+
errorMessage: getErrorMessage(fetchResult.error),
|
|
22
|
+
isLoading: false
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
var {
|
|
26
|
+
model
|
|
27
|
+
} = fetchResult;
|
|
28
|
+
return /*#__PURE__*/_jsx(IrisGrid, {
|
|
37
29
|
model: model,
|
|
38
30
|
settings: settings
|
|
39
|
-
})
|
|
31
|
+
});
|
|
40
32
|
}
|
|
41
33
|
export default GridWidgetPlugin;
|
|
42
34
|
//# sourceMappingURL=GridWidgetPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridWidgetPlugin.js","names":["
|
|
1
|
+
{"version":3,"file":"GridWidgetPlugin.js","names":["IrisGrid","useSelector","getSettings","LoadingOverlay","getErrorMessage","useIrisGridModel","jsx","_jsx","GridWidgetPlugin","_ref","fetch","settings","fetchResult","status","isLoading","errorMessage","error","model"],"sources":["../src/GridWidgetPlugin.tsx"],"sourcesContent":["import { type WidgetComponentProps } from '@deephaven/plugin';\nimport { type dh } from '@deephaven/jsapi-types';\nimport { IrisGrid } from '@deephaven/iris-grid';\nimport { useSelector } from 'react-redux';\nimport { getSettings, RootState } from '@deephaven/redux';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { getErrorMessage } from '@deephaven/utils';\nimport { useIrisGridModel } from './useIrisGridModel';\n\nexport function GridWidgetPlugin({\n fetch,\n}: WidgetComponentProps<dh.Table>): JSX.Element | null {\n const settings = useSelector(getSettings<RootState>);\n\n const fetchResult = useIrisGridModel(fetch);\n\n if (fetchResult.status === 'loading') {\n return <LoadingOverlay isLoading />;\n }\n\n if (fetchResult.status === 'error') {\n return (\n <LoadingOverlay\n errorMessage={getErrorMessage(fetchResult.error)}\n isLoading={false}\n />\n );\n }\n\n const { model } = fetchResult;\n return <IrisGrid model={model} settings={settings} />;\n}\n\nexport default GridWidgetPlugin;\n"],"mappings":"AAEA,SAASA,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,WAAW,QAAmB,kBAAkB;AACzD,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,eAAe,QAAQ,kBAAkB;AAAC,SAC1CC,gBAAgB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEzB,OAAO,SAASC,gBAAgBA,CAAAC,IAAA,EAEuB;EAAA,IAFtB;IAC/BC;EAC8B,CAAC,GAAAD,IAAA;EAC/B,IAAME,QAAQ,GAAGV,WAAW,CAACC,WAAsB,CAAC;EAEpD,IAAMU,WAAW,GAAGP,gBAAgB,CAACK,KAAK,CAAC;EAE3C,IAAIE,WAAW,CAACC,MAAM,KAAK,SAAS,EAAE;IACpC,oBAAON,IAAA,CAACJ,cAAc;MAACW,SAAS;IAAA,CAAE,CAAC;EACrC;EAEA,IAAIF,WAAW,CAACC,MAAM,KAAK,OAAO,EAAE;IAClC,oBACEN,IAAA,CAACJ,cAAc;MACbY,YAAY,EAAEX,eAAe,CAACQ,WAAW,CAACI,KAAK,CAAE;MACjDF,SAAS,EAAE;IAAM,CAClB,CAAC;EAEN;EAEA,IAAM;IAAEG;EAAM,CAAC,GAAGL,WAAW;EAC7B,oBAAOL,IAAA,CAACP,QAAQ;IAACiB,KAAK,EAAEA,KAAM;IAACN,QAAQ,EAAEA;EAAS,CAAE,CAAC;AACvD;AAEA,eAAeH,gBAAgB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { WidgetComponentProps } from '@deephaven/plugin';
|
|
3
3
|
import { type dh } from '@deephaven/jsapi-types';
|
|
4
|
-
export declare function PandasWidgetPlugin(
|
|
4
|
+
export declare function PandasWidgetPlugin({ fetch, }: WidgetComponentProps<dh.Table>): JSX.Element | null;
|
|
5
5
|
export default PandasWidgetPlugin;
|
|
6
6
|
//# sourceMappingURL=PandasWidgetPlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PandasWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/PandasWidgetPlugin.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"PandasWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/PandasWidgetPlugin.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAOjD,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,GACN,EAAE,oBAAoB,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAsBrD;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,63 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
3
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
4
|
-
import IrisGrid, { IrisGridModelFactory } from '@deephaven/iris-grid';
|
|
5
|
-
import { useApi } from '@deephaven/jsapi-bootstrap';
|
|
1
|
+
import IrisGrid from '@deephaven/iris-grid';
|
|
6
2
|
import { LoadingOverlay } from '@deephaven/components';
|
|
3
|
+
import { getErrorMessage } from '@deephaven/utils';
|
|
7
4
|
import { PandasReloadButton } from "./panels/PandasReloadButton.js";
|
|
5
|
+
import { useIrisGridModel } from "./useIrisGridModel.js";
|
|
8
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
-
|
|
10
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
-
export function PandasWidgetPlugin(props) {
|
|
12
|
-
var dh = useApi();
|
|
13
|
-
var [model, setModel] = useState();
|
|
14
|
-
var [isLoading, setIsLoading] = useState(true);
|
|
15
|
-
var [isLoaded, setIsLoaded] = useState(false);
|
|
7
|
+
export function PandasWidgetPlugin(_ref) {
|
|
16
8
|
var {
|
|
17
9
|
fetch
|
|
18
|
-
} =
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
return
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
setIsLoading(false);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
return _init.apply(this, arguments);
|
|
44
|
-
}
|
|
45
|
-
init();
|
|
46
|
-
setIsLoading(true);
|
|
47
|
-
return () => {
|
|
48
|
-
cancelled = true;
|
|
49
|
-
};
|
|
50
|
-
}, [makeModel]);
|
|
51
|
-
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
52
|
-
children: [/*#__PURE__*/_jsx(LoadingOverlay, {
|
|
53
|
-
isLoaded: isLoaded,
|
|
54
|
-
isLoading: isLoading
|
|
55
|
-
}), model && /*#__PURE__*/_jsx(IrisGrid, {
|
|
56
|
-
model: model,
|
|
57
|
-
children: /*#__PURE__*/_jsx(PandasReloadButton, {
|
|
58
|
-
onClick: handleReload
|
|
59
|
-
})
|
|
60
|
-
})]
|
|
10
|
+
} = _ref;
|
|
11
|
+
var fetchResult = useIrisGridModel(fetch);
|
|
12
|
+
if (fetchResult.status === 'loading') {
|
|
13
|
+
return /*#__PURE__*/_jsx(LoadingOverlay, {
|
|
14
|
+
isLoading: true
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
if (fetchResult.status === 'error') {
|
|
18
|
+
return /*#__PURE__*/_jsx(LoadingOverlay, {
|
|
19
|
+
errorMessage: getErrorMessage(fetchResult.error),
|
|
20
|
+
isLoading: false
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
var {
|
|
24
|
+
model,
|
|
25
|
+
reload
|
|
26
|
+
} = fetchResult;
|
|
27
|
+
return /*#__PURE__*/_jsx(IrisGrid, {
|
|
28
|
+
model: model,
|
|
29
|
+
children: /*#__PURE__*/_jsx(PandasReloadButton, {
|
|
30
|
+
onClick: reload
|
|
31
|
+
})
|
|
61
32
|
});
|
|
62
33
|
}
|
|
63
34
|
export default PandasWidgetPlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PandasWidgetPlugin.js","names":["
|
|
1
|
+
{"version":3,"file":"PandasWidgetPlugin.js","names":["IrisGrid","LoadingOverlay","getErrorMessage","PandasReloadButton","useIrisGridModel","jsx","_jsx","PandasWidgetPlugin","_ref","fetch","fetchResult","status","isLoading","errorMessage","error","model","reload","children","onClick"],"sources":["../src/PandasWidgetPlugin.tsx"],"sourcesContent":["import { WidgetComponentProps } from '@deephaven/plugin';\nimport { type dh } from '@deephaven/jsapi-types';\nimport IrisGrid from '@deephaven/iris-grid';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { getErrorMessage } from '@deephaven/utils';\nimport { PandasReloadButton } from './panels/PandasReloadButton';\nimport { useIrisGridModel } from './useIrisGridModel';\n\nexport function PandasWidgetPlugin({\n fetch,\n}: WidgetComponentProps<dh.Table>): JSX.Element | null {\n const fetchResult = useIrisGridModel(fetch);\n\n if (fetchResult.status === 'loading') {\n return <LoadingOverlay isLoading />;\n }\n\n if (fetchResult.status === 'error') {\n return (\n <LoadingOverlay\n errorMessage={getErrorMessage(fetchResult.error)}\n isLoading={false}\n />\n );\n }\n\n const { model, reload } = fetchResult;\n return (\n <IrisGrid model={model}>\n <PandasReloadButton onClick={reload} />\n </IrisGrid>\n );\n}\n\nexport default PandasWidgetPlugin;\n"],"mappings":"AAEA,OAAOA,QAAQ,MAAM,sBAAsB;AAC3C,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,eAAe,QAAQ,kBAAkB;AAAC,SAC1CC,kBAAkB;AAAA,SAClBC,gBAAgB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEzB,OAAO,SAASC,kBAAkBA,CAAAC,IAAA,EAEqB;EAAA,IAFpB;IACjCC;EAC8B,CAAC,GAAAD,IAAA;EAC/B,IAAME,WAAW,GAAGN,gBAAgB,CAACK,KAAK,CAAC;EAE3C,IAAIC,WAAW,CAACC,MAAM,KAAK,SAAS,EAAE;IACpC,oBAAOL,IAAA,CAACL,cAAc;MAACW,SAAS;IAAA,CAAE,CAAC;EACrC;EAEA,IAAIF,WAAW,CAACC,MAAM,KAAK,OAAO,EAAE;IAClC,oBACEL,IAAA,CAACL,cAAc;MACbY,YAAY,EAAEX,eAAe,CAACQ,WAAW,CAACI,KAAK,CAAE;MACjDF,SAAS,EAAE;IAAM,CAClB,CAAC;EAEN;EAEA,IAAM;IAAEG,KAAK;IAAEC;EAAO,CAAC,GAAGN,WAAW;EACrC,oBACEJ,IAAA,CAACN,QAAQ;IAACe,KAAK,EAAEA,KAAM;IAAAE,QAAA,eACrBX,IAAA,CAACH,kBAAkB;MAACe,OAAO,EAAEF;IAAO,CAAE;EAAC,CAC/B,CAAC;AAEf;AAEA,eAAeT,kBAAkB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type dh } from '@deephaven/jsapi-types';
|
|
2
|
+
import { IrisGridModel } from '@deephaven/iris-grid';
|
|
3
|
+
export type IrisGridModelFetch = () => Promise<dh.Table>;
|
|
4
|
+
export type IrisGridModelFetchErrorResult = {
|
|
5
|
+
error: NonNullable<unknown>;
|
|
6
|
+
status: 'error';
|
|
7
|
+
};
|
|
8
|
+
export type IrisGridModelFetchLoadingResult = {
|
|
9
|
+
status: 'loading';
|
|
10
|
+
};
|
|
11
|
+
export type IrisGridModelFetchSuccessResult = {
|
|
12
|
+
status: 'success';
|
|
13
|
+
model: IrisGridModel;
|
|
14
|
+
};
|
|
15
|
+
export type IrisGridModelFetchResult = (IrisGridModelFetchErrorResult | IrisGridModelFetchLoadingResult | IrisGridModelFetchSuccessResult) & {
|
|
16
|
+
reload: () => void;
|
|
17
|
+
};
|
|
18
|
+
/** Pass in a table `fetch` function, will load the model and handle any errors */
|
|
19
|
+
export declare function useIrisGridModel(fetch: IrisGridModelFetch): IrisGridModelFetchResult;
|
|
20
|
+
//# sourceMappingURL=useIrisGridModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIrisGridModel.d.ts","sourceRoot":"","sources":["../src/useIrisGridModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAwB,MAAM,sBAAsB,CAAC;AAG3E,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEzD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CACnC,6BAA6B,GAC7B,+BAA+B,GAC/B,+BAA+B,CAClC,GAAG;IACF,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,kBAAkB,GACxB,wBAAwB,CAsF1B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
2
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
3
|
+
import { useApi } from '@deephaven/jsapi-bootstrap';
|
|
4
|
+
import { IrisGridModel, IrisGridModelFactory } from '@deephaven/iris-grid';
|
|
5
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
6
|
+
/** Pass in a table `fetch` function, will load the model and handle any errors */
|
|
7
|
+
export function useIrisGridModel(fetch) {
|
|
8
|
+
var dh = useApi();
|
|
9
|
+
var [model, setModel] = useState();
|
|
10
|
+
var [error, setError] = useState();
|
|
11
|
+
var [isLoading, setIsLoading] = useState(true);
|
|
12
|
+
var makeModel = useCallback( /*#__PURE__*/_asyncToGenerator(function* () {
|
|
13
|
+
var table = yield fetch();
|
|
14
|
+
return IrisGridModelFactory.makeModel(dh, table);
|
|
15
|
+
}), [dh, fetch]);
|
|
16
|
+
var reload = useCallback( /*#__PURE__*/_asyncToGenerator(function* () {
|
|
17
|
+
setIsLoading(true);
|
|
18
|
+
setError(undefined);
|
|
19
|
+
try {
|
|
20
|
+
var newModel = yield makeModel();
|
|
21
|
+
setModel(newModel);
|
|
22
|
+
setIsLoading(false);
|
|
23
|
+
} catch (e) {
|
|
24
|
+
setError(e);
|
|
25
|
+
setIsLoading(false);
|
|
26
|
+
}
|
|
27
|
+
}), [makeModel]);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
var cancelled = false;
|
|
30
|
+
function init() {
|
|
31
|
+
return _init.apply(this, arguments);
|
|
32
|
+
}
|
|
33
|
+
function _init() {
|
|
34
|
+
_init = _asyncToGenerator(function* () {
|
|
35
|
+
setIsLoading(true);
|
|
36
|
+
setError(undefined);
|
|
37
|
+
try {
|
|
38
|
+
var newModel = yield makeModel();
|
|
39
|
+
if (!cancelled) {
|
|
40
|
+
setModel(newModel);
|
|
41
|
+
setIsLoading(false);
|
|
42
|
+
}
|
|
43
|
+
} catch (e) {
|
|
44
|
+
if (!cancelled) {
|
|
45
|
+
setError(e);
|
|
46
|
+
setIsLoading(false);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return _init.apply(this, arguments);
|
|
51
|
+
}
|
|
52
|
+
init();
|
|
53
|
+
return () => {
|
|
54
|
+
cancelled = true;
|
|
55
|
+
};
|
|
56
|
+
}, [makeModel]);
|
|
57
|
+
useEffect(function startListeningModel() {
|
|
58
|
+
if (!model) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// If the table inside a widget is disconnected, then don't bother trying to listen to reconnect, just close it and show a message
|
|
63
|
+
// Widget closes the table already when it is disconnected, so no need to close it again
|
|
64
|
+
function handleDisconnect() {
|
|
65
|
+
setError(new Error('Table disconnected'));
|
|
66
|
+
setModel(undefined);
|
|
67
|
+
setIsLoading(false);
|
|
68
|
+
}
|
|
69
|
+
model.addEventListener(IrisGridModel.EVENT.DISCONNECT, handleDisconnect);
|
|
70
|
+
return () => {
|
|
71
|
+
model.removeEventListener(IrisGridModel.EVENT.DISCONNECT, handleDisconnect);
|
|
72
|
+
};
|
|
73
|
+
}, [model]);
|
|
74
|
+
if (isLoading) {
|
|
75
|
+
return {
|
|
76
|
+
reload,
|
|
77
|
+
status: 'loading'
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (error != null) {
|
|
81
|
+
return {
|
|
82
|
+
error,
|
|
83
|
+
reload,
|
|
84
|
+
status: 'error'
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
if (model != null) {
|
|
88
|
+
return {
|
|
89
|
+
model,
|
|
90
|
+
reload,
|
|
91
|
+
status: 'success'
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
throw new Error('Invalid state');
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=useIrisGridModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIrisGridModel.js","names":["useApi","IrisGridModel","IrisGridModelFactory","useCallback","useEffect","useState","useIrisGridModel","fetch","dh","model","setModel","error","setError","isLoading","setIsLoading","makeModel","_asyncToGenerator","table","reload","undefined","newModel","e","cancelled","init","_init","apply","arguments","startListeningModel","handleDisconnect","Error","addEventListener","EVENT","DISCONNECT","removeEventListener","status"],"sources":["../src/useIrisGridModel.ts"],"sourcesContent":["import { type dh } from '@deephaven/jsapi-types';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { IrisGridModel, IrisGridModelFactory } from '@deephaven/iris-grid';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport type IrisGridModelFetch = () => Promise<dh.Table>;\n\nexport type IrisGridModelFetchErrorResult = {\n error: NonNullable<unknown>;\n status: 'error';\n};\n\nexport type IrisGridModelFetchLoadingResult = {\n status: 'loading';\n};\n\nexport type IrisGridModelFetchSuccessResult = {\n status: 'success';\n model: IrisGridModel;\n};\n\nexport type IrisGridModelFetchResult = (\n | IrisGridModelFetchErrorResult\n | IrisGridModelFetchLoadingResult\n | IrisGridModelFetchSuccessResult\n) & {\n reload: () => void;\n};\n\n/** Pass in a table `fetch` function, will load the model and handle any errors */\nexport function useIrisGridModel(\n fetch: IrisGridModelFetch\n): IrisGridModelFetchResult {\n const dh = useApi();\n const [model, setModel] = useState<IrisGridModel>();\n const [error, setError] = useState<unknown>();\n const [isLoading, setIsLoading] = useState(true);\n\n const makeModel = useCallback(async () => {\n const table = await fetch();\n return IrisGridModelFactory.makeModel(dh, table);\n }, [dh, fetch]);\n\n const reload = useCallback(async () => {\n setIsLoading(true);\n setError(undefined);\n try {\n const newModel = await makeModel();\n setModel(newModel);\n setIsLoading(false);\n } catch (e) {\n setError(e);\n setIsLoading(false);\n }\n }, [makeModel]);\n\n useEffect(() => {\n let cancelled = false;\n async function init() {\n setIsLoading(true);\n setError(undefined);\n try {\n const newModel = await makeModel();\n if (!cancelled) {\n setModel(newModel);\n setIsLoading(false);\n }\n } catch (e) {\n if (!cancelled) {\n setError(e);\n setIsLoading(false);\n }\n }\n }\n\n init();\n\n return () => {\n cancelled = true;\n };\n }, [makeModel]);\n\n useEffect(\n function startListeningModel() {\n if (!model) {\n return;\n }\n\n // If the table inside a widget is disconnected, then don't bother trying to listen to reconnect, just close it and show a message\n // Widget closes the table already when it is disconnected, so no need to close it again\n function handleDisconnect() {\n setError(new Error('Table disconnected'));\n setModel(undefined);\n setIsLoading(false);\n }\n\n model.addEventListener(IrisGridModel.EVENT.DISCONNECT, handleDisconnect);\n\n return () => {\n model.removeEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n handleDisconnect\n );\n };\n },\n [model]\n );\n\n if (isLoading) {\n return { reload, status: 'loading' };\n }\n if (error != null) {\n return { error, reload, status: 'error' };\n }\n if (model != null) {\n return { model, reload, status: 'success' };\n }\n throw new Error('Invalid state');\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/dashboard-core-plugins",
|
|
3
|
-
"version": "0.91.
|
|
3
|
+
"version": "0.91.1-beta.2+dcc95f69",
|
|
4
4
|
"description": "Deephaven Dashboard Core Plugins",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -22,26 +22,26 @@
|
|
|
22
22
|
"build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@deephaven/chart": "^0.91.
|
|
26
|
-
"@deephaven/components": "^0.91.
|
|
27
|
-
"@deephaven/console": "^0.91.
|
|
28
|
-
"@deephaven/dashboard": "^0.91.
|
|
29
|
-
"@deephaven/file-explorer": "^0.91.
|
|
30
|
-
"@deephaven/filters": "^0.91.
|
|
31
|
-
"@deephaven/golden-layout": "^0.91.
|
|
32
|
-
"@deephaven/grid": "^0.91.
|
|
33
|
-
"@deephaven/icons": "^0.91.
|
|
34
|
-
"@deephaven/iris-grid": "^0.91.
|
|
35
|
-
"@deephaven/jsapi-bootstrap": "^0.91.
|
|
36
|
-
"@deephaven/jsapi-components": "^0.91.
|
|
25
|
+
"@deephaven/chart": "^0.91.1-beta.2+dcc95f69",
|
|
26
|
+
"@deephaven/components": "^0.91.1-beta.2+dcc95f69",
|
|
27
|
+
"@deephaven/console": "^0.91.1-beta.2+dcc95f69",
|
|
28
|
+
"@deephaven/dashboard": "^0.91.1-beta.2+dcc95f69",
|
|
29
|
+
"@deephaven/file-explorer": "^0.91.1-beta.2+dcc95f69",
|
|
30
|
+
"@deephaven/filters": "^0.91.1-beta.2+dcc95f69",
|
|
31
|
+
"@deephaven/golden-layout": "^0.91.1-beta.2+dcc95f69",
|
|
32
|
+
"@deephaven/grid": "^0.91.1-beta.2+dcc95f69",
|
|
33
|
+
"@deephaven/icons": "^0.91.1-beta.2+dcc95f69",
|
|
34
|
+
"@deephaven/iris-grid": "^0.91.1-beta.2+dcc95f69",
|
|
35
|
+
"@deephaven/jsapi-bootstrap": "^0.91.1-beta.2+dcc95f69",
|
|
36
|
+
"@deephaven/jsapi-components": "^0.91.1-beta.2+dcc95f69",
|
|
37
37
|
"@deephaven/jsapi-types": "^1.0.0-dev0.34.0",
|
|
38
|
-
"@deephaven/jsapi-utils": "^0.91.
|
|
39
|
-
"@deephaven/log": "^0.91.
|
|
40
|
-
"@deephaven/plugin": "^0.91.
|
|
41
|
-
"@deephaven/react-hooks": "^0.91.
|
|
42
|
-
"@deephaven/redux": "^0.91.
|
|
43
|
-
"@deephaven/storage": "^0.91.
|
|
44
|
-
"@deephaven/utils": "^0.91.
|
|
38
|
+
"@deephaven/jsapi-utils": "^0.91.1-beta.2+dcc95f69",
|
|
39
|
+
"@deephaven/log": "^0.91.1-beta.2+dcc95f69",
|
|
40
|
+
"@deephaven/plugin": "^0.91.1-beta.2+dcc95f69",
|
|
41
|
+
"@deephaven/react-hooks": "^0.91.1-beta.2+dcc95f69",
|
|
42
|
+
"@deephaven/redux": "^0.91.1-beta.2+dcc95f69",
|
|
43
|
+
"@deephaven/storage": "^0.91.1-beta.2+dcc95f69",
|
|
44
|
+
"@deephaven/utils": "^0.91.1-beta.2+dcc95f69",
|
|
45
45
|
"@fortawesome/react-fontawesome": "^0.2.0",
|
|
46
46
|
"classnames": "^2.3.1",
|
|
47
47
|
"fast-deep-equal": "^3.1.3",
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
"react-redux": "^7.2.4"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
|
-
"@deephaven/jsapi-shim": "^0.91.
|
|
69
|
-
"@deephaven/mocks": "^0.91.
|
|
68
|
+
"@deephaven/jsapi-shim": "^0.91.1-beta.2+dcc95f69",
|
|
69
|
+
"@deephaven/mocks": "^0.91.1-beta.2+dcc95f69"
|
|
70
70
|
},
|
|
71
71
|
"files": [
|
|
72
72
|
"dist",
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"publishConfig": {
|
|
79
79
|
"access": "public"
|
|
80
80
|
},
|
|
81
|
-
"gitHead": "
|
|
81
|
+
"gitHead": "dcc95f69ff3a94a0558093ed699f8147096b2556"
|
|
82
82
|
}
|