You haven't registered store for our application yet
\r\n
Please contact our to install app
\r\n \r\n \r\n );\r\n}\r\n\r\nexport default NotFound;\r\n","import React from \"react\";\r\nimport FacebookLoginRedirect from \"views/Admin/FacebookLogin\";\r\nimport NotFoundShop from \"views/NotFound\";\r\n\r\nconst NotFoundRoutes = {\r\n path: \"/not-found\",\r\n element: \r\n};\r\n\r\nconst RedirectFacebookLoginRoutes = {\r\n path: \"/facebook-auth\",\r\n element: \r\n};\r\n\r\nconst NotFoundUrlRoutes = {\r\n path: \"*\",\r\n element: \r\n};\r\n\r\nconst EndpointManager = {\r\n NotFoundRoutes,\r\n NotFoundUrlRoutes,\r\n RedirectFacebookLoginRoutes\r\n};\r\nexport default EndpointManager;\r\n","import { useRoutes } from \"react-router-dom\";\r\nimport config from \"config\";\r\nimport MainRoutes, { OnboardingRoute, PricingRoute } from \"./MainRoutes\";\r\nimport { CreateTikTokRoutes, MyTikTokRoutes } from \"./TikTokRoutes\";\r\nimport { InstagramRoutes, MyInstagramRoutes } from \"./InstagramRoutes\";\r\nimport EndpointManager from \"./OtherRoutes\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootReducer } from \"stores/Admin/reducers\";\r\n\r\nexport default function ThemeRoutes() {\r\n const tiktokWidgetReducer = useSelector(\r\n (state: RootReducer) => state.TiktokWidgetReducer\r\n );\r\n const instagramWidgetReducer = useSelector(\r\n (state: RootReducer) => state.InstagramWidgetReducer\r\n );\r\n\r\n const isOnBoarding =\r\n !tiktokWidgetReducer.count && !instagramWidgetReducer.count;\r\n\r\n return useRoutes(\r\n [\r\n MainRoutes(),\r\n CreateTikTokRoutes(isOnBoarding),\r\n MyTikTokRoutes(isOnBoarding),\r\n InstagramRoutes(isOnBoarding),\r\n MyInstagramRoutes(instagramWidgetReducer.count),\r\n PricingRoute(),\r\n OnboardingRoute(isOnBoarding),\r\n EndpointManager.NotFoundRoutes,\r\n EndpointManager.NotFoundUrlRoutes,\r\n EndpointManager.RedirectFacebookLoginRoutes\r\n ],\r\n config.basename\r\n );\r\n}\r\n","import { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nfunction NavigationScroll({ children }: any) {\r\n const location = useLocation();\r\n const { pathname } = location;\r\n\r\n useEffect(() => {\r\n window.scrollTo({\r\n top: 0,\r\n left: 0,\r\n behavior: \"smooth\",\r\n });\r\n }, [pathname]);\r\n return children || null;\r\n}\r\n\r\nexport default NavigationScroll;\r\n","import { AppProvider } from \"@shopify/polaris\";\r\nimport translations from \"@shopify/polaris/locales/en.json\";\r\nimport React from \"react\";\r\n\r\nfunction withAppProvider(Component: any) {\r\n return function () {\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n}\r\n\r\n(function (l) {\r\n if (l.search[1] === \"/\") {\r\n var decoded = l.search\r\n .slice(1)\r\n .split(\"&\")\r\n .map(function (s) {\r\n return s.replace(/~and~/g, \"&\");\r\n })\r\n .join(\"?\");\r\n window.history.replaceState(\r\n null,\r\n \"\",\r\n l.pathname.slice(0, -1) + decoded + l.hash\r\n );\r\n }\r\n})(window.location);\r\n\r\n(String.prototype as any).format = function () {\r\n var args = arguments;\r\n return this.replace(/{([0-9]+)}/g, function (match: any, index: any) {\r\n return typeof args[index] == \"undefined\" ? match : args[index];\r\n });\r\n};\r\n\r\nexport default withAppProvider;\r\n","export class InspectPlugin {\r\n\r\n static Init(domain?: string) {\r\n const script2 = document.createElement(\"script\");\r\n script2.innerHTML = `\r\n (function () {\r\n window.__insp = window.__insp || [];\r\n __insp.push([\"wid\", 1903448965]);\r\n var ldinsp = function () {\r\n if (typeof window.__inspld != \"undefined\") return;\r\n window.__inspld = 1;\r\n var insp = document.createElement(\"script\");\r\n insp.type = \"text/javascript\";\r\n insp.async = true;\r\n insp.id = \"inspsync\";\r\n insp.src =\r\n (\"https:\" == document.location.protocol ? \"https\" : \"http\") +\r\n \"://cdn.inspectlet.com/inspectlet.js?wid=1903448965&r=\" +\r\n Math.floor(new Date().getTime() / 3600000);\r\n var x = document.getElementsByTagName(\"script\")[0];\r\n x.parentNode.insertBefore(insp, x);\r\n };\r\n setTimeout(ldinsp, 0);\r\n })();`;\r\n\r\n document.body.appendChild(script2);\r\n }\r\n}\r\n","import React, { useRef, useState } from \"react\";\r\nimport { PricingBannerStyled } from \"./PricingStyled\";\r\nimport { PricingScope } from \"repositories/dtos/responses/ShopResponse\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootReducer } from \"stores/Admin/reducers\";\r\nimport EventTrackingProvider from \"repositories/services/EventTracingProvider\";\r\nimport ShopAPI from \"repositories/implements/ShopAPI\";\r\nimport config from \"config\";\r\nimport { toastNotify } from \"Dependencies/Toast\";\r\nimport SniperLoading from \"ui-components/Loading/SniperLoading\";\r\nimport { useOutsideAlerter } from \"hooks\";\r\n\r\nexport default function PricingBannerPlan() {\r\n const shop = useSelector((state: RootReducer) => state.ShopReducer.shop);\r\n const [open, setOpen] = useState(\r\n shop.shopPricing.pricing === PricingScope.Basic\r\n );\r\n\r\n const [pendingUpgrade, setPendingUpgrade] = useState(false);\r\n const onUpgrade = (pricing: PricingScope) => async () => {\r\n if (!pendingUpgrade) {\r\n EventTrackingProvider.Track(\"pricing-trial\", shop);\r\n setPendingUpgrade(true);\r\n const resp = await ShopAPI.UpgradePricing(shop.domain, {\r\n TrialDays: config.Pricing.TrialDays,\r\n IsBillingMonthly: false,\r\n Pricing: pricing\r\n });\r\n if (resp?.Status && resp.Data?.value) {\r\n const subscriptUrl = resp.Data.value;\r\n window.location.href = subscriptUrl;\r\n setPendingUpgrade(false);\r\n return;\r\n }\r\n return toastNotify.errorMsg(resp?.Error);\r\n }\r\n };\r\n\r\n const onCloseActive = () => {\r\n setOpen(false);\r\n };\r\n const wrapperRef = useRef(null);\r\n useOutsideAlerter(wrapperRef, onCloseActive);\r\n\r\n return shop?.domain && open ? (\r\n \r\n
\r\n
Pricing Plan
\r\n
\r\n \r\n Sign up in less than 30 seconds and try out with our free 7 days\r\n trial to enjoy our app to the fullest.\r\n \r\n \r\n You can return to free plan anytime, with no hassle.\r\n