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}
+ />
+ );
+}