From 1cd1584bb3efd4d5d74a020205ef4b8a902f41ad Mon Sep 17 00:00:00 2001 From: Gabe Farrell Date: Wed, 4 Dec 2024 01:18:06 -0500 Subject: [PATCH] work on item page --- bun.lockb | Bin 179808 -> 179808 bytes src/App.vue | 8 +- src/assets/main.css | 28 ++- src/components/HelloWorld.vue | 41 ---- src/components/LatestMedia.vue | 28 +-- src/components/MediaGrid.vue | 110 +++++++++++ src/components/MediaInfo.vue | 21 ++ src/components/MediaScroller.vue | 5 +- src/components/ScrollerItemLandscape.vue | 12 +- src/components/ScrollerItemPortrait.vue | 21 +- src/components/TheWelcome.vue | 90 --------- src/components/WelcomeItem.vue | 87 --------- src/components/utils.ts | 29 +++ src/jfapi.ts | 46 ++++- src/main.ts | 17 +- src/router/index.ts | 14 +- src/views/BrowseView.vue | 30 ++- src/views/ItemView.vue | 233 +++++++++++++++++++++++ 18 files changed, 538 insertions(+), 282 deletions(-) delete mode 100644 src/components/HelloWorld.vue create mode 100644 src/components/MediaGrid.vue create mode 100644 src/components/MediaInfo.vue delete mode 100644 src/components/TheWelcome.vue delete mode 100644 src/components/WelcomeItem.vue create mode 100644 src/components/utils.ts create mode 100644 src/views/ItemView.vue diff --git a/bun.lockb b/bun.lockb index 77d5fbd72ecd4556faace7648d3eff9f86cd29d7..b401fecde8539c37bca4e2de52f7df678d4ec8f9 100755 GIT binary patch delta 39 scmaFxhwH%~u7)j)v3J>-7{Fk9%3Vfx4#qeGJwro1gYBE|GOm39039X`zW@LL delta 39 rcmaFxhwH%~u7)j)v3J=S -import { RouterView } from 'vue-router' +import { RouterLink, RouterView } from 'vue-router' import { ref } from 'vue' import jfapi from './jfapi' const menuOpen = ref(false) @@ -19,7 +19,7 @@ const logout = () => { @@ -27,7 +27,6 @@ const logout = () => {
- diff --git a/src/components/LatestMedia.vue b/src/components/LatestMedia.vue index fc482bb..6e88be5 100644 --- a/src/components/LatestMedia.vue +++ b/src/components/LatestMedia.vue @@ -2,7 +2,8 @@ import jfapi from '@/jfapi' import MediaScroller from './MediaScroller.vue' import type { FeedItem } from '@/feed' -import type { Item, View } from '@/jfapi' +import type { View } from '@/jfapi' +import { getDisplayDuration, getImageLink } from './utils' const props = defineProps<{ view: View @@ -55,31 +56,6 @@ const Items = async (): Promise => { } }) } - -function getImageLink(item: Item): string { - if (item.SeriesId === undefined) { - // using movie primary - return jfapi.PrimaryImageUrl(item.Id, item.ImageTags.Primary ? item.ImageTags.Primary : '') - } else { - // using series primary - return jfapi.PrimaryImageUrl( - item.SeriesId, - item.SeriesPrimaryImageTag ? item.SeriesPrimaryImageTag[0] : '', - ) - } -} - -function getDisplayDuration(ticks: number) { - const totalMinutes = Math.round(ticks / 600000000) || 1 - const totalHours = Math.floor(totalMinutes / 60) - const remainderMinutes = totalMinutes % 60 - const result = [] - if (totalHours > 0) { - result.push(`${totalHours}h`) - } - result.push(`${remainderMinutes}m`) - return result.join(' ') -}