From 2a19f9f63ca7146751f6f84569b78d21026faa81 Mon Sep 17 00:00:00 2001 From: zeppi Date: Thu, 5 Aug 2021 12:24:43 -0400 Subject: [PATCH] lrytv sunset nag --- ui/component/app/view.jsx | 7 +++++++ web/component/nag-sunset.jsx | 29 +++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 web/component/nag-sunset.jsx diff --git a/ui/component/app/view.jsx b/ui/component/app/view.jsx index 891ee6d3b..02bf8b2e8 100644 --- a/ui/component/app/view.jsx +++ b/ui/component/app/view.jsx @@ -48,9 +48,11 @@ const NagDegradedPerformance = lazyImport(() => import('web/component/nag-degraded-performance' /* webpackChunkName: "secondary" */) ); const NagNoUser = lazyImport(() => import('web/component/nag-no-user' /* webpackChunkName: "nag-no-user" */)); +const NagSunset = lazyImport(() => import('web/component/nag-sunset' /* webpackChunkName: "nag-no-user" */)); const YoutubeWelcome = lazyImport(() => import('web/component/youtubeReferralWelcome' /* webpackChunkName: "secondary" */) ); + // @endif const SyncFatalError = lazyImport(() => import('component/syncFatalError' /* webpackChunkName: "syncFatalError" */)); @@ -162,12 +164,14 @@ function App(props: Props) { const [upgradeNagClosed, setUpgradeNagClosed] = useState(false); const [resolvedSubscriptions, setResolvedSubscriptions] = useState(false); const [sidebarOpen] = usePersistedState('sidebar', true); + const [seenSunsestMessage, setSeenSunsetMessage] = usePersistedState('lbrytv-sunset', false); const showUpgradeButton = (autoUpdateDownloaded || (process.platform === 'linux' && isUpgradeAvailable)) && !upgradeNagClosed; // referral claiming const referredRewardAvailable = rewards && rewards.some((reward) => reward.reward_type === REWARDS.TYPE_REFEREE); const urlParams = new URLSearchParams(search); const rawReferrerParam = urlParams.get('r'); + const fromLbrytvParam = urlParams.get('sunset'); const sanitizedReferrerParam = rawReferrerParam && rawReferrerParam.replace(':', '#'); const shouldHideNag = pathname.startsWith(`/$/${PAGES.EMBED}`) || pathname.startsWith(`/$/${PAGES.AUTH_VERIFY}`); const userId = user && user.id; @@ -460,6 +464,9 @@ function App(props: Props) { {!SIMPLE_SITE && !shouldHideNag && } {!shouldHideNag && } + {!SIMPLE_SITE && fromLbrytvParam && !seenSunsestMessage && !shouldHideNag && ( + setSeenSunsetMessage(true)} /> + )} {(lbryTvApiStatus === STATUS_DEGRADED || lbryTvApiStatus === STATUS_FAILING) && !shouldHideNag && ( setLbryTvApiStatus(STATUS_OK)} /> )} diff --git a/web/component/nag-sunset.jsx b/web/component/nag-sunset.jsx new file mode 100644 index 000000000..37cd8a5ce --- /dev/null +++ b/web/component/nag-sunset.jsx @@ -0,0 +1,29 @@ +// @flow +import React from 'react'; +import Nag from 'component/common/nag'; +import I18nMessage from 'component/i18nMessage'; +import * as PAGES from 'constants/pages'; +import { useHistory } from 'react-router'; + +type Props = { + email?: User, + onClose: () => void, +}; +export default function NagSunset(props: Props) { + const { email, onClose } = props; + const { push } = useHistory(); + + const handleOnClick = () => { + onClose(); + push(`/$/${PAGES.AUTH_SIGNIN}`); + }; + return ( + lbry.tv has been retired. You have been magically transported to odysee.com} + actionText={__('Sign In')} + onClick={!email ? handleOnClick : undefined} + onClose={onClose} + /> + ); +}