feat: refresh metadata for item

This commit is contained in:
Fredrik Burmester
2025-11-08 10:15:06 +01:00
parent 154788cf91
commit b93c56f300
3 changed files with 86 additions and 2 deletions

View File

@@ -35,6 +35,7 @@ import { ItemTechnicalDetails } from "./ItemTechnicalDetails";
import { MediaSourceSheet } from "./MediaSourceSheet";
import { MoreMoviesWithActor } from "./MoreMoviesWithActor";
import { PlayInRemoteSessionButton } from "./PlayInRemoteSession";
import { RefreshMetadata } from "./RefreshMetadata";
import { TrackSheet } from "./TrackSheet";
const Chromecast = !Platform.isTV ? require("./Chromecast") : null;
@@ -115,7 +116,10 @@ export const ItemContent: React.FC<ItemContentProps> = React.memo(
<DownloadSingleItem item={item} size='large' />
)}
{user?.Policy?.IsAdministrator && (
<PlayInRemoteSessionButton item={item} size='large' />
<>
<PlayInRemoteSessionButton item={item} size='large' />
<RefreshMetadata item={item} />
</>
)}
<PlayedStatus items={[item]} size='large' />
@@ -132,7 +136,10 @@ export const ItemContent: React.FC<ItemContentProps> = React.memo(
<DownloadSingleItem item={item} size='large' />
)}
{user?.Policy?.IsAdministrator && (
<PlayInRemoteSessionButton item={item} size='large' />
<>
<PlayInRemoteSessionButton item={item} size='large' />
<RefreshMetadata item={item} />
</>
)}
<PlayedStatus items={[item]} size='large' />

View File

@@ -0,0 +1,37 @@
import type { BaseItemDto } from "@jellyfin/sdk/lib/generated-client";
import type { FC } from "react";
import { Platform, View, type ViewProps } from "react-native";
import { RoundButton } from "@/components/RoundButton";
import { useRefreshMetadata } from "@/hooks/useRefreshMetadata";
interface Props extends ViewProps {
item: BaseItemDto;
}
export const RefreshMetadata: FC<Props> = ({ item, ...props }) => {
const { refreshMetadata, isRefreshing } = useRefreshMetadata(item);
if (Platform.OS === "ios") {
return (
<View {...props}>
<RoundButton
size='large'
icon='reload-outline'
onPress={refreshMetadata}
hapticFeedback={!isRefreshing}
/>
</View>
);
}
return (
<View {...props}>
<RoundButton
size='large'
icon='reload-outline'
onPress={refreshMetadata}
hapticFeedback={!isRefreshing}
/>
</View>
);
};