diff --git a/app/(auth)/(tabs)/(home,libraries,search,favorites)/jellyseerr/[personId].tsx b/app/(auth)/(tabs)/(home,libraries,search,favorites)/jellyseerr/[personId].tsx
index f2219b26..2dc2a478 100644
--- a/app/(auth)/(tabs)/(home,libraries,search,favorites)/jellyseerr/[personId].tsx
+++ b/app/(auth)/(tabs)/(home,libraries,search,favorites)/jellyseerr/[personId].tsx
@@ -1,91 +1,109 @@
-import {router, useLocalSearchParams, useNavigation, useSegments} from "expo-router";
-import React, {useCallback, useEffect, useMemo, useRef, useState} from "react";
-import {TouchableOpacity, View} from "react-native";
-import {useQuery} from "@tanstack/react-query";
-import {useJellyseerr} from "@/hooks/useJellyseerr";
-import {useSafeAreaInsets} from "react-native-safe-area-context";
-import {ParallaxScrollView} from "@/components/ParallaxPage";
-import {Text} from "@/components/common/Text";
-import {Animated} from "react-native";
-import {Image} from "expo-image";
-import {OverviewText} from "@/components/OverviewText";
-import {orderBy} from "lodash";
-import {FlashList} from "@shopify/flash-list";
-import {PersonCreditCast} from "@/utils/jellyseerr/server/models/Person";
+import {
+ router,
+ useLocalSearchParams,
+ useNavigation,
+ useSegments,
+} from "expo-router";
+import React, {
+ useCallback,
+ useEffect,
+ useMemo,
+ useRef,
+ useState,
+} from "react";
+import { TouchableOpacity, View } from "react-native";
+import { useQuery } from "@tanstack/react-query";
+import { useJellyseerr } from "@/hooks/useJellyseerr";
+import { useSafeAreaInsets } from "react-native-safe-area-context";
+import { ParallaxScrollView } from "@/components/ParallaxPage";
+import { Text } from "@/components/common/Text";
+import { Animated } from "react-native";
+import { Image } from "expo-image";
+import { OverviewText } from "@/components/OverviewText";
+import { orderBy } from "lodash";
+import { FlashList } from "@shopify/flash-list";
+import { PersonCreditCast } from "@/utils/jellyseerr/server/models/Person";
import Poster from "@/components/posters/Poster";
import JellyseerrMediaIcon from "@/components/jellyseerr/JellyseerrMediaIcon";
-const ANIMATION_ENTER = 250
-const ANIMATION_EXIT = 250
-const BACKDROP_DURATION = 5000
+const ANIMATION_ENTER = 250;
+const ANIMATION_EXIT = 250;
+const BACKDROP_DURATION = 5000;
export default function page() {
const insets = useSafeAreaInsets();
const local = useLocalSearchParams();
const segments = useSegments();
- const {jellyseerrApi, jellyseerrUser} = useJellyseerr();
+ const { jellyseerrApi, jellyseerrUser } = useJellyseerr();
- const { personId } = local as { personId: string; };
+ const { personId } = local as { personId: string };
const from = segments[2];
const [currentIndex, setCurrentIndex] = useState(0);
const fadeAnim = useRef(new Animated.Value(0)).current;
- const {data, isLoading, isFetching} = useQuery({
- queryKey: ['jellyseerr', 'person', personId],
+ const { data, isLoading, isFetching } = useQuery({
+ queryKey: ["jellyseerr", "person", personId],
queryFn: async () => ({
details: await jellyseerrApi?.personDetails(personId),
- combinedCredits: await jellyseerrApi?.personCombinedCredits(personId)
+ combinedCredits: await jellyseerrApi?.personCombinedCredits(personId),
}),
- enabled: !!jellyseerrApi && !!personId
+ enabled: !!jellyseerrApi && !!personId,
});
const locale = useMemo(() => {
- return jellyseerrUser?.settings?.locale || 'en'
+ return jellyseerrUser?.settings?.locale || "en";
}, [jellyseerrUser]);
const region = useMemo(
- () => jellyseerrUser?.settings?.region || 'US',
+ () => jellyseerrUser?.settings?.region || "US",
[jellyseerrUser]
);
const castedRoles: PersonCreditCast[] = useMemo(
- () => orderBy(data?.combinedCredits?.cast, ['voteCount', 'voteAverage'], 'desc'),
+ () =>
+ orderBy(
+ data?.combinedCredits?.cast,
+ ["voteCount", "voteAverage"],
+ "desc"
+ ),
[data?.combinedCredits]
);
const backdrops = useMemo(
- () => castedRoles.map(c => c.backdropPath),
+ () => castedRoles.map((c) => c.backdropPath),
[data?.combinedCredits]
- )
+ );
- const enterAnimation = useCallback(() =>
- Animated.timing(fadeAnim, {
- toValue: 1,
- duration: ANIMATION_ENTER,
- useNativeDriver: true,
- }), [fadeAnim]);
+ const enterAnimation = useCallback(
+ () =>
+ Animated.timing(fadeAnim, {
+ toValue: 1,
+ duration: ANIMATION_ENTER,
+ useNativeDriver: true,
+ }),
+ [fadeAnim]
+ );
- const exitAnimation = useCallback(() =>
- Animated.timing(fadeAnim, {
- toValue: 0,
- duration: ANIMATION_EXIT,
- useNativeDriver: true,
- }), [fadeAnim]);
+ const exitAnimation = useCallback(
+ () =>
+ Animated.timing(fadeAnim, {
+ toValue: 0,
+ duration: ANIMATION_EXIT,
+ useNativeDriver: true,
+ }),
+ [fadeAnim]
+ );
useEffect(() => {
if (backdrops?.length) {
- enterAnimation().start()
- const intervalId = setInterval(
- () => {
- exitAnimation().start(end => {
- if (end.finished)
- setCurrentIndex((prevIndex) => (prevIndex + 1) % backdrops?.length)
- })
-
- },
- BACKDROP_DURATION
- );
+ enterAnimation().start();
+ const intervalId = setInterval(() => {
+ exitAnimation().start((end) => {
+ if (end.finished)
+ setCurrentIndex((prevIndex) => (prevIndex + 1) % backdrops?.length);
+ });
+ }, BACKDROP_DURATION);
return () => clearInterval(intervalId);
}
@@ -98,13 +116,16 @@ export default function page() {
//@ts-ignore
params: {
...credit,
- mediaTitle: credit.title,
- releaseYear: new Date(credit.releaseDate).getFullYear(),
+ mediaTitle: credit.title,
+ releaseYear: new Date(credit.releaseDate).getFullYear(),
canRequest: "false",
- posterSrc: jellyseerrApi?.imageProxy(credit.posterPath, 'w300_and_h450_face')
- }
+ posterSrc: jellyseerrApi?.imageProxy(
+ credit.posterPath,
+ "w300_and_h450_face"
+ ),
+ },
});
- }
+ };
return (
}
@@ -134,7 +158,12 @@ export default function page() {
key={data?.details?.id}
id={data?.details?.id.toString()}
className="rounded-full bottom-1"
- source={{uri: jellyseerrApi?.imageProxy(data?.details?.profilePath, 'w600_and_h600_bestv2'),}}
+ source={{
+ uri: jellyseerrApi?.imageProxy(
+ data?.details?.profilePath,
+ "w600_and_h600_bestv2"
+ ),
+ }}
cachePolicy={"memory-disk"}
contentFit="cover"
style={{
@@ -151,31 +180,38 @@ export default function page() {
{data?.details?.name}
- Born {new Date(data?.details?.birthday!!).toLocaleDateString(`${locale}-${region}`, {
- year: 'numeric',
- month: 'long',
- day: 'numeric',
- })} | {data?.details?.placeOfBirth}
+ Born{" "}
+ {new Date(data?.details?.birthday!!).toLocaleDateString(
+ `${locale}-${region}`,
+ {
+ year: "numeric",
+ month: "long",
+ day: "numeric",
+ }
+ )}{" "}
+ | {data?.details?.placeOfBirth}
-
+
- No results
+
+ No results
+
}
contentInsetAdjustmentBehavior="automatic"
ListHeaderComponent={
Appearances
}
- renderItem={({item}) =>
+ renderItem={({ item }) => (
viewDetails(item)}
>
{/*{item.title}*/}
- as {item.character}
+
+ as {item.character}
+
- }
+ )}
keyExtractor={(item) => item.id.toString()}
estimatedItemSize={255}
numColumns={3}
- contentContainerStyle={{paddingBottom: 24}}
- ItemSeparatorComponent={() => (
-
- )}
+ contentContainerStyle={{ paddingBottom: 24 }}
+ ItemSeparatorComponent={() => }
/>
);
-}
\ No newline at end of file
+}