From 322faa6a9274f56985d38d40cbabf611278d1c45 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Tue, 1 Nov 2022 18:42:15 +0100 Subject: [PATCH] create page of shared maps and playlists --- src/renderer/App.tsx | 2 ++ .../maps-playlists-panel.component.tsx | 14 +++++++++ .../bs-version-item.component.tsx | 31 ++++++++----------- .../maps-nav-bar-item.component.tsx | 18 +++++++++++ .../nav-bar-items/nav-bar-item.component.tsx | 25 +++++++++++++++ .../nav-bar/nav-bar-spliter.component.tsx | 5 +++ .../components/nav-bar/nav-bar.component.tsx | 6 +++- .../shared/tab-nav-bar.component.tsx | 4 +-- .../slideshow/slideshow.component.tsx | 15 +++++++-- .../components/svgs/bsm-icon.component.tsx | 4 ++- .../bs-map-difficulty-icon.component.tsx | 10 ++++++ .../available-versions-list.components.tsx | 11 +------ src/renderer/pages/maps-page.component.tsx | 14 +++++++++ 13 files changed, 125 insertions(+), 34 deletions(-) create mode 100644 src/renderer/components/maps-mangement-components/maps-playlists-panel.component.tsx rename src/renderer/components/nav-bar/{ => nav-bar-items}/bs-version-item.component.tsx (66%) create mode 100644 src/renderer/components/nav-bar/nav-bar-items/maps-nav-bar-item.component.tsx create mode 100644 src/renderer/components/nav-bar/nav-bar-items/nav-bar-item.component.tsx create mode 100644 src/renderer/components/nav-bar/nav-bar-spliter.component.tsx create mode 100644 src/renderer/components/svgs/icons/bs-map-difficulty-icon.component.tsx create mode 100644 src/renderer/pages/maps-page.component.tsx diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index e9826256..73b0aef7 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -10,6 +10,7 @@ import { useEffect } from "react"; import { ThemeService } from "./services/theme.service"; import { NotificationOverlay } from "./components/notification/notification-overlay.component"; import { PageStateService } from "./services/page-state.service"; +import MapsPage from "./pages/maps-page.component"; export default function App() { @@ -38,6 +39,7 @@ export default function App() {
}/> + }/> }/> }/> diff --git a/src/renderer/components/maps-mangement-components/maps-playlists-panel.component.tsx b/src/renderer/components/maps-mangement-components/maps-playlists-panel.component.tsx new file mode 100644 index 00000000..390a7ccc --- /dev/null +++ b/src/renderer/components/maps-mangement-components/maps-playlists-panel.component.tsx @@ -0,0 +1,14 @@ +import { BSVersion } from "shared/bs-version.interface" +import { TabNavBar } from "../shared/tab-nav-bar.component" + +type Props = { + version?: BSVersion +} + +export function MapsPlaylistsPanel({version}: Props) { + return ( +
+ {}}/> +
+ ) +} diff --git a/src/renderer/components/nav-bar/bs-version-item.component.tsx b/src/renderer/components/nav-bar/nav-bar-items/bs-version-item.component.tsx similarity index 66% rename from src/renderer/components/nav-bar/bs-version-item.component.tsx rename to src/renderer/components/nav-bar/nav-bar-items/bs-version-item.component.tsx index c7d8aa0a..f9e1f301 100644 --- a/src/renderer/components/nav-bar/bs-version-item.component.tsx +++ b/src/renderer/components/nav-bar/nav-bar-items/bs-version-item.component.tsx @@ -5,12 +5,12 @@ import { useEffect, useState } from "react"; import { combineLatest, Subscription } from "rxjs"; import { BSLauncherService, LaunchMods } from "renderer/services/bs-launcher.service"; import { ConfigurationService } from "renderer/services/configuration.service"; -import { BsmButton } from "../shared/bsm-button.component"; import { BSUninstallerService } from "renderer/services/bs-uninstaller.service"; import { BSVersionManagerService } from "renderer/services/bs-version-manager.service"; -import { BsmIcon } from "../svgs/bsm-icon.component"; +import { BsmIcon } from "../../svgs/bsm-icon.component"; import { ReactFitty } from "react-fitty"; import { useThemeColor } from 'renderer/hooks/use-theme-color.hook'; +import { NavBarItem } from './nav-bar-item.component'; export function BsVersionItem(props: {version: BSVersion}) { @@ -24,7 +24,7 @@ export function BsVersionItem(props: {version: BSVersion}) { const [downloading, setDownloading] = useState(false); const [downloadPercent, setDownloadPercent] = useState(0); - const {firstColor, secondColor} = useThemeColor(); + const secondColor = useThemeColor("second-color"); const isActive = (): boolean => { return props.version?.BSVersion === state?.BSVersion && props?.version.steam === state?.steam && props?.version.oculus === state?.oculus && props?.version.name === state?.name; @@ -77,19 +77,14 @@ export function BsVersionItem(props: {version: BSVersion}) { } - return ( -
  • - {downloading &&
    } -
    - - {renderIcon()} -
    - {props.version.name || props.version.BSVersion} -
    - - {downloading && } -
    -
  • - - ) + return ( + + + {renderIcon()} +
    + {props.version.name || props.version.BSVersion} +
    + +
    + ) } \ No newline at end of file diff --git a/src/renderer/components/nav-bar/nav-bar-items/maps-nav-bar-item.component.tsx b/src/renderer/components/nav-bar/nav-bar-items/maps-nav-bar-item.component.tsx new file mode 100644 index 00000000..8d908bc6 --- /dev/null +++ b/src/renderer/components/nav-bar/nav-bar-items/maps-nav-bar-item.component.tsx @@ -0,0 +1,18 @@ +import { Link } from "react-router-dom"; +import { BsmIcon } from "renderer/components/svgs/bsm-icon.component"; +import { useThemeColor } from "renderer/hooks/use-theme-color.hook"; +import { NavBarItem } from "./nav-bar-item.component"; + +export function MapsNavBarItem() { + + const color = useThemeColor("first-color"); + + return ( + + + + Maps + + + ) +} diff --git a/src/renderer/components/nav-bar/nav-bar-items/nav-bar-item.component.tsx b/src/renderer/components/nav-bar/nav-bar-items/nav-bar-item.component.tsx new file mode 100644 index 00000000..91a47f11 --- /dev/null +++ b/src/renderer/components/nav-bar/nav-bar-items/nav-bar-item.component.tsx @@ -0,0 +1,25 @@ +import { useThemeColor } from "renderer/hooks/use-theme-color.hook"; +import { BsmButton } from "../../shared/bsm-button.component"; + +type Props = { + children: JSX.Element, + isDownloading?: boolean + progress?: number, + isActive?: boolean, + onCancel?: (e: React.MouseEvent) => void +} + +export function NavBarItem({progress, isDownloading, children, isActive, onCancel}: Props) { + + const {firstColor, secondColor} = useThemeColor(); + + return ( +
  • + {isDownloading &&
    } +
    + {children} + {isDownloading && } +
    +
  • + ) +} diff --git a/src/renderer/components/nav-bar/nav-bar-spliter.component.tsx b/src/renderer/components/nav-bar/nav-bar-spliter.component.tsx new file mode 100644 index 00000000..35521307 --- /dev/null +++ b/src/renderer/components/nav-bar/nav-bar-spliter.component.tsx @@ -0,0 +1,5 @@ +export function NavBarSpliter() { + return ( + + ) +} diff --git a/src/renderer/components/nav-bar/nav-bar.component.tsx b/src/renderer/components/nav-bar/nav-bar.component.tsx index 2b2f73dd..f201cb35 100644 --- a/src/renderer/components/nav-bar/nav-bar.component.tsx +++ b/src/renderer/components/nav-bar/nav-bar.component.tsx @@ -1,10 +1,12 @@ import './nav-bar.component.css' -import { BsVersionItem } from './bs-version-item.component'; +import { BsVersionItem } from './nav-bar-items/bs-version-item.component'; import { BSVersionManagerService } from '../../services/bs-version-manager.service'; import { Link } from 'react-router-dom'; import { BsmIcon } from '../svgs/bsm-icon.component'; import { useObservable } from 'renderer/hooks/use-observable.hook'; import { BsManagerIcon } from './bsmanager-icon.component'; +import { MapsNavBarItem } from './nav-bar-items/maps-nav-bar-item.component'; +import { NavBarSpliter } from './nav-bar-spliter.component'; export function NavBar() { @@ -16,6 +18,8 @@ export function NavBar() {