UNPKG

tg-screen

Version:

Declarative telegram mini app screen

3 lines (2 loc) 3.38 kB
import o,{useEffect as e}from"react";import{useSignal as t,mainButton as i,secondaryButton as r,backButton as n,settingsButton as s,closingBehavior as a,swipeBehavior as u,viewport as l,miniApp as c}from"@telegram-apps/sdk-react";var d=function(){return d=Object.assign||function(o){for(var e,t=1,i=arguments.length;t<i;t++)for(var r in e=arguments[t])Object.prototype.hasOwnProperty.call(e,r)&&(o[r]=e[r]);return o},d.apply(this,arguments)};function f(o,e){var t={};for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&e.indexOf(i)<0&&(t[i]=o[i]);if(null!=o&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(o);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(o,i[r])&&(t[i[r]]=o[i[r]])}return t}"function"==typeof SuppressedError&&SuppressedError;var p={hasShineEffect:!1,isEnabled:!0,isLoaderVisible:!1,isVisible:!1,text:"Main Button",backgroundColor:"",textColor:""},b={hasShineEffect:!1,isEnabled:!0,isLoaderVisible:!1,isVisible:!1,text:"Secondary Button",position:"left",backgroundColor:"",textColor:""};function m(m){var C=m.children,g=m.mainButtonProps,v=m.secondaryButtonProps,h=m.onBack,S=m.onSettings,V=m.closeConfirmation,M=void 0===V||V,k=m.autoExpand,y=void 0===k||k,B=m.allowSwipeExpand,O=void 0===B||B,P=m.backgroundColor,E=m.headerColor,x=m.bottomBarColor,_=m.silentErrors,w=void 0===_||_,j=o.useRef((function(){})),R=o.useRef((function(){})),H=o.useRef((function(){})),L=o.useRef((function(){})),F=t(i.isMounted),I=t(r.isMounted),q=t(n.isMounted),z=t(s.isMounted),A=t(a.isMounted),D=t(u.isMounted),G=t(l.isMounted),J=t(c.isMounted),K=t(n.isSupported),N=t(s.isSupported),Q=t(u.isSupported),T=t(c.isSupported);return e((function(){A&&(M?a.enableConfirmation():a.disableConfirmation())}),[M,A]),e((function(){!D||!Q&&w||(O?u.enableVertical():u.disableVertical())}),[O,D,w]),e((function(){G&&y&&l.expand()}),[y,G]),e((function(){if(q&&(K||!w)){if(h){n.show();var o=n.onClick(h);return j.current=o,o}n.hide()}}),[h,q,w]),e((function(){if(F){if(g){var o=g.onClick,e=f(g,["onClick"]);i.setParams(d(d(d({},p),e),{isVisible:!0}));var t=i.onClick(o);return R.current=t,t}i.isVisible()&&i.setParams({isVisible:!1})}}),[g,F]),e((function(){if(I){if(v){var o=v.onClick,e=f(v,["onClick"]);r.setParams(d(d(d({},b),e),{isVisible:!0}));var t=r.onClick(o);return H.current=t,t}r.isVisible()&&r.setParams({isVisible:!1})}}),[v,I]),e((function(){if(z&&(N||!w)){if(S){s.show();var o=s.onClick(S);return L.current=o,o}s.hide()}}),[S,z,w]),e((function(){!J||!T&&w||c.setBackgroundColor(P||"bg_color")}),[J,P,w]),e((function(){!J||!T&&w||c.setHeaderColor(E||"bg_color")}),[J,E,w]),e((function(){!J||!T&&w||c.setBottomBarColor(x||"bottom_bar_bg_color")}),[J,x,w]),e((function(){return function(){j.current(),R.current(),H.current(),L.current(),n.isMounted()&&n.isSupported()&&n.hide(),i.isMounted()&&i.isVisible()&&i.setParams(d(d({},p),{isVisible:!1})),r.isMounted()&&r.isVisible()&&r.setParams(d(d({},b),{isVisible:!1})),s.isMounted()&&s.isSupported()&&s.hide(),a.isMounted()&&a.disableConfirmation(),u.isMounted()&&u.isSupported()&&u.disableVertical(),c.isMounted()&&c.isSupported()&&(P&&c.setBackgroundColor("bg_color"),E&&c.setHeaderColor("bg_color"),x&&c.setBottomBarColor("bottom_bar_bg_color"))}}),[]),o.createElement(o.Fragment,null,C)}export{m as TgScreen}; //# sourceMappingURL=index.esm.js.map