@safe-stars/components
Version:
React component library for buying Telegram Stars in Telegram Mini Apps via Safe Stars.
85 lines (81 loc) • 6.2 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index-CtZaCMo8.cjs"),c=require("./if-defined-MmHKu2JE.cjs");require("./index-BvzdO7xj.cjs");require("./index-BXulAD-4.cjs");require("./index-Ch6hp36E.cjs");const f=t.i`
button {
display: flex;
gap: var(--wui-spacing-xl);
width: 100%;
background-color: var(--wui-color-gray-glass-002);
border-radius: var(--wui-border-radius-xxs);
padding: var(--wui-spacing-m) var(--wui-spacing-s);
}
wui-text {
width: 100%;
}
wui-flex {
width: auto;
}
.network-icon {
width: var(--wui-spacing-2l);
height: var(--wui-spacing-2l);
border-radius: calc(var(--wui-spacing-2l) / 2);
overflow: hidden;
box-shadow:
0 0 0 3px var(--wui-color-gray-glass-002),
0 0 0 3px var(--wui-color-modal-bg);
}
`;var w=function(a,e,o,r){var s=arguments.length,i=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,o):r,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(a,e,o,r);else for(var l=a.length-1;l>=0;l--)(n=a[l])&&(i=(s<3?n(i):s>3?n(e,o,i):n(e,o))||i);return s>3&&i&&Object.defineProperty(e,o,i),i};let d=class extends t.i$1{constructor(){super(...arguments),this.networkImages=[""],this.text=""}render(){return t.x`
<button>
<wui-text variant="small-400" color="fg-200">${this.text}</wui-text>
<wui-flex gap="3xs" alignItems="center">
${this.networksTemplate()}
<wui-icon name="chevronRight" size="sm" color="fg-200"></wui-icon>
</wui-flex>
</button>
`}networksTemplate(){const e=this.networkImages.slice(0,5);return t.x` <wui-flex class="networks">
${e==null?void 0:e.map(o=>t.x` <wui-flex class="network-icon"> <wui-image src=${o}></wui-image> </wui-flex>`)}
</wui-flex>`}};d.styles=[t.resetStyles,t.elementStyles,f];w([c.n({type:Array})],d.prototype,"networkImages",void 0);w([c.n()],d.prototype,"text",void 0);d=w([c.customElement("wui-compatible-network")],d);const g=t.i`
wui-compatible-network {
margin-top: var(--wui-spacing-l);
}
`;var p=function(a,e,o,r){var s=arguments.length,i=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,o):r,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(a,e,o,r);else for(var l=a.length-1;l>=0;l--)(n=a[l])&&(i=(s<3?n(i):s>3?n(e,o,i):n(e,o))||i);return s>3&&i&&Object.defineProperty(e,o,i),i};exports.W3mWalletReceiveView=class extends t.i$1{constructor(){super(),this.unsubscribe=[],this.address=t.AccountController.state.address,this.profileName=t.AccountController.state.profileName,this.network=t.ChainController.state.activeCaipNetwork,this.preferredAccountTypes=t.AccountController.state.preferredAccountTypes,this.unsubscribe.push(t.AccountController.subscribe(e=>{e.address?(this.address=e.address,this.profileName=e.profileName,this.preferredAccountTypes=e.preferredAccountTypes):t.SnackController.showError("Account not found")}),t.ChainController.subscribeKey("activeCaipNetwork",e=>{e!=null&&e.id&&(this.network=e)}))}disconnectedCallback(){this.unsubscribe.forEach(e=>e())}render(){if(!this.address)throw new Error("w3m-wallet-receive-view: No account provided");const e=t.AssetUtil.getNetworkImage(this.network);return t.x` <wui-flex
flexDirection="column"
.padding=${["0","l","l","l"]}
alignItems="center"
>
<wui-chip-button
data-testid="receive-address-copy-button"
@click=${this.onCopyClick.bind(this)}
text=${c.UiHelperUtil.getTruncateString({string:this.profileName||this.address||"",charsStart:this.profileName?18:4,charsEnd:this.profileName?0:4,truncate:this.profileName?"end":"middle"})}
icon="copy"
size="sm"
imageSrc=${e||""}
variant="gray"
></wui-chip-button>
<wui-flex
flexDirection="column"
.padding=${["l","0","0","0"]}
alignItems="center"
gap="s"
>
<wui-qr-code
size=${232}
theme=${t.ThemeController.state.themeMode}
uri=${this.address}
?arenaClear=${!0}
color=${c.o(t.ThemeController.state.themeVariables["--w3m-qr-color"])}
data-testid="wui-qr-code"
></wui-qr-code>
<wui-text variant="paragraph-500" color="fg-100" align="center">
Copy your address or scan this QR code
</wui-text>
</wui-flex>
${this.networkTemplate()}
</wui-flex>`}networkTemplate(){var l,m;const e=t.ChainController.getAllRequestedCaipNetworks(),o=t.ChainController.checkIfSmartAccountEnabled(),r=t.ChainController.state.activeCaipNetwork,s=e.filter(u=>(u==null?void 0:u.chainNamespace)===(r==null?void 0:r.chainNamespace));if(((l=this.preferredAccountTypes)==null?void 0:l[r==null?void 0:r.chainNamespace])===t.W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT&&o)return r?t.x`<wui-compatible-network
@click=${this.onReceiveClick.bind(this)}
text="Only receive assets on this network"
.networkImages=${[t.AssetUtil.getNetworkImage(r)??""]}
></wui-compatible-network>`:null;const n=((m=s==null?void 0:s.filter(u=>{var h;return(h=u==null?void 0:u.assets)==null?void 0:h.imageId}))==null?void 0:m.slice(0,5)).map(t.AssetUtil.getNetworkImage).filter(Boolean);return t.x`<wui-compatible-network
@click=${this.onReceiveClick.bind(this)}
text="Only receive assets on these networks"
.networkImages=${n}
></wui-compatible-network>`}onReceiveClick(){t.RouterController.push("WalletCompatibleNetworks")}onCopyClick(){try{this.address&&(t.CoreHelperUtil.copyToClopboard(this.address),t.SnackController.showSuccess("Address copied"))}catch{t.SnackController.showError("Failed to copy")}}};exports.W3mWalletReceiveView.styles=g;p([c.r()],exports.W3mWalletReceiveView.prototype,"address",void 0);p([c.r()],exports.W3mWalletReceiveView.prototype,"profileName",void 0);p([c.r()],exports.W3mWalletReceiveView.prototype,"network",void 0);p([c.r()],exports.W3mWalletReceiveView.prototype,"preferredAccountTypes",void 0);exports.W3mWalletReceiveView=p([c.customElement("w3m-wallet-receive-view")],exports.W3mWalletReceiveView);
//# sourceMappingURL=receive-B7N0O1KV.cjs.map