diff --git a/ui/component/livestreamChatLayout/view.jsx b/ui/component/livestreamChatLayout/view.jsx index 15f02f2f8..c7dcfd92d 100644 --- a/ui/component/livestreamChatLayout/view.jsx +++ b/ui/component/livestreamChatLayout/view.jsx @@ -83,8 +83,12 @@ export default function LivestreamChatLayout(props: Props) { const [superchatsAmount, setSuperchatsAmount] = React.useState(false); const [chatElement, setChatElement] = React.useState(); - const superChatsByChronologicalOrder = - superChatsByAmount && superChatsByAmount.sort((a, b) => b.timestamp - a.timestamp); + let superChatsByChronologicalOrder = []; + if (superChatsByAmount) superChatsByAmount.forEach((chat) => superChatsByChronologicalOrder.push(chat)); + if (superChatsByChronologicalOrder.length > 0) { + superChatsByChronologicalOrder.sort((a, b) => b.timestamp - a.timestamp); + } + const commentsToDisplay = viewMode === VIEW_MODES.CHAT ? commentsByChronologicalOrder : superChatsByChronologicalOrder; const commentsLength = commentsToDisplay && commentsToDisplay.length; @@ -291,13 +295,13 @@ export default function LivestreamChatLayout(props: Props) { 'livestream-comments__top-actions--mobile': isMobile, })} > - {isMobile && ((pinnedComment && showPinned) || (superChatsByChronologicalOrder && !superchatsHidden)) && ( + {isMobile && ((pinnedComment && showPinned) || (superChatsByAmount && !superchatsHidden)) && ( )} - {viewMode === VIEW_MODES.CHAT && superChatsByChronologicalOrder && ( + {viewMode === VIEW_MODES.CHAT && superChatsByAmount && ( { hasNavigated: selectHasNavigated(state), hasUnclaimedRefereeReward: selectHasUnclaimedRefereeReward(state), homepageData: selectHomepageData(state), + wildWestDisabled: selectWildWestDisabled(state), }; }; diff --git a/ui/component/router/view.jsx b/ui/component/router/view.jsx index 9a64012de..08d783b56 100644 --- a/ui/component/router/view.jsx +++ b/ui/component/router/view.jsx @@ -8,7 +8,7 @@ import { useIsLargeScreen } from 'effects/use-screensize'; import { lazyImport } from 'util/lazyImport'; import { LINKED_COMMENT_QUERY_PARAM } from 'constants/comment'; import { parseURI, isURIValid } from 'util/lbryURI'; -import { SITE_TITLE, WELCOME_VERSION, SIMPLE_SITE } from 'config'; +import { SITE_TITLE, WELCOME_VERSION } from 'config'; import LoadingBarOneOff from 'component/loadingBarOneOff'; import { GetLinksData } from 'util/buildHomepage'; @@ -129,6 +129,7 @@ type Props = { setReferrer: (?string) => void, hasUnclaimedRefereeReward: boolean, homepageData: any, + wildWestDisabled: boolean, }; type PrivateRouteProps = Props & { @@ -168,7 +169,9 @@ function AppRouter(props: Props) { hasUnclaimedRefereeReward, setReferrer, homepageData, + wildWestDisabled, } = props; + const { entries, listen, action: historyAction } = history; const entryIndex = history.index; const urlParams = new URLSearchParams(search); @@ -277,7 +280,7 @@ function AppRouter(props: Props) { - {SIMPLE_SITE && } + {!wildWestDisabled && } {homeCategoryPages} diff --git a/ui/component/sideNavigation/index.js b/ui/component/sideNavigation/index.js index a250c5b57..884fd7ba3 100644 --- a/ui/component/sideNavigation/index.js +++ b/ui/component/sideNavigation/index.js @@ -4,7 +4,7 @@ import { selectSubscriptions } from 'redux/selectors/subscriptions'; import { doClearPurchasedUriSuccess } from 'redux/actions/file'; import { selectFollowedTags } from 'redux/selectors/tags'; import { selectUserVerifiedEmail, selectUser } from 'redux/selectors/user'; -import { selectHomepageData, selectLanguage } from 'redux/selectors/settings'; +import { selectHomepageData, selectLanguage, selectWildWestDisabled } from 'redux/selectors/settings'; import { doSignOut } from 'redux/actions/app'; import { selectUnseenNotificationCount } from 'redux/selectors/notifications'; import { selectPurchaseUriSuccess } from 'redux/selectors/claims'; @@ -21,6 +21,7 @@ const select = (state) => ({ user: selectUser(state), homepageData: selectHomepageData(state), activeChannelStakedLevel: selectActiveChannelStakedLevel(state), + wildWestDisabled: selectWildWestDisabled(state), }); export default connect(select, { diff --git a/ui/component/sideNavigation/view.jsx b/ui/component/sideNavigation/view.jsx index f652e8369..7be752f7b 100644 --- a/ui/component/sideNavigation/view.jsx +++ b/ui/component/sideNavigation/view.jsx @@ -112,6 +112,7 @@ type Props = { user: ?User, homepageData: any, activeChannelStakedLevel: number, + wildWestDisabled: boolean, }; function SideNavigation(props: Props) { @@ -130,6 +131,7 @@ function SideNavigation(props: Props) { user, followedTags, activeChannelStakedLevel, + wildWestDisabled, } = props; const isLargeScreen = useIsLargeScreen(); @@ -480,7 +482,7 @@ function SideNavigation(props: Props) { <> {/* $FlowFixMe -- GetLinksData should fix it's data type */} {EXTRA_SIDEBAR_LINKS.map((linkProps) => getLink(linkProps))} - {getLink(WILD_WEST)} + {!wildWestDisabled && getLink(WILD_WEST)} )} diff --git a/ui/redux/selectors/settings.js b/ui/redux/selectors/settings.js index 367ca1c48..960c00d8b 100644 --- a/ui/redux/selectors/settings.js +++ b/ui/redux/selectors/settings.js @@ -1,5 +1,6 @@ import * as SETTINGS from 'constants/settings'; import * as DAEMON_SETTINGS from 'constants/daemon_settings'; +import SUPPORTED_BROWSER_LANGUAGES from 'constants/supported_browser_languages'; import { createSelector } from 'reselect'; import { ENABLE_MATURE } from 'config'; @@ -72,4 +73,17 @@ export const selectHomepageData = createSelector( } ); +export const selectInRegionByCode = (state, code) => { + const hp = selectClientSetting(state, SETTINGS.HOMEPAGE); + const lang = selectLanguage(state); + + return hp === code || lang === code; +}; + +export const selectWildWestDisabled = (state) => { + const deRegion = selectInRegionByCode(state, SUPPORTED_BROWSER_LANGUAGES.de); + + return deRegion; +}; + export const selectosNotificationsEnabled = (state) => selectClientSetting(state, SETTINGS.OS_NOTIFICATIONS_ENABLED);