From 47032ea0ff1287f715c1c88610c02a7f6340f7a0 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Tue, 4 Apr 2023 10:49:45 +0000 Subject: [PATCH] improve page layouts --- packages/app/src/pages/home/tabs.jsx | 15 +- packages/app/src/pages/index.jsx | 2 +- .../music/components/dashboard/index.jsx | 127 +----------- .../components/dashboard/releases/index.jsx | 108 +++++++++++ .../dashboard/{ => releases}/index.less | 4 +- .../src/pages/music/components/feed/index.jsx | 182 +++++++++++++----- .../pages/music/components/feed/index.less | 4 + packages/app/src/pages/music/index.jsx | 2 +- packages/app/src/pages/music/tabs.jsx | 38 +++- .../tv/components/controlPanel/index.jsx | 2 +- .../tv/components/{explore => feed}/index.jsx | 0 .../components/{explore => feed}/index.less | 0 packages/app/src/pages/tv/tabs.jsx | 43 +++-- 13 files changed, 319 insertions(+), 208 deletions(-) mode change 100755 => 100644 packages/app/src/pages/music/components/dashboard/index.jsx create mode 100644 packages/app/src/pages/music/components/dashboard/releases/index.jsx rename packages/app/src/pages/music/components/dashboard/{ => releases}/index.less (98%) rename packages/app/src/pages/tv/components/{explore => feed}/index.jsx (100%) rename packages/app/src/pages/tv/components/{explore => feed}/index.less (100%) diff --git a/packages/app/src/pages/home/tabs.jsx b/packages/app/src/pages/home/tabs.jsx index c2e8bbca..eef4a3d3 100755 --- a/packages/app/src/pages/home/tabs.jsx +++ b/packages/app/src/pages/home/tabs.jsx @@ -2,20 +2,23 @@ import FeedTab from "./components/feed" import GlobalTab from "./components/global" import SavedPostsTab from "./components/savedPosts" -export default { - "feed": { +export default [ + { + key: "feed", label: "Feed", - icon: "Rss", + icon: "IoMdPaper", component: FeedTab }, - "global": { + { + key: "global", label: "Global", icon: "Globe", component: GlobalTab }, - "savedPosts": { + { + key: "savedPosts", label: "Saved posts", icon: "Bookmark", component: SavedPostsTab } -} \ No newline at end of file +] \ No newline at end of file diff --git a/packages/app/src/pages/index.jsx b/packages/app/src/pages/index.jsx index 936f1309..f9cf1dfc 100755 --- a/packages/app/src/pages/index.jsx +++ b/packages/app/src/pages/index.jsx @@ -14,7 +14,7 @@ export default class Home extends React.Component { render() { const navMenuHeader = <>

- + {(t) => t("Timeline")}

{ - const response = await PlaylistsModel.getMyReleases().catch((err) => { - console.error(err) - app.message.error("Failed to load releases") - return null - }) - - return response -} - -const ReleaseItem = (props) => { - const { key, release } = props - - console.log(props) - - return
-
-
- -
-
-

- {release.title} -

- -

- {release.description} -

-
-
- -
- } - > - Modify - -
-
-} export default (props) => { - const [releases, setReleases] = React.useState([]) - const [loading, setLoading] = React.useState(false) - - const onClickEditTrack = (track_id) => { - console.log("Edit track", track_id) - - app.setLocation(`/music/creator?playlist_id=${track_id}`) - } - - const loadData = async () => { - setLoading(true) - - const releases = await getReleases() - - setLoading(false) - - console.log(releases) - - if (releases) { - setReleases(releases) - } - } - - React.useEffect(() => { - loadData() - }, []) - - if (loading) { - return - } - - return
-
-

- - Your releases -

- -
- app.setLocation("/music/creator")} - icon={} - type="primary" - > - New release - -
-
- -
- { - releases.map((release) => { - return onClickEditTrack(release._id)} - /> - }) - } -
+ return
+ Dashboard
} \ No newline at end of file diff --git a/packages/app/src/pages/music/components/dashboard/releases/index.jsx b/packages/app/src/pages/music/components/dashboard/releases/index.jsx new file mode 100644 index 00000000..5f2e0494 --- /dev/null +++ b/packages/app/src/pages/music/components/dashboard/releases/index.jsx @@ -0,0 +1,108 @@ +import React from "react" +import { Icons } from "components/Icons" +import { ImageViewer } from "components" +import * as antd from "antd" +import PlaylistsModel from "models/playlists" + +import "./index.less" + +const ReleaseItem = (props) => { + const { key, release } = props + + return
+
+
+ +
+
+

+ {release.title} +

+ +

+ {release.description} +

+
+
+ +
+ } + > + Modify + +
+
+} + +export default (props) => { + const onClickEditTrack = (track_id) => { + console.log("Edit track", track_id) + + app.setLocation(`/music/creator?playlist_id=${track_id}`) + } + + const [L_Releases, R_Releases, E_Releases] = app.cores.api.useRequest(PlaylistsModel.getMyReleases) + + if (E_Releases) { + console.error(E_Releases) + + return + } + + if (L_Releases) { + return + } + + return
+
+

+ + Your releases +

+ +
+ app.setLocation("/music/creator")} + icon={} + type="primary" + > + New release + +
+
+ +
+ { + R_Releases.map((release) => { + return onClickEditTrack(release._id)} + /> + }) + } +
+
+} \ No newline at end of file diff --git a/packages/app/src/pages/music/components/dashboard/index.less b/packages/app/src/pages/music/components/dashboard/releases/index.less similarity index 98% rename from packages/app/src/pages/music/components/dashboard/index.less rename to packages/app/src/pages/music/components/dashboard/releases/index.less index 9379dddd..0d1913cd 100755 --- a/packages/app/src/pages/music/components/dashboard/index.less +++ b/packages/app/src/pages/music/components/dashboard/releases/index.less @@ -4,7 +4,6 @@ width: 100%; - .music_panel_releases_header { display: flex; flex-direction: row; @@ -76,6 +75,8 @@ height: 100px; border-radius: 8px; + + object-fit: cover; } } @@ -87,7 +88,6 @@ margin: 0 !important; } } - } .music_panel_releases_actions { diff --git a/packages/app/src/pages/music/components/feed/index.jsx b/packages/app/src/pages/music/components/feed/index.jsx index c99e6240..53ec354e 100755 --- a/packages/app/src/pages/music/components/feed/index.jsx +++ b/packages/app/src/pages/music/components/feed/index.jsx @@ -53,59 +53,137 @@ const PlaylistItem = (props) => {
} -export default () => { - const [loading, setLoading] = React.useState(true) - const [list, setList] = React.useState([]) +const RecentlyPlayed = (props) => { + return
+
+

+ + + {(t) => t("Recently Played")} + +

+
- const loadData = async () => { - setLoading(true) - - const response = await FeedModel.getPlaylistsFeed({ - limit: 10, - trim: 0, - }).catch((err) => { - console.error(err) - app.message.error("Failed to load playlists") - return null - }) - - setLoading(false) - - console.log(response) - - if (response) { - setList(response) - } - } - - React.useEffect(() => { - loadData() - }, []) - - if (loading) { - return - } - - return
-
-
-

- - - {(t) => t("Releases from your artists")} - -

-
-
- { - list.map((playlist, index) => { - return - }) - } -
+
+
+} + +const FollowingArtists = (props) => { + const [L_MusicFeed, R_MusicFeed, E_MusicFeed] = app.cores.api.useRequest(FeedModel.getPlaylistsFeed) + + if (E_MusicFeed) { + console.error(E_MusicFeed) + + return
+ +
+ } + + return
+
+

+ + + {(t) => t("From following artists")} + +

+
+
+ { + L_MusicFeed && + } + { + !L_MusicFeed && R_MusicFeed.map((playlist, index) => { + return + }) + } +
+
+} + +const PlaylistExplorer = (props) => { + const [L_MusicFeed, R_MusicFeed, E_MusicFeed] = app.cores.api.useRequest(FeedModel.getGlobalMusicFeed) + + if (E_MusicFeed) { + console.error(E_MusicFeed) + + return
+ +
+ } + + return
+
+

+ + + {(t) => t("Explore from global")} + +

+
+ +
+ { + L_MusicFeed && + } + { + !L_MusicFeed && R_MusicFeed.map((playlist, index) => { + return + }) + } +
+
+} + +const MayLike = (props) => { + return
+
+

+ + + {(t) => t("May you like")} + +

+
+ +
+ +
+
+} + +export default () => { + return
+ + + + + + + +
} \ No newline at end of file diff --git a/packages/app/src/pages/music/components/feed/index.less b/packages/app/src/pages/music/components/feed/index.less index 001b467e..9363af87 100755 --- a/packages/app/src/pages/music/components/feed/index.less +++ b/packages/app/src/pages/music/components/feed/index.less @@ -25,9 +25,13 @@ //flex-direction: row; flex-wrap: wrap; + max-height: 30vh; + align-items: center; gap: 20px; + + overflow-x: scroll; } } } diff --git a/packages/app/src/pages/music/index.jsx b/packages/app/src/pages/music/index.jsx index 2215f4c2..e333d637 100755 --- a/packages/app/src/pages/music/index.jsx +++ b/packages/app/src/pages/music/index.jsx @@ -7,7 +7,7 @@ import { PagePanelWithNavMenu } from "components/PagePanels" import Tabs from "./tabs" const NavMenuHeader =

- + Music

diff --git a/packages/app/src/pages/music/tabs.jsx b/packages/app/src/pages/music/tabs.jsx index f8dd008e..82a1df24 100755 --- a/packages/app/src/pages/music/tabs.jsx +++ b/packages/app/src/pages/music/tabs.jsx @@ -1,28 +1,48 @@ import FeedTab from "./components/feed" import SpacesTab from "./components/spaces" -import DashboardTab from "./components/dashboard" -export default { - "feed": { +import DashboardTab from "./components/dashboard" +import ReleasesTab from "./components/dashboard/releases" + +export default [ + { + key: "feed", label: "Feed", icon: "Compass", component: FeedTab }, - "library": { + { + key: "radio", + label: "Radio", + icon: "Radio", + disabled: true + }, + { + key: "library", label: "Library", icon: "MdLibraryMusic", component: FeedTab, disabled: true }, - "spaces": { + { + key: "spaces", label: "Spaces", icon: "MdDeck", component: SpacesTab, disabled: true }, - "artistPanel": { - label: "Artist Panel", - icon: "MdOutlineDashboard", + { + key: "artist_panel", + label: "Creator Panel", + icon: "MdSpaceDashboard", component: DashboardTab, + children: [ + { + key: "artist_panel.releases", + label: "Releases", + icon: "MdUpcoming", + component: ReleasesTab, + } + ] }, -} \ No newline at end of file +] \ No newline at end of file diff --git a/packages/app/src/pages/tv/components/controlPanel/index.jsx b/packages/app/src/pages/tv/components/controlPanel/index.jsx index c7b22d09..0ad182e4 100755 --- a/packages/app/src/pages/tv/components/controlPanel/index.jsx +++ b/packages/app/src/pages/tv/components/controlPanel/index.jsx @@ -390,7 +390,7 @@ export default (props) => {

URL Information

- AAC URL + AAC URL (Only Audio) {addresses.aacURL ?? "No AAC URL available"} diff --git a/packages/app/src/pages/tv/components/explore/index.jsx b/packages/app/src/pages/tv/components/feed/index.jsx similarity index 100% rename from packages/app/src/pages/tv/components/explore/index.jsx rename to packages/app/src/pages/tv/components/feed/index.jsx diff --git a/packages/app/src/pages/tv/components/explore/index.less b/packages/app/src/pages/tv/components/feed/index.less similarity index 100% rename from packages/app/src/pages/tv/components/explore/index.less rename to packages/app/src/pages/tv/components/feed/index.less diff --git a/packages/app/src/pages/tv/tabs.jsx b/packages/app/src/pages/tv/tabs.jsx index 24d2b016..f1f40c2e 100755 --- a/packages/app/src/pages/tv/tabs.jsx +++ b/packages/app/src/pages/tv/tabs.jsx @@ -1,15 +1,36 @@ -import ExploreTab from "./components/explore" +import FeedTab from "./components/feed" import ControlPanelTab from "./components/controlPanel" -export default { - "explore": { - label: "Explore", - icon: "Search", - component: ExploreTab +export default [ + { + key: "feed", + label: "Feed", + icon: "Compass", + component: FeedTab }, - "controlPanel": { - label: "Control Panel", - icon: "Settings", - component: ControlPanelTab + { + key: "controlPanel", + label: "Creator Panel", + icon: "MdSpaceDashboard", + children: [ + { + key: "controlPanel.uploads", + label: "Uploads", + icon: "Upload", + disabled: true + }, + { + key: "controlPanel.streaming_settings", + label: "Livestreaming", + icon: "Settings", + component: ControlPanelTab + }, + { + key: "controlPanel.dvr_settings", + label: "DVR", + icon: "MdFiberDvr", + disabled: true + } + ] } -} \ No newline at end of file +] \ No newline at end of file