1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', { value: true });
|
4 |
|
5 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
6 |
|
7 | var slicedToArray = require('./slicedToArray-ef426d0f.js');
|
8 | require('./unsupportedIterableToArray-8a00e599.js');
|
9 | var React = require('react');
|
10 | var React__default = _interopDefault(React);
|
11 | require('./_commonjsHelpers-72d386ba.js');
|
12 | var index = require('./index-b0606964.js');
|
13 | require('./defineProperty-0921a47c.js');
|
14 | require('./toConsumableArray-7f36359f.js');
|
15 | var _styled = require('styled-components');
|
16 | var _styled__default = _interopDefault(_styled);
|
17 | require('./getPrototypeOf-e2d1e599.js');
|
18 | require('./color.js');
|
19 | require('./components.js');
|
20 | require('./contains-component.js');
|
21 | require('./css.js');
|
22 | require('./dayjs.min-aa59a48e.js');
|
23 | require('./date.js');
|
24 | require('./miscellaneous.js');
|
25 | var environment = require('./environment.js');
|
26 | require('./font.js');
|
27 | require('./math-ecfd5d91.js');
|
28 | require('./characters.js');
|
29 | require('./format.js');
|
30 | require('./keycodes.js');
|
31 | require('./url.js');
|
32 | var web3 = require('./web3.js');
|
33 | var constants = require('./constants.js');
|
34 | require('./breakpoints.js');
|
35 | require('./springs.js');
|
36 | require('./text-styles.js');
|
37 | require('./theme-dark.js');
|
38 | require('./theme-light.js');
|
39 | require('./Theme.js');
|
40 | var _extends$1 = require('./extends-40571110.js');
|
41 | var objectWithoutProperties = require('./objectWithoutProperties-35db8ab0.js');
|
42 | require('./index-ecc57c9f.js');
|
43 | require('./isObject-52908731.js');
|
44 | require('./Viewport-fe2db97a.js');
|
45 | require('./Layout.js');
|
46 | require('./FocusVisible.js');
|
47 | require('./ButtonBase.js');
|
48 | require('./IconPropTypes-086fd371.js');
|
49 | require('./IconAddUser.js');
|
50 | require('./IconAlert.js');
|
51 | require('./IconAlignCenter.js');
|
52 | require('./IconAlignJustify.js');
|
53 | require('./IconAlignLeft.js');
|
54 | require('./IconAlignRight.js');
|
55 | require('./IconAragon.js');
|
56 | require('./IconArrowDown.js');
|
57 | require('./IconArrowLeft.js');
|
58 | require('./IconArrowRight.js');
|
59 | require('./IconArrowUp.js');
|
60 | require('./IconAtSign.js');
|
61 | require('./IconBlock.js');
|
62 | require('./IconBookmark.js');
|
63 | require('./IconCalendar.js');
|
64 | require('./IconCanvas.js');
|
65 | require('./IconCaution.js');
|
66 | require('./IconCenter.js');
|
67 | require('./IconChart.js');
|
68 | require('./IconChat.js');
|
69 | require('./IconCheck.js');
|
70 | require('./IconChip.js');
|
71 | require('./IconCircleCheck.js');
|
72 | require('./IconCircleMinus.js');
|
73 | require('./IconCirclePlus.js');
|
74 | require('./IconClock.js');
|
75 | require('./IconCloudDownload.js');
|
76 | require('./IconCloudUpload.js');
|
77 | require('./IconCoin.js');
|
78 | require('./IconConfiguration.js');
|
79 | require('./IconConnect.js');
|
80 | require('./IconConnection.js');
|
81 | require('./IconConsole.js');
|
82 | require('./IconCopy.js');
|
83 | require('./IconCross.js');
|
84 | require('./IconDashedSquare.js');
|
85 | require('./IconDown.js');
|
86 | require('./IconDownload.js');
|
87 | require('./IconEdit.js');
|
88 | require('./IconEllipsis.js');
|
89 | require('./IconEnter.js');
|
90 | require('./IconEthereum.js');
|
91 | require('./IconExternal.js');
|
92 | require('./IconFile.js');
|
93 | require('./IconFilter.js');
|
94 | require('./IconFlag.js');
|
95 | require('./IconFolder.js');
|
96 | require('./IconGraph2.js');
|
97 | require('./IconGraph.js');
|
98 | require('./IconGrid.js');
|
99 | require('./IconGroup.js');
|
100 | require('./IconHash.js');
|
101 | require('./IconHeart.js');
|
102 | require('./IconHide.js');
|
103 | require('./IconHome.js');
|
104 | require('./IconImage.js');
|
105 | require('./IconInfo.js');
|
106 | require('./IconLabel.js');
|
107 | require('./IconLayers.js');
|
108 | require('./IconLeft.js');
|
109 | require('./IconLink.js');
|
110 | require('./IconLocation.js');
|
111 | require('./IconLock.js');
|
112 | require('./IconMail.js');
|
113 | require('./IconMaximize.js');
|
114 | require('./IconMenu.js');
|
115 | require('./IconMinimize.js');
|
116 | require('./IconMinus.js');
|
117 | require('./IconMove.js');
|
118 | require('./IconNoPicture.js');
|
119 | require('./IconPicture.js');
|
120 | require('./IconPlus.js');
|
121 | require('./IconPower.js');
|
122 | require('./IconPrint.js');
|
123 | require('./IconProhibited.js');
|
124 | require('./IconQuestion.js');
|
125 | require('./IconRefresh.js');
|
126 | require('./IconRemoveUser.js');
|
127 | require('./IconRight.js');
|
128 | require('./IconRotateLeft.js');
|
129 | require('./IconRotateRight.js');
|
130 | require('./IconSearch.js');
|
131 | require('./IconSettings.js');
|
132 | require('./IconShare.js');
|
133 | require('./IconSquareMinus.js');
|
134 | require('./IconSquarePlus.js');
|
135 | require('./IconSquare.js');
|
136 | require('./IconStarFilled.js');
|
137 | require('./IconStar.js');
|
138 | require('./IconSwap.js');
|
139 | require('./IconTarget.js');
|
140 | require('./IconToken.js');
|
141 | require('./IconTrash.js');
|
142 | require('./IconUnlock.js');
|
143 | require('./IconUp.js');
|
144 | require('./IconUpload.js');
|
145 | require('./IconUser.js');
|
146 | require('./IconView.js');
|
147 | require('./IconVote.js');
|
148 | require('./IconWallet.js');
|
149 | require('./IconWarning.js');
|
150 | require('./IconWorld.js');
|
151 | require('./IconWrite.js');
|
152 | require('./IconZoomIn.js');
|
153 | require('./IconZoomOut.js');
|
154 | require('./objectWithoutPropertiesLoose-1af20ad0.js');
|
155 | require('react-dom');
|
156 | require('./web-d0294535.js');
|
157 | require('./Button.js');
|
158 | require('./ButtonIcon.js');
|
159 | require('./getDisplayName-7ab6d318.js');
|
160 | require('./index-2b9f03ad.js');
|
161 | require('./Link.js');
|
162 | require('./TextInput.js');
|
163 | require('./ToastHub.js');
|
164 | require('./index-5aaa52c3.js');
|
165 | require('./RootPortal.js');
|
166 | require('./TextCopy.js');
|
167 | require('./taggedTemplateLiteral-227ed122.js');
|
168 | require('./_react_commonjs-external-bf8fc71c.js');
|
169 | require('./EthIdenticon.js');
|
170 | require('./AddressField.js');
|
171 | require('./useArrowKeysFocus.js');
|
172 | require('./useClickOutside.js');
|
173 | require('./useFocusEnter.js');
|
174 | require('./useFocusLeave.js');
|
175 | var useImageExists = require('./useImageExists.js');
|
176 | require('./useKeyDown.js');
|
177 | require('./useOnBlur.js');
|
178 | var BadgeBase = require('./BadgeBase.js');
|
179 | var BadgePopoverActionType = require('./BadgePopoverActionType.js');
|
180 | var Tag = require('./Tag.js');
|
181 | require('./proptypes-956d3000.js');
|
182 | require('./Popover.js');
|
183 | require('./observe.js');
|
184 | require('./index-904f69cc.js');
|
185 | require('./providers.js');
|
186 | require('./BadgePopoverBase.js');
|
187 | var AppBadgePopover = require('./AppBadgePopover.js');
|
188 |
|
189 | var iconDefaultSvg = "data:image/svg+xml,%3Csvg%20width%3D%2256%22%20height%3D%2256%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M56%200H0v56h56V0z%22%20fill%3D%22url%28%23paint0_linear%29%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M28.363%2010.74L13.04%2019.56v17.645l15.322%208.821%2015.323-8.821V19.56l-15.322-8.82z%22%20fill%3D%22url%28%23paint1_linear%29%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M28.363%2046.027V10.74l15.323%208.821v17.645l-15.323%208.821z%22%20fill%3D%22%2373F0F8%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M13.041%2019.561l15.322-8.822%2015.323%208.822-15.323%208.426-15.322-8.425z%22%20fill%3D%22url%28%23paint2_linear%29%22%2F%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22paint0_linear%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%2256%22%20y2%3D%2253.105%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%2333BCE6%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2348E2E5%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22paint1_linear%22%20x1%3D%2214.618%22%20y1%3D%2219.282%22%20x2%3D%2231.423%22%20y2%3D%2243.942%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%232597B7%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2339C5E1%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22paint2_linear%22%20x1%3D%2214.799%22%20y1%3D%2219.363%22%20x2%3D%2243.686%22%20y2%3D%2219.363%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%233DCEE5%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2348E2E6%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E";
|
190 |
|
191 | var _StyledDiv = _styled__default("div").withConfig({
|
192 | displayName: "AppBadge___StyledDiv",
|
193 | componentId: "sc-5gkmrm-0"
|
194 | })(["display:grid;align-items:center;grid-template-columns:auto 1fr;"]);
|
195 |
|
196 | var _StyledSpan = _styled__default("span").withConfig({
|
197 | displayName: "AppBadge___StyledSpan",
|
198 | componentId: "sc-5gkmrm-1"
|
199 | })(["display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"]);
|
200 |
|
201 | var _StyledTag = _styled__default(Tag.default).withConfig({
|
202 | displayName: "AppBadge___StyledTag",
|
203 | componentId: "sc-5gkmrm-2"
|
204 | })(["margin-left:", "px;"], function (p) {
|
205 | return p._css;
|
206 | });
|
207 |
|
208 | var AppBadge = React__default.memo(function AppBadge(_ref) {
|
209 | var appAddress = _ref.appAddress,
|
210 | badgeOnly = _ref.badgeOnly,
|
211 | compact = _ref.compact,
|
212 | iconSrc = _ref.iconSrc,
|
213 | identifier = _ref.identifier,
|
214 | label = _ref.label,
|
215 | labelStyle = _ref.labelStyle,
|
216 | networkType = _ref.networkType,
|
217 | popoverAction = _ref.popoverAction,
|
218 | popoverTitle = _ref.popoverTitle,
|
219 | props = objectWithoutProperties._objectWithoutProperties(_ref, ["appAddress", "badgeOnly", "compact", "iconSrc", "identifier", "label", "labelStyle", "networkType", "popoverAction", "popoverTitle"]);
|
220 |
|
221 | var badgeRef = React.useRef(null);
|
222 |
|
223 | var _useState = React.useState(false),
|
224 | _useState2 = slicedToArray._slicedToArray(_useState, 2),
|
225 | opened = _useState2[0],
|
226 | setOpened = _useState2[1];
|
227 |
|
228 | var handleClose = React.useCallback(function () {
|
229 | return setOpened(false);
|
230 | }, []);
|
231 | var handleOpen = React.useCallback(function () {
|
232 | return setOpened(true);
|
233 | }, []);
|
234 | var isValidAddress = web3.isAddress(appAddress);
|
235 |
|
236 | if (!badgeOnly && !isValidAddress) {
|
237 | environment.warn("AppBadge: provided invalid app address (".concat(appAddress, ")"));
|
238 | }
|
239 |
|
240 | popoverTitle = popoverTitle || React__default.createElement(_StyledDiv, null, React__default.createElement(_StyledSpan, null, label), identifier && React__default.createElement(_StyledTag, {
|
241 | mode: "identifier",
|
242 | _css: 1 * constants.GU
|
243 | }, identifier));
|
244 | return React__default.createElement(BadgeBase.default, {
|
245 | badgeRef: badgeRef,
|
246 | compact: compact,
|
247 | disabled: badgeOnly,
|
248 | icon: React__default.createElement(useImageExists.ImageExists, {
|
249 | src: iconSrc
|
250 | }, function (_ref2) {
|
251 | var displayFallback = _ref2.displayFallback,
|
252 | exists = _ref2.exists;
|
253 | return React__default.createElement(Icon, {
|
254 | compact: compact,
|
255 | src: exists ? iconSrc : iconDefaultSvg
|
256 | });
|
257 | }),
|
258 | label: label,
|
259 | labelStyle: labelStyle,
|
260 | onClick: isValidAddress ? handleOpen : undefined,
|
261 | title: appAddress
|
262 | }, function (popoverDisabled) {
|
263 | return !popoverDisabled && appAddress && React__default.createElement(AppBadgePopover.default, {
|
264 | appAddress: appAddress,
|
265 | iconFallbackSrc: iconDefaultSvg,
|
266 | iconSrc: iconSrc,
|
267 | networkType: networkType,
|
268 | onClose: handleClose,
|
269 | opener: badgeRef.current,
|
270 | popoverAction: popoverAction,
|
271 | title: popoverTitle,
|
272 | visible: opened
|
273 | });
|
274 | });
|
275 | });
|
276 | AppBadge.propTypes = {
|
277 | appAddress: index.PropTypes.string,
|
278 | badgeOnly: index.PropTypes.bool,
|
279 | compact: index.PropTypes.bool,
|
280 | iconSrc: index.PropTypes.string,
|
281 | identifier: index.PropTypes.string,
|
282 | label: index.PropTypes.string.isRequired,
|
283 | labelStyle: index.PropTypes.string,
|
284 | networkType: index.PropTypes.string,
|
285 | popoverAction: BadgePopoverActionType.default,
|
286 | popoverTitle: index.PropTypes.node
|
287 | };
|
288 |
|
289 | var _StyledSpan2 = _styled__default("span").withConfig({
|
290 | displayName: "AppBadge___StyledSpan2",
|
291 | componentId: "sc-5gkmrm-3"
|
292 | })(["flex-shrink:0;width:", "px;height:", "px;margin-right:", "px;border-radius:", ";background-size:contain;background-position:50% 50%;background-repeat:no-repeat;background-image:url(", ");"], function (p) {
|
293 | return p._css2;
|
294 | }, function (p) {
|
295 | return p._css3;
|
296 | }, function (p) {
|
297 | return p._css4;
|
298 | }, function (p) {
|
299 | return p._css5;
|
300 | }, function (p) {
|
301 | return p._css6;
|
302 | });
|
303 |
|
304 | var Icon = function Icon(_ref3) {
|
305 | var compact = _ref3.compact,
|
306 | src = _ref3.src,
|
307 | props = objectWithoutProperties._objectWithoutProperties(_ref3, ["compact", "src"]);
|
308 |
|
309 | var size = (compact ? 2.25 : 3) * constants.GU;
|
310 | return React__default.createElement(_StyledSpan2, _extends$1._extends({}, props, {
|
311 | _css2: size,
|
312 | _css3: size,
|
313 | _css4: 1 * constants.GU,
|
314 | _css5: compact ? "".concat(constants.RADIUS, "px") : 0,
|
315 | _css6: src
|
316 | }));
|
317 | };
|
318 |
|
319 | Icon.propTypes = {
|
320 | compact: index.PropTypes.bool,
|
321 | src: index.PropTypes.string.isRequired
|
322 | };
|
323 |
|
324 | exports.default = AppBadge;
|
325 |
|