diff --git a/src/App.vue b/src/App.vue index 67c988e..f614c1a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,16 +1,20 @@ diff --git a/src/assets/base.css b/src/assets/base.css index 6dcaa62..c201458 100644 --- a/src/assets/base.css +++ b/src/assets/base.css @@ -73,7 +73,7 @@ body { min-height: 100vh; min-width: 1600px; color: var(--color-text); - background: linear-gradient(var(--color-background), var(--color-background-darker) 50%); + background-color: var(--color-background-darker); transition: color 0.5s, background-color 0.5s; diff --git a/src/components/ContinueWatching.vue b/src/components/ContinueWatching.vue deleted file mode 100644 index 3ece13a..0000000 --- a/src/components/ContinueWatching.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/src/components/LatestMedia.vue b/src/components/LatestMedia.vue new file mode 100644 index 0000000..fc482bb --- /dev/null +++ b/src/components/LatestMedia.vue @@ -0,0 +1,87 @@ + + + diff --git a/src/components/MediaScroller.vue b/src/components/MediaScroller.vue index acd070c..398a6db 100644 --- a/src/components/MediaScroller.vue +++ b/src/components/MediaScroller.vue @@ -2,21 +2,74 @@ import ScrollerItemPortrait from './ScrollerItemPortrait.vue' import ScrollerItemLandscape from './ScrollerItemLandscape.vue' import type { FeedItem } from '@/feed' +import { ref, onBeforeMount } from 'vue' const props = defineProps<{ title: string landscape?: boolean - items: FeedItem[] + feedItems: Promise }>() +const items = ref() +const overflow = ref(false) +const translate = ref(0) +const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0) +const renderSpace = vw * 0.55 +onBeforeMount(async () => { + items.value = await props.feedItems + console.log('MediaScroller.vue =>', props.feedItems) + const itemLimit = renderSpace / (props.landscape ? 245 : 125) + console.log(props.title, '=>', itemLimit) + if (items.value.length > itemLimit) { + overflow.value = true + } +}) +const translateForward = () => { + disableForward() + if (props.landscape) { + translate.value -= 1008 + } else { + translate.value -= 924 + } +} +const translateBackward = () => { + if (props.landscape) { + translate.value += 1008 + } else { + translate.value += 924 + } +} +const disableForward = () => { + const v = + (items.value ? items.value.length : 0) * (props.landscape ? 245 : 125) - + Math.abs(translate.value) < + renderSpace + return v +}