UNPKG

12.3 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
7var slicedToArray = require('./slicedToArray-ef426d0f.js');
8require('./unsupportedIterableToArray-8a00e599.js');
9var React = require('react');
10var React__default = _interopDefault(React);
11require('./_commonjsHelpers-72d386ba.js');
12var index = require('./index-b0606964.js');
13require('./defineProperty-0921a47c.js');
14require('./toConsumableArray-7f36359f.js');
15var _styled = require('styled-components');
16var _styled__default = _interopDefault(_styled);
17require('./getPrototypeOf-e2d1e599.js');
18require('./color.js');
19require('./components.js');
20require('./contains-component.js');
21require('./css.js');
22require('./dayjs.min-aa59a48e.js');
23require('./date.js');
24require('./miscellaneous.js');
25var environment = require('./environment.js');
26require('./font.js');
27require('./math-ecfd5d91.js');
28require('./characters.js');
29require('./format.js');
30require('./keycodes.js');
31require('./url.js');
32var web3 = require('./web3.js');
33var constants = require('./constants.js');
34require('./breakpoints.js');
35require('./springs.js');
36require('./text-styles.js');
37require('./theme-dark.js');
38require('./theme-light.js');
39require('./Theme.js');
40var _extends$1 = require('./extends-40571110.js');
41var objectWithoutProperties = require('./objectWithoutProperties-35db8ab0.js');
42require('./index-ecc57c9f.js');
43require('./isObject-52908731.js');
44require('./Viewport-fe2db97a.js');
45require('./Layout.js');
46require('./FocusVisible.js');
47require('./ButtonBase.js');
48require('./IconPropTypes-086fd371.js');
49require('./IconAddUser.js');
50require('./IconAlert.js');
51require('./IconAlignCenter.js');
52require('./IconAlignJustify.js');
53require('./IconAlignLeft.js');
54require('./IconAlignRight.js');
55require('./IconAragon.js');
56require('./IconArrowDown.js');
57require('./IconArrowLeft.js');
58require('./IconArrowRight.js');
59require('./IconArrowUp.js');
60require('./IconAtSign.js');
61require('./IconBlock.js');
62require('./IconBookmark.js');
63require('./IconCalendar.js');
64require('./IconCanvas.js');
65require('./IconCaution.js');
66require('./IconCenter.js');
67require('./IconChart.js');
68require('./IconChat.js');
69require('./IconCheck.js');
70require('./IconChip.js');
71require('./IconCircleCheck.js');
72require('./IconCircleMinus.js');
73require('./IconCirclePlus.js');
74require('./IconClock.js');
75require('./IconCloudDownload.js');
76require('./IconCloudUpload.js');
77require('./IconCoin.js');
78require('./IconConfiguration.js');
79require('./IconConnect.js');
80require('./IconConnection.js');
81require('./IconConsole.js');
82require('./IconCopy.js');
83require('./IconCross.js');
84require('./IconDashedSquare.js');
85require('./IconDown.js');
86require('./IconDownload.js');
87require('./IconEdit.js');
88require('./IconEllipsis.js');
89require('./IconEnter.js');
90require('./IconEthereum.js');
91require('./IconExternal.js');
92require('./IconFile.js');
93require('./IconFilter.js');
94require('./IconFlag.js');
95require('./IconFolder.js');
96require('./IconGraph2.js');
97require('./IconGraph.js');
98require('./IconGrid.js');
99require('./IconGroup.js');
100require('./IconHash.js');
101require('./IconHeart.js');
102require('./IconHide.js');
103require('./IconHome.js');
104require('./IconImage.js');
105require('./IconInfo.js');
106require('./IconLabel.js');
107require('./IconLayers.js');
108require('./IconLeft.js');
109require('./IconLink.js');
110require('./IconLocation.js');
111require('./IconLock.js');
112require('./IconMail.js');
113require('./IconMaximize.js');
114require('./IconMenu.js');
115require('./IconMinimize.js');
116require('./IconMinus.js');
117require('./IconMove.js');
118require('./IconNoPicture.js');
119require('./IconPicture.js');
120require('./IconPlus.js');
121require('./IconPower.js');
122require('./IconPrint.js');
123require('./IconProhibited.js');
124require('./IconQuestion.js');
125require('./IconRefresh.js');
126require('./IconRemoveUser.js');
127require('./IconRight.js');
128require('./IconRotateLeft.js');
129require('./IconRotateRight.js');
130require('./IconSearch.js');
131require('./IconSettings.js');
132require('./IconShare.js');
133require('./IconSquareMinus.js');
134require('./IconSquarePlus.js');
135require('./IconSquare.js');
136require('./IconStarFilled.js');
137require('./IconStar.js');
138require('./IconSwap.js');
139require('./IconTarget.js');
140require('./IconToken.js');
141require('./IconTrash.js');
142require('./IconUnlock.js');
143require('./IconUp.js');
144require('./IconUpload.js');
145require('./IconUser.js');
146require('./IconView.js');
147require('./IconVote.js');
148require('./IconWallet.js');
149require('./IconWarning.js');
150require('./IconWorld.js');
151require('./IconWrite.js');
152require('./IconZoomIn.js');
153require('./IconZoomOut.js');
154require('./objectWithoutPropertiesLoose-1af20ad0.js');
155require('react-dom');
156require('./web-d0294535.js');
157require('./Button.js');
158require('./ButtonIcon.js');
159require('./getDisplayName-7ab6d318.js');
160require('./index-2b9f03ad.js');
161require('./Link.js');
162require('./TextInput.js');
163require('./ToastHub.js');
164require('./index-5aaa52c3.js');
165require('./RootPortal.js');
166require('./TextCopy.js');
167require('./taggedTemplateLiteral-227ed122.js');
168require('./_react_commonjs-external-bf8fc71c.js');
169require('./EthIdenticon.js');
170require('./AddressField.js');
171require('./useArrowKeysFocus.js');
172require('./useClickOutside.js');
173require('./useFocusEnter.js');
174require('./useFocusLeave.js');
175var useImageExists = require('./useImageExists.js');
176require('./useKeyDown.js');
177require('./useOnBlur.js');
178var BadgeBase = require('./BadgeBase.js');
179var BadgePopoverActionType = require('./BadgePopoverActionType.js');
180var Tag = require('./Tag.js');
181require('./proptypes-956d3000.js');
182require('./Popover.js');
183require('./observe.js');
184require('./index-904f69cc.js');
185require('./providers.js');
186require('./BadgePopoverBase.js');
187var AppBadgePopover = require('./AppBadgePopover.js');
188
189var 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
191var _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
196var _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
201var _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
208var AppBadge = /*#__PURE__*/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 || /*#__PURE__*/React__default.createElement(_StyledDiv, null, /*#__PURE__*/React__default.createElement(_StyledSpan, null, label), identifier && /*#__PURE__*/React__default.createElement(_StyledTag, {
241 mode: "identifier",
242 _css: 1 * constants.GU
243 }, identifier));
244 return /*#__PURE__*/React__default.createElement(BadgeBase.default, {
245 badgeRef: badgeRef,
246 compact: compact,
247 disabled: badgeOnly,
248 icon: /*#__PURE__*/React__default.createElement(useImageExists.ImageExists, {
249 src: iconSrc
250 }, function (_ref2) {
251 var displayFallback = _ref2.displayFallback,
252 exists = _ref2.exists;
253 return /*#__PURE__*/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 && /*#__PURE__*/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});
276AppBadge.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
289var _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
304var 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 /*#__PURE__*/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
319Icon.propTypes = {
320 compact: index.PropTypes.bool,
321 src: index.PropTypes.string.isRequired
322};
323
324exports.default = AppBadge;
325//# sourceMappingURL=AppBadge.js.map