UNPKG

tg-screen

Version:

Declarative telegram mini app screen

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