-
-
- {
- createIconRender(decorator.icon)
- }
-
- {(t) => t(decorator.label)}
-
-
-
-
-
+ return
+
+
{
- data[key].map((item, index) => {
- return decorator.renderItem({
- key: index,
- item
- })
- })
+ createIconRender(decorator.icon)
}
-
+
+ {(t) => t(decorator.label)}
+
+
- })
- }
+
+
+ {
+ data[key].map((item, index) => {
+ return decorator.renderItem({
+ key: index,
+ item
+ })
+ })
+ }
+
+
+ })
+ }
}
@@ -287,6 +328,8 @@ export default (props) => {
{
!searchResults &&
+
+
}
diff --git a/packages/app/src/pages/music/components/explore/index.less b/packages/app/src/pages/music/components/explore/index.less
index caff093b..086cb8d0 100755
--- a/packages/app/src/pages/music/components/explore/index.less
+++ b/packages/app/src/pages/music/components/explore/index.less
@@ -1,7 +1,6 @@
html {
&.mobile {
.musicExplorer {
-
.playlistExplorer_section_list {
overflow: visible;
overflow-x: scroll;
@@ -16,6 +15,101 @@ html {
}
}
+.featured_playlist {
+ position: relative;
+
+ display: flex;
+ flex-direction: row;
+
+ overflow: hidden;
+
+ background-color: var(--background-color-accent);
+
+ width: 100%;
+ min-height: 200px;
+ height: fit-content;
+
+ border-radius: 12px;
+
+ cursor: pointer;
+
+ &:hover {
+ .featured_playlist_content {
+
+ h1,
+ p {
+ -webkit-text-stroke-width: 1.6px;
+ -webkit-text-stroke-color: var(--border-color);
+
+ color: var(--background-color-contrast);
+ }
+ }
+
+ .lazy-load-image-background {
+ opacity: 1;
+ }
+ }
+
+ .lazy-load-image-background {
+ z-index: 50;
+
+ position: absolute;
+
+ opacity: 0.3;
+
+ transition: all 300ms ease-in-out !important;
+
+ img {
+ width: 100%;
+ height: 100%;
+ }
+ }
+
+ .featured_playlist_content {
+ z-index: 55;
+
+ padding: 20px;
+
+ display: flex;
+ flex-direction: column;
+
+ h1 {
+ font-size: 2.5rem;
+ font-family: "Space Grotesk", sans-serif;
+ font-weight: 900;
+
+ transition: all 300ms ease-in-out !important;
+ }
+
+ p {
+ font-size: 1rem;
+ font-family: "Space Grotesk", sans-serif;
+
+ transition: all 300ms ease-in-out !important;
+ }
+
+ .featured_playlist_genre {
+ z-index: 55;
+
+ position: absolute;
+
+ left: 0;
+ bottom: 0;
+
+ margin: 10px;
+
+ background-color: var(--background-color-accent);
+ border: 1px solid var(--border-color);
+
+ border-radius: 12px;
+
+ padding: 10px 20px;
+ }
+ }
+
+
+}
+
.music_navbar {
display: flex;
flex-direction: column;
diff --git a/packages/comty.js/src/models/music/index.js b/packages/comty.js/src/models/music/index.js
index f12cafff..bff3c5cb 100644
--- a/packages/comty.js/src/models/music/index.js
+++ b/packages/comty.js/src/models/music/index.js
@@ -7,6 +7,21 @@ export default class MusicModel {
return globalThis.__comty_shared_state.instances["music"]
}
+ /**
+ * Retrieves the official featured playlists.
+ *
+ * @return {Promise