Skip to Content

📄 Content Details

This screen shows full details for a movie or web series. It includes the banner, title, cast, genres, description, episodes (if any), and recommended content. It also supports sharing, downloading, and resuming playback.


🌟 What It Does

  • Fetches and displays content details (via slug)
  • Shows genres, cast, and full description
  • Displays episodes for series
  • Loads recommended content (with pagination)
  • Supports resume playback using watch history
  • Includes share and (future) download actions

📸 Preview

Content Details Light
Content Details Dark

📡 API Methods Used

⚙️ First, set up the getZezoOtt API client: API Client Setup

This screen uses the following methods from the Zezo API client:


⚙️ How It Works

It uses the ContentView component from the Zezo UI kit inside a SafeAreaWrapper.

ContentDetails.tsx
import { ContentView, SafeAreaWrapper, } from "@zezosoft/zezo-ott-react-native-ui-kit"; <SafeAreaWrapper> <ContentView content={{}} // ← API response from getZezoOtt().contents.get() history={{}} // ← API response from getZezoOtt().history.get() episodeCardMode="horizontal" events={{ onPlay: () => {}, // handle play action onBackPress: () => {}, // handle back navigation }} heroBannerProps={{ menuActions, // share/download actions onBackPress: () => {}, // banner back button }} /> </SafeAreaWrapper>;

📤 Menu Buttons

const menuActions = [ { label: "Download", icon: DownloadIcon, onPress: () => {} }, { label: "Share", icon: ShareIcon, onPress: () => share() }, ];
  • Share uses useShare() hook
  • Download is reserved for future use

📦 Props for ContentView

Prop NameTypeDescription
contentIContentDataContent details (title, images, etc.)
seasonsSeason[]List of seasons (if it’s a series)
recommendedContentRecommendedContentRelated/recommended titles
isLoadingbooleanLoading state for content
seasonsIsLoadingbooleanLoading state for seasons
historyContentView.HistoryUser’s watch history
episodeCardModehorizontal verticalEpisode layout style
events.onPlay() => voidCalled when play button is pressed
events.onBackPress() => voidCalled when back button is pressed
events.moreFetchDataRecommendedMoreFetchData<IContentData>Loads more recommended content
heroBannerProps.menuActionsMenuAction[]Banner action buttons (share, download)
heroBannerProps.onBackPress() => voidBack button on banner

🔄 Fetching More Recommendations

const fetchMoreData = async ({ sectionId, meta }) => { const res = await getZezoOtt().sections.get({ id: sectionId, content_list_page: meta.nextPage ?? 1, content_list_limit: 5, ... }); return res?.data?.[0]?.content ?? null; };

⏯️ Resume Playback Support

const seekTime = history?.currentTime || 0; const isComplete = history?.completed || false; const currentEpisode = history?.current_episode || 0;

Starts from where the user left off unless content is marked complete.


🧼 UX Loading State

<SkeletonPlaceholder.Item width={110} height={25} borderRadius={14} />

Displays placeholder elements while data is loading.


✅ Summary

  • Easy-to-use screen for content details
  • Handles both movies and series
  • Supports resume, share, and future download
  • Cleanly integrates with the Zezo OTT UI kit
  • Fully typed and works with React Query

✍️ Created by Naresh Dhamu – Powered by ZezoSoft

Last updated on