@arcblock/ux 2.5.58 → 2.5.60
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/lib/ActionButton/index.js +20 -39
- package/lib/ActivityIndicator/index.js +20 -41
- package/lib/Address/compact-text.js +16 -38
- package/lib/Address/did-address.js +22 -51
- package/lib/Address/index.js +6 -19
- package/lib/Address/responsive-did-address.js +20 -36
- package/lib/Alert/index.js +12 -34
- package/lib/AnimationWaiter/index.js +35 -59
- package/lib/Async/index.js +5 -19
- package/lib/Avatar/did-motif.js +12 -26
- package/lib/Avatar/etherscan-blockies.js +2 -20
- package/lib/Avatar/index.js +28 -54
- package/lib/Badge/index.js +12 -33
- package/lib/Blocklet/blocklet.js +20 -47
- package/lib/Blocklet/index.js +0 -6
- package/lib/Blocklet/utils.js +0 -6
- package/lib/BlockletNFT/index.js +37 -67
- package/lib/Button/index.js +0 -4
- package/lib/Button/wrap.js +19 -38
- package/lib/ButtonGroup/index.js +0 -5
- package/lib/CardSelector/index.js +9 -22
- package/lib/Center/index.js +2 -12
- package/lib/ClickToCopy/copy-button.js +9 -26
- package/lib/ClickToCopy/hook.js +0 -10
- package/lib/ClickToCopy/index.js +13 -41
- package/lib/CodeBlock/LightBox.js +1 -6
- package/lib/CodeBlock/index.js +12 -80
- package/lib/Colors/index.js +0 -2
- package/lib/Colors/themes/default.js +2 -3
- package/lib/ContactForm/index.js +5 -35
- package/lib/CookieConsent/index.js +10 -32
- package/lib/CountDown/index.js +10 -35
- package/lib/DID/index.js +8 -32
- package/lib/Datatable/CustomToolbar.js +9 -56
- package/lib/Datatable/DatatableContext.js +2 -5
- package/lib/Datatable/TableSearch.js +0 -21
- package/lib/Datatable/index.js +76 -152
- package/lib/Datatable/utils.js +14 -27
- package/lib/Dialog/confirm.js +18 -31
- package/lib/Dialog/dialog.js +24 -50
- package/lib/Dialog/index.js +0 -3
- package/lib/DidLogo/index.js +0 -7
- package/lib/DriftBot/index.js +1 -12
- package/lib/Earth/index.js +17 -58
- package/lib/Earth/util.js +0 -7
- package/lib/Empty/index.js +9 -23
- package/lib/ErrorBoundary/fallback.js +0 -14
- package/lib/ErrorBoundary/index.js +0 -2
- package/lib/Footer/index.js +1 -14
- package/lib/Header/auto-hidden.js +9 -23
- package/lib/Header/header.js +19 -38
- package/lib/Header/index.js +0 -3
- package/lib/Header/responsive-header.js +16 -40
- package/lib/Icon/image.js +12 -26
- package/lib/Icon/index.js +15 -34
- package/lib/Img/index.js +32 -54
- package/lib/InfoRow/index.js +11 -27
- package/lib/Layout/dashboard/external-link.js +13 -30
- package/lib/Layout/dashboard/full-page.js +8 -24
- package/lib/Layout/dashboard/index.js +28 -72
- package/lib/Layout/dashboard/sidebar.js +11 -31
- package/lib/Layout/dashboard-legacy/header.js +14 -36
- package/lib/Layout/dashboard-legacy/index.js +19 -44
- package/lib/Layout/dashboard-legacy/sidebar.js +10 -32
- package/lib/Layout/index.js +18 -52
- package/lib/Locale/browser-lang.js +6 -19
- package/lib/Locale/context.js +15 -51
- package/lib/Locale/languages.js +3 -7
- package/lib/Locale/selector.js +11 -44
- package/lib/Locale/util.js +0 -10
- package/lib/Logo/index.js +10 -33
- package/lib/Metric/index.js +1 -9
- package/lib/NFTDisplay/aspect-ratio-container.js +7 -20
- package/lib/NFTDisplay/broken.js +0 -8
- package/lib/NFTDisplay/index.js +63 -110
- package/lib/NFTDisplay/loading.js +0 -6
- package/lib/NFTDisplay/svg-embedder/img.js +9 -22
- package/lib/NFTDisplay/svg-embedder/inline-svg.js +9 -23
- package/lib/NavMenu/index.js +0 -2
- package/lib/NavMenu/nav-menu.js +40 -69
- package/lib/NavMenu/style.js +1 -5
- package/lib/PageScroller/index.js +9 -39
- package/lib/PageScroller/story/FifthComponent.js +0 -2
- package/lib/PageScroller/story/FirstComponent.js +0 -2
- package/lib/PageScroller/story/FourthComponent.js +0 -2
- package/lib/PageScroller/story/FullPage.js +1 -14
- package/lib/PageScroller/story/PageContain.js +1 -14
- package/lib/PageScroller/story/SecondComponent.js +0 -2
- package/lib/PageScroller/story/ThirdComponent.js +0 -2
- package/lib/PageScroller/usePrevValue.js +1 -2
- package/lib/PricingTable/PricingPlan.js +0 -12
- package/lib/PricingTable/index.js +0 -14
- package/lib/QRCode/index.js +14 -24
- package/lib/RelativeTime/index.js +12 -45
- package/lib/Result/common.js +43 -63
- package/lib/Result/index.js +6 -23
- package/lib/Result/result.js +9 -23
- package/lib/Screenshot/BaseScreenshot/index.js +9 -26
- package/lib/Screenshot/BaseScreenshot/shells/Macbook.js +9 -10
- package/lib/Screenshot/BaseScreenshot/shells/Phone.js +3 -8
- package/lib/Screenshot/index.js +32 -65
- package/lib/SessionManager/federated-login-detecter.js +171 -0
- package/lib/SessionManager/index.js +189 -271
- package/lib/SessionManager/user-popper.js +83 -0
- package/lib/Sparkline/index.js +40 -42
- package/lib/Spinner/index.js +12 -23
- package/lib/SplitButton/index.js +20 -48
- package/lib/Switch/index.js +7 -22
- package/lib/Tabs/index.js +8 -22
- package/lib/Tag/index.js +13 -33
- package/lib/TextCollapse/index.js +14 -31
- package/lib/Theme/index.js +3 -13
- package/lib/Theme/theme-provider.js +1 -10
- package/lib/Theme/theme.js +15 -27
- package/lib/Toast/index.js +13 -40
- package/lib/Util/deprecate.js +3 -12
- package/lib/Util/index.js +13 -74
- package/lib/Util/wallet.js +3 -10
- package/lib/Video/index.js +3 -19
- package/lib/Wallet/Action.js +9 -28
- package/lib/Wallet/Download.js +11 -36
- package/lib/Wallet/Open.js +0 -12
- package/lib/WebWalletSWKeeper/index.js +30 -55
- package/lib/WechatPrompt/index.js +0 -16
- package/lib/index.js +0 -38
- package/lib/withTheme/index.js +3 -15
- package/lib/withTracker/error_boundary.js +3 -14
- package/lib/withTracker/index.js +3 -24
- package/package.json +5 -5
- package/src/Blocklet/blocklet.js +1 -1
- package/src/BlockletNFT/index.js +1 -1
- package/src/NFTDisplay/index.js +4 -4
- package/src/SessionManager/federated-login-detecter.jsx +138 -0
- package/src/SessionManager/index.jsx +140 -233
- package/src/SessionManager/user-popper.jsx +121 -0
package/lib/BlockletNFT/index.js
CHANGED
@@ -4,71 +4,47 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = BlockletNFT;
|
7
|
-
|
8
7
|
var _react = require("react");
|
9
|
-
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
11
|
-
|
12
9
|
var _Portal = _interopRequireDefault(require("@mui/material/Portal"));
|
13
|
-
|
14
10
|
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
15
|
-
|
16
11
|
var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
|
17
|
-
|
18
12
|
var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery"));
|
19
|
-
|
20
|
-
var _Avatar = _interopRequireDefault(require("@arcblock/did-connect/lib/Avatar"));
|
21
|
-
|
13
|
+
var _Avatar = _interopRequireDefault(require("../Avatar"));
|
22
14
|
var _Icon = _interopRequireDefault(require("../Icon"));
|
23
|
-
|
24
15
|
var _Button = _interopRequireDefault(require("../Button"));
|
25
|
-
|
26
16
|
var _Img = _interopRequireDefault(require("../Img"));
|
27
|
-
|
28
17
|
var _Theme = require("../Theme");
|
29
|
-
|
30
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
31
|
-
|
32
19
|
const _excluded = ["title", "did", "description", "cover", "size", "addons", "button", "buttonText", "buttonDisabled", "buttonLoading", "isStickyButton", "onButtonClick", "onMainClick", "onTagClick", "className", "scaleClickZone"];
|
33
|
-
|
34
20
|
var _templateObject;
|
35
|
-
|
36
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
37
|
-
|
38
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
39
|
-
|
40
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
41
|
-
|
42
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
43
|
-
|
44
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
45
|
-
|
46
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
47
|
-
|
48
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
49
|
-
|
50
21
|
/**
|
51
22
|
* 美化数字 1000-->1k
|
52
23
|
* @param {*} _size
|
53
24
|
* @param {*} digits
|
54
25
|
* @returns
|
55
26
|
*/
|
27
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
29
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
30
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
31
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
32
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
33
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
34
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
35
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
56
36
|
function prettySize(_size) {
|
57
37
|
let digits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
58
38
|
let size = _size;
|
59
39
|
const list = ['', 'k', 'm', 'b'];
|
60
40
|
let index = 0;
|
61
|
-
|
62
41
|
while (size > 1000 && index < list.length - 1) {
|
63
42
|
size = (size / 1000).toFixed(digits);
|
64
43
|
index += 1;
|
65
44
|
}
|
66
|
-
|
67
45
|
return _size && "".concat(size).concat(list[index]);
|
68
46
|
}
|
69
|
-
|
70
47
|
const Div = (0, _Theme.styled)('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n &.arcblock-blocklet {\n padding: 0 16px;\n background: ", ";\n overflow: hidden;\n box-shadow: 0px 0px 8px #f0f0f0;\n &:hover {\n box-shadow: 0px 2px 12px #f0f0f0;\n }\n }\n .arcblock-blocklet__content {\n padding: 16px 0 0 0;\n }\n .arcblock-blocklet__content--main {\n display: flex;\n align-items: center;\n cursor: pointer;\n }\n .arcblock-blocklet__content--body {\n overflow: hidden;\n flex: 1;\n display: flex;\n align-items: flex-start;\n }\n .arcblock-blocklet__addons {\n padding: 16px 0;\n }\n .arcblock-blocklet__cover {\n width: 80px;\n height: 80px;\n margin-right: 12px;\n overflow: hidden;\n border-radius: 12px;\n /* see: https://stackoverflow.com/questions/49066011/overflow-hidden-with-border-radius-not-working-on-safari */\n transform: translateZ(0);\n }\n .arcblock-blocklet__button--hover {\n &:not(.Mui-disabled) {\n position: relative;\n z-index: 1;\n &::before {\n content: '';\n position: absolute;\n height: 100%;\n width: 100%;\n left: 0;\n top: 0;\n transition: opacity 0.3s;\n }\n &:hover::before {\n opacity: 0;\n }\n &::after {\n content: '';\n position: absolute;\n height: 100%;\n width: 100%;\n top: 0;\n left: 0;\n background-color: ", ";\n transform: scale(0.1);\n opacity: 0;\n z-index: -1;\n transition: transform 0.3s, opacity 0.3s, background-color 0.3s;\n }\n &:hover::after {\n opacity: 1;\n transform-origin: center;\n transform: scale(1);\n }\n }\n\n &:not(.Mui-disabled) {\n background-color: transparent !important;\n color: ", ";\n }\n &:not(.Mui-disabled) {\n &:hover {\n color: ", ";\n }\n }\n }\n .arcblock-blocklet__info {\n flex: 1;\n overflow: hidden;\n .arcblock-blocklet__button {\n margin-top: 16px;\n display: inline-block;\n }\n }\n .arcblock-blocklet__title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .arcblock-blocklet__describe {\n margin: 0 0 2px 0;\n color: #999;\n font-size: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .arcblock-blocklet__addons {\n display: flex;\n justify-content: space-between;\n color: #999;\n font-size: 14px;\n position: relative;\n }\n .arcblock-blocklet__addons--item {\n white-space: nowrap;\n }\n &.arcblock-blocklet--size-md {\n &:hover {\n position: relative;\n }\n .arcblock-blocklet__title {\n height: 2.3em;\n margin-bottom: 3px;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n overflow: hidden;\n text-overflow: initial;\n white-space: initial;\n word-break: break-all;\n }\n .arcblock-blocklet__describe {\n white-space: normal;\n height: 2.86em;\n }\n .arcblock-blocklet__button {\n margin-top: 5px;\n }\n }\n &.arcblock-blocklet--size-sm,\n &.arcblock-blocklet--size-xs {\n .arcblock-blocklet__cover {\n width: 40px;\n height: 40px;\n border-radius: 6px;\n }\n .arcblock-blocklet__content {\n padding: 16px 0;\n }\n .arcblock-blocklet__addons {\n padding: 8px 0;\n .arcblock-blocklet__addons--item {\n font-size: 12px;\n }\n }\n }\n &.arcblock-blocklet--size-xs {\n .arcblock-blocklet__addons {\n display: none !important;\n }\n }\n"])), props => props.theme.palette.common.white, props => props.theme.palette.primary.main, props => props.theme.palette.primary.main, props => props.theme.palette.common.white);
|
71
|
-
|
72
48
|
function BlockletIcon(_ref) {
|
73
49
|
let {
|
74
50
|
name
|
@@ -82,10 +58,10 @@ function BlockletIcon(_ref) {
|
|
82
58
|
}
|
83
59
|
});
|
84
60
|
}
|
85
|
-
|
86
61
|
BlockletIcon.propTypes = {
|
87
62
|
name: _propTypes.default.string.isRequired
|
88
63
|
};
|
64
|
+
|
89
65
|
/**
|
90
66
|
* BlockletNFT 组件
|
91
67
|
* @typedef {{
|
@@ -113,28 +89,26 @@ BlockletIcon.propTypes = {
|
|
113
89
|
* @param {BlockletNFTProps} props
|
114
90
|
* @returns {JSX.Element}
|
115
91
|
*/
|
116
|
-
|
117
92
|
function BlockletNFT(_ref2) {
|
118
93
|
let {
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
94
|
+
title,
|
95
|
+
did,
|
96
|
+
description,
|
97
|
+
cover,
|
98
|
+
size,
|
99
|
+
addons,
|
100
|
+
button,
|
101
|
+
buttonText,
|
102
|
+
buttonDisabled,
|
103
|
+
buttonLoading,
|
104
|
+
isStickyButton,
|
105
|
+
onButtonClick,
|
106
|
+
onMainClick,
|
107
|
+
onTagClick,
|
108
|
+
className,
|
109
|
+
scaleClickZone
|
110
|
+
} = _ref2,
|
111
|
+
rest = _objectWithoutProperties(_ref2, _excluded);
|
138
112
|
const wrapHandler = function wrapHandler(handler) {
|
139
113
|
let stopFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : () => false;
|
140
114
|
return function (e) {
|
@@ -144,35 +118,30 @@ function BlockletNFT(_ref2) {
|
|
144
118
|
} else if (handler instanceof Function) {
|
145
119
|
e.preventDefault();
|
146
120
|
e.stopPropagation();
|
147
|
-
|
148
121
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
149
122
|
args[_key - 1] = arguments[_key];
|
150
123
|
}
|
151
|
-
|
152
124
|
handler(...args);
|
153
125
|
}
|
154
126
|
};
|
155
127
|
};
|
156
|
-
|
157
128
|
const _onButtonClick = wrapHandler(onButtonClick, () => {
|
158
129
|
// stop click while custom button or buttonDisabled or buttondLoading
|
159
130
|
if (button || buttonDisabled || buttonLoading) {
|
160
131
|
return true;
|
161
132
|
}
|
162
|
-
|
163
133
|
return false;
|
164
134
|
});
|
165
|
-
|
166
135
|
const _onMainClick = wrapHandler(onMainClick);
|
167
|
-
|
168
136
|
const theme = (0, _Theme.useTheme)();
|
169
137
|
const isDownSm = (0, _useMediaQuery.default)(theme.breakpoints.down('md'));
|
170
138
|
const isDownMd = (0, _useMediaQuery.default)(theme.breakpoints.down('lg'));
|
171
|
-
const isUpLg = (0, _useMediaQuery.default)(theme.breakpoints.up('lg'));
|
172
|
-
// eslint-disable-next-line no-nested-ternary
|
173
|
-
|
174
|
-
const actualSize = size === 'auto' ? isDownSm ? 'xs' : isDownMd ? 'sm' : 'md' : size; // eslint-disable-next-line no-nested-ternary
|
139
|
+
const isUpLg = (0, _useMediaQuery.default)(theme.breakpoints.up('lg'));
|
175
140
|
|
141
|
+
// If size is auto, need calculate actual size according to screen size
|
142
|
+
// eslint-disable-next-line no-nested-ternary
|
143
|
+
const actualSize = size === 'auto' ? isDownSm ? 'xs' : isDownMd ? 'sm' : 'md' : size;
|
144
|
+
// eslint-disable-next-line no-nested-ternary
|
176
145
|
const didAvatarSize = size === 'auto' ? isUpLg ? 80 : 40 : size === 'md' ? 80 : 40;
|
177
146
|
const container = (0, _react.useRef)(null);
|
178
147
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, _objectSpread(_objectSpread({}, rest), {}, {
|
@@ -252,8 +221,10 @@ function BlockletNFT(_ref2) {
|
|
252
221
|
children: addons.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
253
222
|
component: "span",
|
254
223
|
variant: "caption",
|
255
|
-
className: "arcblock-blocklet__addons--item"
|
224
|
+
className: "arcblock-blocklet__addons--item"
|
225
|
+
// eslint-disable-next-line react/no-array-index-key
|
256
226
|
,
|
227
|
+
|
257
228
|
title: item.title,
|
258
229
|
children: item.empty ? null : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
259
230
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(BlockletIcon, {
|
@@ -264,7 +235,6 @@ function BlockletNFT(_ref2) {
|
|
264
235
|
})]
|
265
236
|
}));
|
266
237
|
}
|
267
|
-
|
268
238
|
BlockletNFT.propTypes = {
|
269
239
|
title: _propTypes.default.string.isRequired,
|
270
240
|
did: _propTypes.default.string,
|
package/lib/Button/index.js
CHANGED
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
-
|
8
7
|
var _Button = _interopRequireDefault(require("@mui/material/Button"));
|
9
|
-
|
10
8
|
var _wrap = _interopRequireDefault(require("./wrap"));
|
11
|
-
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
-
|
14
10
|
// @ts-check
|
15
11
|
|
16
12
|
/** @type {import('./wrap').ButtonComponent} */
|
package/lib/Button/wrap.js
CHANGED
@@ -4,33 +4,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = _default;
|
7
|
-
|
8
7
|
var _react = require("react");
|
9
|
-
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
11
|
-
|
12
9
|
var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
|
13
|
-
|
14
10
|
var _Colors = _interopRequireDefault(require("../Colors"));
|
15
|
-
|
16
11
|
var _Util = require("../Util");
|
17
|
-
|
18
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
19
|
-
|
20
13
|
const _excluded = ["children", "rounded", "loading", "disabled", "style", "forwardedRef", "color"];
|
21
|
-
|
14
|
+
/* eslint-disable prefer-destructuring */
|
15
|
+
/* eslint-disable func-names */
|
22
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
23
|
-
|
24
17
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
25
|
-
|
26
18
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
27
|
-
|
28
|
-
function
|
29
|
-
|
19
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
20
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
21
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
30
22
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
31
|
-
|
32
23
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
33
|
-
|
34
24
|
const extendedColors = {
|
35
25
|
did: {
|
36
26
|
contained: {
|
@@ -53,6 +43,7 @@ const extendedColors = {
|
|
53
43
|
}
|
54
44
|
}
|
55
45
|
};
|
46
|
+
|
56
47
|
/**
|
57
48
|
* @typedef {{
|
58
49
|
* rounded?: boolean,
|
@@ -72,7 +63,6 @@ const extendedColors = {
|
|
72
63
|
* @param {import('@mui/material').ExtendButtonBase<import('@mui/material').ButtonTypeMap<{}, "button">>} BaseComponent
|
73
64
|
* @return {ButtonComponent}
|
74
65
|
*/
|
75
|
-
|
76
66
|
function _default(BaseComponent) {
|
77
67
|
/**
|
78
68
|
*
|
@@ -84,59 +74,51 @@ function _default(BaseComponent) {
|
|
84
74
|
* @type {ButtonProps}
|
85
75
|
*/
|
86
76
|
const newProps = (0, _Util.mergeProps)(props, WrappedComponent, ['style']);
|
87
|
-
|
88
77
|
const {
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
78
|
+
children,
|
79
|
+
rounded,
|
80
|
+
loading,
|
81
|
+
disabled,
|
82
|
+
style,
|
83
|
+
forwardedRef,
|
84
|
+
color
|
85
|
+
} = newProps,
|
86
|
+
rest = _objectWithoutProperties(newProps, _excluded);
|
99
87
|
const isDisabled = disabled || loading;
|
100
88
|
let loadingSize = 16;
|
101
|
-
|
102
89
|
switch (rest.size) {
|
103
90
|
case 'small':
|
104
91
|
loadingSize = 14;
|
105
92
|
break;
|
106
|
-
|
107
93
|
case 'large':
|
108
94
|
loadingSize = 18;
|
109
95
|
break;
|
110
|
-
|
111
96
|
default:
|
112
|
-
}
|
97
|
+
}
|
98
|
+
|
99
|
+
// mui v4 只支持 4 种 color 值: default/inherit/primary/secondary (传入这 4 种之外的值会报 warning),
|
113
100
|
// 这里扩展 danger/warning/reverse/did 四种 color
|
114
101
|
// !! 已升级到 mui v5, error/warning 等 color 已经默认支持, extendedColors 只扩展了 did/reverse
|
115
|
-
|
116
|
-
|
117
102
|
const matched = extendedColors[color] && extendedColors[color][rest.variant];
|
103
|
+
|
118
104
|
/**
|
119
105
|
* @type {import('react').CSSProperties}
|
120
106
|
*/
|
121
|
-
|
122
107
|
const styles = Object.assign({}, style, _objectSpread({
|
123
108
|
boxShadow: 'none',
|
124
109
|
textTransform: 'capitalize'
|
125
110
|
}, matched));
|
126
111
|
let _rest = rest;
|
127
|
-
|
128
112
|
if (!matched) {
|
129
113
|
// mui button 本身支持的 color 交由 mui 处理
|
130
114
|
_rest = _objectSpread(_objectSpread({}, _rest), {}, {
|
131
115
|
color
|
132
116
|
});
|
133
117
|
}
|
134
|
-
|
135
118
|
if (rounded) {
|
136
119
|
// styles.borderRadius = { small: 16, medium: 18, large: 20 }[rest.size];
|
137
120
|
styles.borderRadius = '100vw';
|
138
121
|
}
|
139
|
-
|
140
122
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(BaseComponent, _objectSpread(_objectSpread({
|
141
123
|
style: styles,
|
142
124
|
ref: forwardedRef,
|
@@ -150,7 +132,6 @@ function _default(BaseComponent) {
|
|
150
132
|
}), children]
|
151
133
|
}));
|
152
134
|
}
|
153
|
-
|
154
135
|
WrappedComponent.propTypes = {
|
155
136
|
children: _propTypes.default.any.isRequired,
|
156
137
|
style: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string]),
|
package/lib/ButtonGroup/index.js
CHANGED
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
-
|
8
7
|
var _ButtonGroup = _interopRequireDefault(require("@mui/material/ButtonGroup"));
|
9
|
-
|
10
8
|
var _wrap = _interopRequireDefault(require("../Button/wrap"));
|
11
|
-
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
-
|
14
10
|
// deprecated, ux ButtonGroup 组件废弃, 建议直接使用 @mui/material/ButtonGroup
|
15
11
|
// (该定制组件原本目的是调整 ButtonGroup 的圆角, 但最新设计规范已经不再使用较大的圆角, 改为使用 mui button 默认的圆角)
|
16
12
|
var _default = (0, _wrap.default)(_ButtonGroup.default);
|
17
|
-
|
18
13
|
exports.default = _default;
|
@@ -4,21 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = CardSelector;
|
7
|
-
|
8
7
|
var _react = require("react");
|
9
|
-
|
10
8
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
11
|
-
|
12
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
13
|
-
|
14
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
15
|
-
|
16
11
|
var _templateObject;
|
17
|
-
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
19
|
-
|
20
13
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
21
|
-
|
22
14
|
function CardSelector(_ref) {
|
23
15
|
let {
|
24
16
|
list,
|
@@ -30,40 +22,36 @@ function CardSelector(_ref) {
|
|
30
22
|
} = _ref;
|
31
23
|
const [selectedId, setSelectedId] = (0, _react.useState)(0);
|
32
24
|
const [translateX, setTranslateX] = (0, _react.useState)(0);
|
33
|
-
const outterCon = (0, _react.useRef)(null);
|
25
|
+
const outterCon = (0, _react.useRef)(null);
|
34
26
|
|
27
|
+
// 选择卡片
|
35
28
|
const selectedItem = i => {
|
36
29
|
if (i < 0 || i > list.length - 1) {
|
37
30
|
return;
|
38
31
|
}
|
32
|
+
setSelectedId(i);
|
39
33
|
|
40
|
-
|
41
|
-
|
34
|
+
// 外部容器大小
|
42
35
|
const outerWidth = outterCon.current.clientWidth;
|
43
36
|
setTranslateX(i * (width + cardSpace) - (outerWidth - width) / 2 + cardSpace * 0.5);
|
44
37
|
onSelect(i);
|
45
38
|
};
|
46
|
-
|
47
39
|
(0, _react.useEffect)(() => {
|
48
40
|
selectedItem(defaultIndex);
|
49
|
-
|
50
41
|
const func = e => e.preventDefault();
|
51
|
-
|
52
42
|
outterCon.current.addEventListener('touchmove', func, {
|
53
43
|
passive: false
|
54
|
-
});
|
44
|
+
});
|
45
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
55
46
|
}, []);
|
56
47
|
let startX;
|
57
|
-
|
58
48
|
const touchstart = e => {
|
59
49
|
const point = e.touches[0];
|
60
50
|
startX = point.clientX;
|
61
51
|
};
|
62
|
-
|
63
52
|
const touchend = e => {
|
64
53
|
const point = e.changedTouches[0];
|
65
54
|
const diffX = startX - point.clientX;
|
66
|
-
|
67
55
|
if (Math.abs(diffX) > 60) {
|
68
56
|
if (diffX > 0) {
|
69
57
|
selectedItem(selectedId + 1);
|
@@ -72,7 +60,6 @@ function CardSelector(_ref) {
|
|
72
60
|
}
|
73
61
|
}
|
74
62
|
};
|
75
|
-
|
76
63
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Contianer, {
|
77
64
|
ref: outterCon,
|
78
65
|
onTouchStart: touchstart,
|
@@ -89,8 +76,10 @@ function CardSelector(_ref) {
|
|
89
76
|
width,
|
90
77
|
height,
|
91
78
|
margin: cardSpace / 2
|
92
|
-
}
|
79
|
+
}
|
80
|
+
// eslint-disable-next-line react/no-array-index-key
|
93
81
|
,
|
82
|
+
|
94
83
|
onClick: () => selectedItem(i),
|
95
84
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
|
96
85
|
src: e.src,
|
@@ -101,9 +90,7 @@ function CardSelector(_ref) {
|
|
101
90
|
})
|
102
91
|
});
|
103
92
|
}
|
104
|
-
|
105
93
|
const Contianer = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n overflow: hidden;\n mask-image: linear-gradient(to left, transparent, black 3%, black 97%, transparent);\n overflow: hidden;\n .card-container {\n display: flex;\n white-space: nowrap;\n width: max-content;\n transition: all ease 0.3s;\n }\n .card-item {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n cursor: pointer;\n img {\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n outline: #526ded solid 0;\n transition: all ease 0.2s;\n box-shadow: rgba(0, 0, 0, 0.2) 0 0 10px;\n }\n &.selected {\n cursor: default;\n img {\n outline: #526ded solid 5px;\n }\n }\n }\n"])));
|
106
|
-
|
107
94
|
CardSelector.propTypes = {
|
108
95
|
list: _propTypes.default.array,
|
109
96
|
width: _propTypes.default.number,
|
package/lib/Center/index.js
CHANGED
@@ -4,44 +4,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = Center;
|
7
|
-
|
8
7
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
9
|
-
|
10
8
|
var _Theme = require("../Theme");
|
11
|
-
|
12
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
13
|
-
|
14
10
|
var _templateObject;
|
15
|
-
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17
|
-
|
18
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
19
|
-
|
20
11
|
/**
|
21
12
|
*
|
22
13
|
* @param {string} relative 容器相对尺寸,默认相对屏幕(screen),可设置为父容器(parent)
|
23
14
|
* @returns react component element
|
24
15
|
*/
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
25
18
|
function Center(_ref) {
|
26
19
|
let {
|
27
20
|
children,
|
28
21
|
relative
|
29
22
|
} = _ref;
|
30
23
|
let style = {};
|
31
|
-
|
32
24
|
if (relative === 'parent') {
|
33
25
|
style = {
|
34
26
|
width: '100%',
|
35
27
|
height: '100%'
|
36
28
|
};
|
37
29
|
}
|
38
|
-
|
39
30
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Div, {
|
40
31
|
style: style,
|
41
32
|
children: children
|
42
33
|
});
|
43
34
|
}
|
44
|
-
|
45
35
|
const Div = (0, _Theme.styled)('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n flex: 1;\n width: 100vw;\n height: 100vh;\n\n display: flex;\n justify-content: center;\n align-items: center;\n"])));
|
46
36
|
Center.propTypes = {
|
47
37
|
children: _propTypes.default.any.isRequired,
|
@@ -4,44 +4,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = CopyButton;
|
7
|
-
|
8
7
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
9
|
-
|
10
8
|
var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
|
11
|
-
|
12
9
|
var _colors = require("@mui/material/colors");
|
13
|
-
|
14
10
|
var _ContentCopy = _interopRequireDefault(require("@mui/icons-material/ContentCopy"));
|
15
|
-
|
16
11
|
var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
|
17
|
-
|
18
12
|
var _hook = _interopRequireDefault(require("./hook"));
|
19
|
-
|
20
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
21
|
-
|
22
14
|
const _excluded = ["content", "locale", "render", "showTooltip"];
|
23
|
-
|
24
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
25
|
-
|
26
16
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
27
|
-
|
28
17
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
29
|
-
|
30
|
-
function
|
31
|
-
|
18
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
19
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
20
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
32
21
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
33
|
-
|
34
22
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
35
|
-
|
36
23
|
function CopyButton(_ref) {
|
37
24
|
let {
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
25
|
+
content,
|
26
|
+
locale,
|
27
|
+
render,
|
28
|
+
showTooltip
|
29
|
+
} = _ref,
|
30
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
45
31
|
const {
|
46
32
|
containerRef,
|
47
33
|
copied,
|
@@ -77,17 +63,14 @@ function CopyButton(_ref) {
|
|
77
63
|
})
|
78
64
|
})
|
79
65
|
}));
|
80
|
-
|
81
66
|
if (render) {
|
82
67
|
return render({
|
83
68
|
copyButton,
|
84
69
|
containerRef
|
85
70
|
});
|
86
71
|
}
|
87
|
-
|
88
72
|
return copyButton;
|
89
73
|
}
|
90
|
-
|
91
74
|
CopyButton.propTypes = {
|
92
75
|
content: _propTypes.default.string,
|
93
76
|
locale: _propTypes.default.oneOf(['en', 'zh']),
|
package/lib/ClickToCopy/hook.js
CHANGED
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = useCopy;
|
7
|
-
|
8
7
|
var _react = require("react");
|
9
|
-
|
10
8
|
var _copyToClipboard = _interopRequireDefault(require("copy-to-clipboard"));
|
11
|
-
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
-
|
14
10
|
const translations = {
|
15
11
|
en: {
|
16
12
|
copy: 'Click To Copy',
|
@@ -21,7 +17,6 @@ const translations = {
|
|
21
17
|
copied: '已复制!'
|
22
18
|
}
|
23
19
|
};
|
24
|
-
|
25
20
|
function useCopy(_ref) {
|
26
21
|
let {
|
27
22
|
content,
|
@@ -29,23 +24,18 @@ function useCopy(_ref) {
|
|
29
24
|
} = _ref;
|
30
25
|
const [copied, setCopied] = (0, _react.useState)(false);
|
31
26
|
const containerRef = (0, _react.useRef)();
|
32
|
-
|
33
27
|
const copy = e => {
|
34
28
|
if (e) {
|
35
29
|
e.stopPropagation();
|
36
30
|
}
|
37
|
-
|
38
31
|
(0, _copyToClipboard.default)(content || containerRef.current.textContent);
|
39
32
|
setCopied(true);
|
40
33
|
};
|
41
|
-
|
42
34
|
(0, _react.useEffect)(() => {
|
43
35
|
let timer = null;
|
44
|
-
|
45
36
|
if (copied) {
|
46
37
|
timer = setTimeout(() => setCopied(false), 2000);
|
47
38
|
}
|
48
|
-
|
49
39
|
return () => clearTimeout(timer);
|
50
40
|
}, [copied]);
|
51
41
|
return {
|