pstream is dead; long live pstream taciturnaxolotl.github.io/pstream-ng/
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

move app setting button

Pas 7c6b27b9 949b1081

+19 -31
+2 -1
src/assets/locales/en.json
··· 607 607 "settings": "Settings", 608 608 "support": "Support", 609 609 "discover": "Discover", 610 - "development": "Development" 610 + "development": "Development", 611 + "desktop": "App Settings" 611 612 } 612 613 }, 613 614 "notFound": {
+8
src/components/LinksDropdown.tsx
··· 291 291 <DropdownLink href="/settings" icon={Icons.SETTINGS}> 292 292 {t("navigation.menu.settings")} 293 293 </DropdownLink> 294 + <DropdownLink 295 + onClick={() => 296 + window.dispatchEvent(new CustomEvent("pstream-desktop-settings")) 297 + } 298 + icon={Icons.GEAR} 299 + > 300 + {t("navigation.menu.desktop")} 301 + </DropdownLink> 294 302 <DropdownLink href="/watch-history" icon={Icons.CLOCK}> 295 303 {t("home.watchHistory.sectionTitle")} 296 304 </DropdownLink>
+8 -26
src/components/layout/Navigation.tsx
··· 9 9 import { useNotifications } from "@/components/overlays/notificationsModal"; 10 10 import { Lightbar } from "@/components/utils/Lightbar"; 11 11 import { useAuth } from "@/hooks/auth/useAuth"; 12 - import { useIsDesktopApp } from "@/hooks/useIsDesktopApp"; 13 12 import { BlurEllipsis } from "@/pages/layouts/SubPageLayout"; 14 13 import { conf } from "@/setup/config"; 15 14 import { useBannerSize } from "@/stores/banner"; ··· 22 21 noLightbar?: boolean; 23 22 doBackground?: boolean; 24 23 clearBackground?: boolean; 25 - hideBrandPill?: boolean; 26 24 } 27 25 28 26 export function Navigation(props: NavigationProps) { ··· 31 29 const { loggedIn } = useAuth(); 32 30 const [scrollPosition, setScrollPosition] = useState(0); 33 31 const { openNotifications, getUnreadCount } = useNotifications(); 34 - const isDesktopApp = useIsDesktopApp(); 35 - 36 - const handleDesktopSettings = () => { 37 - window.dispatchEvent(new CustomEvent("pstream-desktop-settings")); 38 - }; 39 32 40 33 useEffect(() => { 41 34 const handleScroll = () => { ··· 143 136 <div className={classNames("fixed left-0 right-0 flex items-center")}> 144 137 <div className="px-7 py-5 relative z-[60] flex flex-1 items-center justify-between"> 145 138 <div className="flex items-center space-x-1.5 ssm:space-x-3 pointer-events-auto"> 146 - {!(props.hideBrandPill && isDesktopApp) && ( 147 - <Link 148 - className="block tabbable rounded-full text-xs ssm:text-base" 149 - to="/" 150 - onClick={() => window.scrollTo(0, 0)} 151 - > 152 - <BrandPill clickable header /> 153 - </Link> 154 - )} 139 + <Link 140 + className="block tabbable rounded-full text-xs ssm:text-base" 141 + to="/" 142 + onClick={() => window.scrollTo(0, 0)} 143 + > 144 + <BrandPill clickable header /> 145 + </Link> 155 146 <a 156 147 href={conf().DISCORD_LINK} 157 148 target="_blank" ··· 211 202 })()} 212 203 </a> 213 204 </div> 214 - <div className="relative pointer-events-auto flex items-center gap-2"> 215 - {isDesktopApp && ( 216 - <button 217 - type="button" 218 - onClick={handleDesktopSettings} 219 - className="text-xl text-white tabbable rounded-full backdrop-blur-lg" 220 - > 221 - <IconPatch icon={Icons.GEAR} clickable downsized navigation /> 222 - </button> 223 - )} 205 + <div className="relative pointer-events-auto"> 224 206 <LinksDropdown> 225 207 {loggedIn ? <UserAvatar withName /> : <NoUserAvatar />} 226 208 </LinksDropdown>
-1
src/pages/layouts/HomeLayout.tsx
··· 30 30 bg={enableFeatured ? true : props.showBg} 31 31 clearBackground={clearBackground} 32 32 noLightbar={enableFeatured} 33 - hideBrandPill 34 33 /> 35 34 {props.children} 36 35 </FooterView>
+1 -3
src/pages/parts/home/HeroPart.tsx
··· 6 6 import { ThinContainer } from "@/components/layout/ThinContainer"; 7 7 import { useSlashFocus } from "@/components/player/hooks/useSlashFocus"; 8 8 import { HeroTitle } from "@/components/text/HeroTitle"; 9 - import { useIsDesktopApp } from "@/hooks/useIsDesktopApp"; 10 9 import { useIsIOS, useIsMobile, useIsPWA } from "@/hooks/useIsMobile"; 11 10 import { useIsTV } from "@/hooks/useIsTv"; 12 11 import { useRandomTranslation } from "@/hooks/useRandomTranslation"; ··· 47 46 const bannerSize = useBannerSize(); 48 47 const { isMobile } = useIsMobile(); 49 48 const { isTV } = useIsTV(); 50 - const isDesktopApp = useIsDesktopApp(); 51 49 52 50 const stickStateChanged = useCallback( 53 51 (isFixed: boolean) => { ··· 83 81 showTitle ? "mt-44" : "mt-4", 84 82 )} 85 83 > 86 - {showTitle && (!isTV || search.length === 0) && !isDesktopApp ? ( 84 + {showTitle && (!isTV || search.length === 0) ? ( 87 85 <div className="relative z-10 mb-16"> 88 86 <HeroTitle className="mx-auto max-w-md">{title}</HeroTitle> 89 87 </div>