@xyo-network/react-shared 2.40.0 → 2.40.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/cjs/components/Ellipsize.js +1 -1
- package/dist/cjs/components/Ellipsize.js.map +1 -1
- package/dist/cjs/components/TableCell/EllipsisTableCell.d.ts +2 -1
- package/dist/cjs/components/TableCell/EllipsisTableCell.d.ts.map +1 -1
- package/dist/cjs/components/TableCell/EllipsisTableCell.js +7 -5
- package/dist/cjs/components/TableCell/EllipsisTableCell.js.map +1 -1
- package/dist/cjs/components/TableCell/HashTableCell.d.ts.map +1 -1
- package/dist/cjs/components/TableCell/HashTableCell.js +8 -1
- package/dist/cjs/components/TableCell/HashTableCell.js.map +1 -1
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/index.js +1 -0
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/usePromise.d.ts +4 -0
- package/dist/cjs/hooks/usePromise.d.ts.map +1 -0
- package/dist/cjs/hooks/usePromise.js +71 -0
- package/dist/cjs/hooks/usePromise.js.map +1 -0
- package/dist/docs.json +1817 -1656
- package/dist/esm/components/Ellipsize.js +1 -1
- package/dist/esm/components/Ellipsize.js.map +1 -1
- package/dist/esm/components/TableCell/EllipsisTableCell.d.ts +2 -1
- package/dist/esm/components/TableCell/EllipsisTableCell.d.ts.map +1 -1
- package/dist/esm/components/TableCell/EllipsisTableCell.js +6 -3
- package/dist/esm/components/TableCell/EllipsisTableCell.js.map +1 -1
- package/dist/esm/components/TableCell/HashTableCell.d.ts.map +1 -1
- package/dist/esm/components/TableCell/HashTableCell.js +8 -1
- package/dist/esm/components/TableCell/HashTableCell.js.map +1 -1
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/usePromise.d.ts +4 -0
- package/dist/esm/hooks/usePromise.d.ts.map +1 -0
- package/dist/esm/hooks/usePromise.js +67 -0
- package/dist/esm/hooks/usePromise.js.map +1 -0
- package/package.json +2 -1
- package/src/components/Ellipsize.tsx +1 -1
- package/src/components/TableCell/EllipsisTableCell.tsx +7 -3
- package/src/components/TableCell/HashTableCell.tsx +12 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/usePromise.tsx +100 -0
|
@@ -63,7 +63,7 @@ const useClientHeight = () => {
|
|
|
63
63
|
export const EllipsizeBoxInner = forwardRef(({ children, ellipsisPosition = 'start', typographyProps, ...props }, ref) => {
|
|
64
64
|
// Allow syncing of :before pseudo element height with contentWrapHeight
|
|
65
65
|
const { contentWrapRef, contentWrapHeight } = useClientHeight();
|
|
66
|
-
return (_jsx(EllipsizeRoot, { beforeLineHeight: ref ? contentWrapHeight : undefined, ref: ref, ...props, children: _jsx(EllipsizeInnerWrap, { children: _jsx(EllipsizeContentWrap, { ref: contentWrapRef, component: 'span', ellipsisPosition: ellipsisPosition, ...typographyProps, children: children }) }) }));
|
|
66
|
+
return (_jsx(EllipsizeRoot, { beforeLineHeight: ref ? contentWrapHeight : undefined, ref: ref, ...props, children: _jsx(EllipsizeInnerWrap, { children: _jsx(EllipsizeContentWrap, { ref: contentWrapRef, component: 'span', ellipsisPosition: ellipsisPosition, variant: "body2", ...typographyProps, children: children }) }) }));
|
|
67
67
|
});
|
|
68
68
|
EllipsizeBoxInner.displayName = 'EllipsizeBox';
|
|
69
69
|
export const EllipsizeBox = EllipsizeBoxInner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ellipsize.js","sourceRoot":"","sources":["../../../src/components/Ellipsize.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Ellipsize.js","sourceRoot":"","sources":["../../../src/components/Ellipsize.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,5 +14,6 @@ export interface EllipsisTableCellProps extends TableCellProps {
|
|
|
14
14
|
to?: To;
|
|
15
15
|
value?: string;
|
|
16
16
|
}
|
|
17
|
-
export declare const
|
|
17
|
+
export declare const EllipsisTableCellWithRef: React.FC<WithChildren<EllipsisTableCellProps>>;
|
|
18
|
+
export declare const EllipsisTableCell: import("react").FC<WithChildren<EllipsisTableCellProps>>;
|
|
18
19
|
//# sourceMappingURL=EllipsisTableCell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EllipsisTableCell.d.ts","sourceRoot":"","sources":["../../../../src/components/TableCell/EllipsisTableCell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,cAAc,EAAE,MAAM,eAAe,CAAA;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"EllipsisTableCell.d.ts","sourceRoot":"","sources":["../../../../src/components/TableCell/EllipsisTableCell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,cAAc,EAAE,MAAM,eAAe,CAAA;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAYrC,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,EAAE,CAAA;IACP,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAgBlF,CAAA;AAGF,eAAO,MAAM,iBAAiB,0DAA2B,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { styled, TableCell } from '@mui/material';
|
|
3
3
|
import { LinkEx } from '@xylabs/react-link';
|
|
4
|
+
import { forwardRef } from 'react';
|
|
4
5
|
import { EllipsizeBox } from '../Ellipsize';
|
|
5
6
|
const EllipsisTableCellRoot = styled(TableCell, {
|
|
6
7
|
name: 'EllipsisTableCell',
|
|
@@ -9,7 +10,9 @@ const EllipsisTableCellRoot = styled(TableCell, {
|
|
|
9
10
|
})(({ width = '100%' }) => ({
|
|
10
11
|
width,
|
|
11
12
|
}));
|
|
12
|
-
export const
|
|
13
|
-
return (_jsx(EllipsisTableCellRoot, { ...props, children: _jsx(EllipsizeBox, { children: children ? (children) : href || to ? (_jsx(LinkEx, { title: value, to: to, href: href, target: href ? '_blank' : undefined, children: value })) : (value) }) }));
|
|
14
|
-
};
|
|
13
|
+
export const EllipsisTableCellWithRef = forwardRef(({ children, href, to, value, ...props }, ref) => {
|
|
14
|
+
return (_jsx(EllipsisTableCellRoot, { ref: ref, ...props, children: _jsx(EllipsizeBox, { children: children ? (children) : href || to ? (_jsx(LinkEx, { title: value, to: to, href: href, target: href ? '_blank' : undefined, children: value })) : (value) }) }));
|
|
15
|
+
});
|
|
16
|
+
EllipsisTableCellWithRef.displayName = 'EllipsisTableCell';
|
|
17
|
+
export const EllipsisTableCell = EllipsisTableCellWithRef;
|
|
15
18
|
//# sourceMappingURL=EllipsisTableCell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EllipsisTableCell.js","sourceRoot":"","sources":["../../../../src/components/TableCell/EllipsisTableCell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAkB,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"EllipsisTableCell.js","sourceRoot":"","sources":["../../../../src/components/TableCell/EllipsisTableCell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAkB,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAGlC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS,EAAE;IAC9C,IAAI,EAAE,mBAAmB;IACzB,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO;IAC7C,IAAI,EAAE,MAAM;CACb,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1B,KAAK;CACN,CAAC,CAAC,CAAA;AAeH,MAAM,CAAC,MAAM,wBAAwB,GAAmD,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAClJ,OAAO,CACL,KAAC,qBAAqB,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,YACxC,KAAC,YAAY,cACV,QAAQ,CAAC,CAAC,CAAC,CACV,QAAQ,CACT,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CACf,KAAC,MAAM,IAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,YAC1E,KAAK,GACC,CACV,CAAC,CAAC,CAAC,CACF,KAAK,CACN,GACY,GACO,CACzB,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,wBAAwB,CAAC,WAAW,GAAG,mBAAmB,CAAA;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HashTableCell.d.ts","sourceRoot":"","sources":["../../../../src/components/TableCell/HashTableCell.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"HashTableCell.d.ts","sourceRoot":"","sources":["../../../../src/components/TableCell/HashTableCell.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAqB,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE/E,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IAChE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoBtD,CAAA"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useXyoEvent } from '@xyo-network/react-event';
|
|
3
|
+
import { useRef } from 'react';
|
|
2
4
|
import { EllipsisTableCell } from './EllipsisTableCell';
|
|
3
5
|
export const HashTableCell = ({ value, archive, dataType, network, exploreDomain, ...props }) => {
|
|
6
|
+
const ref = useRef(null);
|
|
7
|
+
const [tableCellRef, dispatch] = useXyoEvent(undefined, ref);
|
|
4
8
|
const hashPath = `/${dataType}/hash/${value}?network=${network ?? 'main'}`;
|
|
5
9
|
const explorePath = archive ? `/archive/${archive}${hashPath}` : hashPath;
|
|
6
|
-
|
|
10
|
+
const handleCellClick = () => {
|
|
11
|
+
dispatch?.('hash', 'click', value);
|
|
12
|
+
};
|
|
13
|
+
return (_jsx(EllipsisTableCell, { onClick: handleCellClick, ref: tableCellRef, value: value, href: exploreDomain ? `${exploreDomain}${explorePath}}` : undefined, to: exploreDomain ? undefined : explorePath, ...props }));
|
|
7
14
|
};
|
|
8
15
|
//# sourceMappingURL=HashTableCell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HashTableCell.js","sourceRoot":"","sources":["../../../../src/components/TableCell/HashTableCell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAA0B,MAAM,qBAAqB,CAAA;AAS/E,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC5H,MAAM,QAAQ,GAAG,IAAI,QAAQ,SAAS,KAAK,YAAY,OAAO,IAAI,MAAM,EAAE,CAAA;IAC1E,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"HashTableCell.js","sourceRoot":"","sources":["../../../../src/components/TableCell/HashTableCell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,iBAAiB,EAA0B,MAAM,qBAAqB,CAAA;AAS/E,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC5H,MAAM,GAAG,GAAG,MAAM,CAA8B,IAAI,CAAC,CAAA;IACrD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAuB,SAAS,EAAE,GAAG,CAAC,CAAA;IAClF,MAAM,QAAQ,GAAG,IAAI,QAAQ,SAAS,KAAK,YAAY,OAAO,IAAI,MAAM,EAAE,CAAA;IAC1E,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;IAEzE,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IACpC,CAAC,CAAA;IAED,OAAO,CACL,KAAC,iBAAiB,IAChB,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,SAAS,EACnE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,KACvC,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
|
package/dist/esm/hooks/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePromise.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePromise.tsx"],"names":[],"mappings":"AAIA,aAAK,iBAAiB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AAwD3D,eAAO,MAAM,UAAU,iDAAkD,OAAO,EAAE,UAuCjF,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Inspired from https://github.com/bsonntag/react-use-promise
|
|
2
|
+
import { useEffect, useMemo, useReducer } from 'react';
|
|
3
|
+
const resolvePromise = (promise) => {
|
|
4
|
+
if (typeof promise === 'function') {
|
|
5
|
+
return promise();
|
|
6
|
+
}
|
|
7
|
+
return promise;
|
|
8
|
+
};
|
|
9
|
+
var State;
|
|
10
|
+
(function (State) {
|
|
11
|
+
State["pending"] = "pending";
|
|
12
|
+
State["rejected"] = "rejected";
|
|
13
|
+
State["resolved"] = "resolved";
|
|
14
|
+
})(State || (State = {}));
|
|
15
|
+
const defaultState = {
|
|
16
|
+
error: undefined,
|
|
17
|
+
result: undefined,
|
|
18
|
+
state: State.pending,
|
|
19
|
+
};
|
|
20
|
+
const reducer = (_state, action) => {
|
|
21
|
+
switch (action.type) {
|
|
22
|
+
case State.pending:
|
|
23
|
+
return defaultState;
|
|
24
|
+
case State.resolved:
|
|
25
|
+
return {
|
|
26
|
+
error: undefined,
|
|
27
|
+
result: action.payload,
|
|
28
|
+
state: State.resolved,
|
|
29
|
+
};
|
|
30
|
+
case State.rejected:
|
|
31
|
+
return {
|
|
32
|
+
error: action.payload,
|
|
33
|
+
result: undefined,
|
|
34
|
+
state: State.rejected,
|
|
35
|
+
};
|
|
36
|
+
default:
|
|
37
|
+
throw Error(`Error parsing action ${JSON.stringify(action, null, 2)}`);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
export const usePromise = (promiseArg, inputs = []) => {
|
|
41
|
+
const [{ error, result, state }, dispatch] = useReducer(reducer, defaultState);
|
|
42
|
+
const dependencies = useMemo(() => [promiseArg, ...inputs], [inputs, promiseArg]);
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
const promise = resolvePromise(promiseArg);
|
|
45
|
+
if (!promise) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
let canceled = false;
|
|
49
|
+
dispatch({ type: State.pending });
|
|
50
|
+
promise.then((result) => !canceled &&
|
|
51
|
+
dispatch({
|
|
52
|
+
payload: result,
|
|
53
|
+
type: State.resolved,
|
|
54
|
+
}), (error) => !canceled &&
|
|
55
|
+
dispatch({
|
|
56
|
+
payload: error,
|
|
57
|
+
type: State.rejected,
|
|
58
|
+
}));
|
|
59
|
+
return () => {
|
|
60
|
+
canceled = true;
|
|
61
|
+
};
|
|
62
|
+
// eslint can't inspect the array to verify dependencies are missing
|
|
63
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
64
|
+
}, dependencies);
|
|
65
|
+
return [result, error, state];
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=usePromise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePromise.js","sourceRoot":"","sources":["../../../src/hooks/usePromise.tsx"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAItD,MAAM,cAAc,GAAG,CAAK,OAA6B,EAAE,EAAE;IAC3D,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;QACjC,OAAO,OAAO,EAAE,CAAA;KACjB;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,IAAK,KAIJ;AAJD,WAAK,KAAK;IACR,4BAAmB,CAAA;IACnB,8BAAqB,CAAA;IACrB,8BAAqB,CAAA;AACvB,CAAC,EAJI,KAAK,KAAL,KAAK,QAIT;AAQD,MAAM,YAAY,GAAiB;IACjC,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,KAAK,CAAC,OAAO;CACrB,CAAA;AAMD,MAAM,OAAO,GAAG,CAAC,MAAoB,EAAE,MAAc,EAAE,EAAE;IACvD,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,KAAK,CAAC,OAAO;YAChB,OAAO,YAAY,CAAA;QAErB,KAAK,KAAK,CAAC,QAAQ;YACjB,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,MAAM,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,QAAQ;aACtB,CAAA;QAEH,KAAK,KAAK,CAAC,QAAQ;YACjB,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,OAAO;gBACrB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK,CAAC,QAAQ;aACtB,CAAA;QAEH;YACE,MAAM,KAAK,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;KACzE;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAK,UAAgC,EAAE,SAAoB,EAAE,EAAE,EAAE;IACzF,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAE9E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;IAEjF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,cAAc,CAAI,UAAU,CAAC,CAAA;QAE7C,IAAI,CAAC,OAAO,EAAE;YACZ,OAAM;SACP;QAED,IAAI,QAAQ,GAAG,KAAK,CAAA;QAEpB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAEjC,OAAO,CAAC,IAAI,CACV,CAAC,MAAM,EAAE,EAAE,CACT,CAAC,QAAQ;YACT,QAAQ,CAAC;gBACP,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,KAAK,CAAC,QAAQ;aACrB,CAAC,EACJ,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,QAAQ;YACT,QAAQ,CAAC;gBACP,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,KAAK,CAAC,QAAQ;aACrB,CAAC,CACL,CAAA;QAED,OAAO,GAAG,EAAE;YACV,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC,CAAA;QACD,oEAAoE;QACpE,uDAAuD;IACzD,CAAC,EAAE,YAAY,CAAC,CAAA;IAEhB,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;AAC/B,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"@xylabs/react-flexbox": "^2.15.1",
|
|
17
17
|
"@xylabs/react-link": "^2.15.1",
|
|
18
18
|
"@xylabs/react-shared": "^2.15.1",
|
|
19
|
+
"@xyo-network/react-event": "^2.40.2",
|
|
19
20
|
"tslib": "^2.4.1"
|
|
20
21
|
},
|
|
21
22
|
"peerDependencies": {
|
|
@@ -69,5 +70,5 @@
|
|
|
69
70
|
},
|
|
70
71
|
"sideEffects": false,
|
|
71
72
|
"types": "dist/esm/index.d.ts",
|
|
72
|
-
"version": "2.40.
|
|
73
|
+
"version": "2.40.2"
|
|
73
74
|
}
|
|
@@ -92,7 +92,7 @@ export const EllipsizeBoxInner: React.FC<WithChildren<EllipsizeBoxProps>> = forw
|
|
|
92
92
|
return (
|
|
93
93
|
<EllipsizeRoot beforeLineHeight={ref ? contentWrapHeight : undefined} ref={ref} {...props}>
|
|
94
94
|
<EllipsizeInnerWrap>
|
|
95
|
-
<EllipsizeContentWrap ref={contentWrapRef} component={'span'} ellipsisPosition={ellipsisPosition} {...typographyProps}>
|
|
95
|
+
<EllipsizeContentWrap ref={contentWrapRef} component={'span'} ellipsisPosition={ellipsisPosition} variant="body2" {...typographyProps}>
|
|
96
96
|
{children}
|
|
97
97
|
</EllipsizeContentWrap>
|
|
98
98
|
</EllipsizeInnerWrap>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { styled, TableCell, TableCellProps } from '@mui/material'
|
|
2
2
|
import { LinkEx } from '@xylabs/react-link'
|
|
3
3
|
import { WithChildren } from '@xylabs/react-shared'
|
|
4
|
+
import { forwardRef } from 'react'
|
|
4
5
|
import { To } from 'react-router-dom'
|
|
5
6
|
|
|
6
7
|
import { EllipsizeBox } from '../Ellipsize'
|
|
@@ -26,9 +27,9 @@ export interface EllipsisTableCellProps extends TableCellProps {
|
|
|
26
27
|
value?: string
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
export const
|
|
30
|
+
export const EllipsisTableCellWithRef: React.FC<WithChildren<EllipsisTableCellProps>> = forwardRef(({ children, href, to, value, ...props }, ref) => {
|
|
30
31
|
return (
|
|
31
|
-
<EllipsisTableCellRoot {...props}>
|
|
32
|
+
<EllipsisTableCellRoot ref={ref} {...props}>
|
|
32
33
|
<EllipsizeBox>
|
|
33
34
|
{children ? (
|
|
34
35
|
children
|
|
@@ -42,4 +43,7 @@ export const EllipsisTableCell: React.FC<WithChildren<EllipsisTableCellProps>> =
|
|
|
42
43
|
</EllipsizeBox>
|
|
43
44
|
</EllipsisTableCellRoot>
|
|
44
45
|
)
|
|
45
|
-
}
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
EllipsisTableCellWithRef.displayName = 'EllipsisTableCell'
|
|
49
|
+
export const EllipsisTableCell = EllipsisTableCellWithRef
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { useXyoEvent } from '@xyo-network/react-event'
|
|
2
|
+
import { useRef } from 'react'
|
|
3
|
+
|
|
1
4
|
import { EllipsisTableCell, EllipsisTableCellProps } from './EllipsisTableCell'
|
|
2
5
|
|
|
3
6
|
export interface HashTableCellProps extends EllipsisTableCellProps {
|
|
@@ -8,10 +11,19 @@ export interface HashTableCellProps extends EllipsisTableCellProps {
|
|
|
8
11
|
}
|
|
9
12
|
|
|
10
13
|
export const HashTableCell: React.FC<HashTableCellProps> = ({ value, archive, dataType, network, exploreDomain, ...props }) => {
|
|
14
|
+
const ref = useRef<HTMLTableCellElement | null>(null)
|
|
15
|
+
const [tableCellRef, dispatch] = useXyoEvent<HTMLTableCellElement>(undefined, ref)
|
|
11
16
|
const hashPath = `/${dataType}/hash/${value}?network=${network ?? 'main'}`
|
|
12
17
|
const explorePath = archive ? `/archive/${archive}${hashPath}` : hashPath
|
|
18
|
+
|
|
19
|
+
const handleCellClick = () => {
|
|
20
|
+
dispatch?.('hash', 'click', value)
|
|
21
|
+
}
|
|
22
|
+
|
|
13
23
|
return (
|
|
14
24
|
<EllipsisTableCell
|
|
25
|
+
onClick={handleCellClick}
|
|
26
|
+
ref={tableCellRef}
|
|
15
27
|
value={value}
|
|
16
28
|
href={exploreDomain ? `${exploreDomain}${explorePath}}` : undefined}
|
|
17
29
|
to={exploreDomain ? undefined : explorePath}
|
package/src/hooks/index.ts
CHANGED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// Inspired from https://github.com/bsonntag/react-use-promise
|
|
2
|
+
|
|
3
|
+
import { useEffect, useMemo, useReducer } from 'react'
|
|
4
|
+
|
|
5
|
+
type PromiseOrFunction<T> = Promise<T> | (() => Promise<T>)
|
|
6
|
+
|
|
7
|
+
const resolvePromise = <T,>(promise: PromiseOrFunction<T>) => {
|
|
8
|
+
if (typeof promise === 'function') {
|
|
9
|
+
return promise()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return promise
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
enum State {
|
|
16
|
+
pending = 'pending',
|
|
17
|
+
rejected = 'rejected',
|
|
18
|
+
resolved = 'resolved',
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface PromiseState<T = void> {
|
|
22
|
+
error?: Error
|
|
23
|
+
result?: T
|
|
24
|
+
state?: State
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const defaultState: PromiseState = {
|
|
28
|
+
error: undefined,
|
|
29
|
+
result: undefined,
|
|
30
|
+
state: State.pending,
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Since the resolved promise value can be anything, any seems appropriate
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
35
|
+
type Action = { type: State; payload?: any }
|
|
36
|
+
|
|
37
|
+
const reducer = (_state: PromiseState, action: Action) => {
|
|
38
|
+
switch (action.type) {
|
|
39
|
+
case State.pending:
|
|
40
|
+
return defaultState
|
|
41
|
+
|
|
42
|
+
case State.resolved:
|
|
43
|
+
return {
|
|
44
|
+
error: undefined,
|
|
45
|
+
result: action.payload,
|
|
46
|
+
state: State.resolved,
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
case State.rejected:
|
|
50
|
+
return {
|
|
51
|
+
error: action.payload,
|
|
52
|
+
result: undefined,
|
|
53
|
+
state: State.rejected,
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
default:
|
|
57
|
+
throw Error(`Error parsing action ${JSON.stringify(action, null, 2)}`)
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export const usePromise = <T,>(promiseArg: PromiseOrFunction<T>, inputs: unknown[] = []) => {
|
|
62
|
+
const [{ error, result, state }, dispatch] = useReducer(reducer, defaultState)
|
|
63
|
+
|
|
64
|
+
const dependencies = useMemo(() => [promiseArg, ...inputs], [inputs, promiseArg])
|
|
65
|
+
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
const promise = resolvePromise<T>(promiseArg)
|
|
68
|
+
|
|
69
|
+
if (!promise) {
|
|
70
|
+
return
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
let canceled = false
|
|
74
|
+
|
|
75
|
+
dispatch({ type: State.pending })
|
|
76
|
+
|
|
77
|
+
promise.then(
|
|
78
|
+
(result) =>
|
|
79
|
+
!canceled &&
|
|
80
|
+
dispatch({
|
|
81
|
+
payload: result,
|
|
82
|
+
type: State.resolved,
|
|
83
|
+
}),
|
|
84
|
+
(error) =>
|
|
85
|
+
!canceled &&
|
|
86
|
+
dispatch({
|
|
87
|
+
payload: error,
|
|
88
|
+
type: State.rejected,
|
|
89
|
+
}),
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
return () => {
|
|
93
|
+
canceled = true
|
|
94
|
+
}
|
|
95
|
+
// eslint can't inspect the array to verify dependencies are missing
|
|
96
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
97
|
+
}, dependencies)
|
|
98
|
+
|
|
99
|
+
return [result, error, state]
|
|
100
|
+
}
|