This commit is contained in:
Fredrik Burmester
2024-10-05 13:15:33 +02:00
parent 48570489d5
commit 95de03f8b1
6 changed files with 13 additions and 22 deletions

View File

@@ -1,6 +1,5 @@
import { Text } from "@/components/common/Text";
import { ItemContent } from "@/components/ItemContent";
import { Loader } from "@/components/Loader";
import { apiAtom, userAtom } from "@/providers/JellyfinProvider";
import { getUserItemData } from "@/utils/jellyfin/user-library/getUserItemData";
import { useQuery } from "@tanstack/react-query";
@@ -14,7 +13,6 @@ import Animated, {
useSharedValue,
withTiming,
} from "react-native-reanimated";
import { opacity } from "react-native-reanimated/lib/typescript/Colors";
const Page: React.FC = () => {
const [api] = useAtom(apiAtom);

View File

@@ -1,8 +1,8 @@
import { createMaterialTopTabNavigator } from "@react-navigation/material-top-tabs";
import type {
MaterialTopTabNavigationOptions,
MaterialTopTabNavigationEventMap,
MaterialTopTabNavigationOptions,
} from "@react-navigation/material-top-tabs";
import { createMaterialTopTabNavigator } from "@react-navigation/material-top-tabs";
import { ParamListBase, TabNavigationState } from "@react-navigation/native";
import { Stack, withLayoutContext } from "expo-router";
import React from "react";

View File

@@ -1,11 +1,9 @@
import { ItemImage } from "@/components/common/ItemImage";
import { Text } from "@/components/common/Text";
import { ItemPoster } from "@/components/posters/ItemPoster";
import { apiAtom, userAtom } from "@/providers/JellyfinProvider";
import { getLiveTvApi } from "@jellyfin/sdk/lib/utils/api";
import { FlashList } from "@shopify/flash-list";
import { useQuery } from "@tanstack/react-query";
import { Image } from "expo-image";
import { useAtom } from "jotai";
import React from "react";
import { View } from "react-native";
@@ -19,21 +17,23 @@ export default function page() {
const { data: channels } = useQuery({
queryKey: ["livetv", "channels"],
queryFn: async () => {
if (!api) return [];
const res = await getLiveTvApi(api).getLiveTvChannels({
const res = await getLiveTvApi(api!).getLiveTvChannels({
startIndex: 0,
fields: ["PrimaryImageAspectRatio"],
limit: 100,
limit: 500,
enableFavoriteSorting: true,
userId: user?.Id,
addCurrentProgram: false,
enableUserData: false,
enableImageTypes: ["Primary"],
});
return res.data.Items;
return res.data;
},
});
return (
<View className="flex flex-1">
<FlashList
data={channels}
data={channels?.Items}
estimatedItemSize={76}
renderItem={({ item }) => (
<View className="flex flex-row items-center px-4 mb-2">

View File

@@ -1,13 +1,8 @@
import { ItemImage } from "@/components/common/ItemImage";
import { Text } from "@/components/common/Text";
import { HourHeader } from "@/components/livetv/HourHeader";
import { LiveTVGuideRow } from "@/components/livetv/LiveTVGuideRow";
import { TAB_HEIGHT } from "@/constants/Values";
import { apiAtom, userAtom } from "@/providers/JellyfinProvider";
import {
BaseItemDto,
BaseItemDtoQueryResult,
} from "@jellyfin/sdk/lib/generated-client";
import { getLiveTvApi } from "@jellyfin/sdk/lib/utils/api";
import { useQuery } from "@tanstack/react-query";
import { useAtom } from "jotai";
@@ -30,6 +25,7 @@ export default function page() {
return res.data;
},
});
const { data: channels } = useQuery({
queryKey: ["livetv", "channels"],
queryFn: async () => {

View File

@@ -1,8 +1,7 @@
import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client";
import { View, ScrollView, Dimensions } from "react-native";
import { ItemImage } from "../common/ItemImage";
import { useMemo, useRef } from "react";
import { Dimensions, View } from "react-native";
import { Text } from "../common/Text";
import { useCallback, useMemo, useRef, useState } from "react";
import { TouchableItemRouter } from "../common/TouchableItemRouter";
export const LiveTVGuideRow = ({

View File

@@ -1,5 +1,3 @@
import { Stack } from "expo-router";
import { Chromecast } from "../Chromecast";
import { HeaderBackButton } from "../common/HeaderBackButton";
const commonScreenOptions = {