Skip to Content
React NativeComponentContentContent Section

📘 Content Section

Content is a simple and flexible component built for OTT apps. It’s ideal for home screens, category pages, and personalized feeds. Display sliders, cards, Top 10s, Continue Watching, and more — all in one place.


✨ Features

  • 📂 Multiple layout types: slider, card, list
  • 🔁 Supports infinite scroll and pagination
  • 🥒 “Continue Watching” powered by user history
  • 🎨 Light & dark theme support
  • 🧹 Custom UI overrides per section
  • ⚠️ Built-in loading and error handling

📸 Preview

Content Section Start Light
Content Section End Light
Content Section Start Dark
Content Section End Dark

📡 API Call Methods

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

🧪 The following API methods are used to fetch core content data for the app:


🛠️ Props

contentData

{ category?: ICategory[]; sectionData: IGetSectionData[] | null; historyData?: IHistoryItem[]; }
  • Contains content sections, categories, and user watch history.

customComponents

ICustomComponentsForContent[] // { type: string; component: ReactElement }
  • Plug in your own UI per section type (slider, top10, etc).

Loaders & Error Components

PropDescription
LoaderComponentDisplayed during initial load
ErrorComponentShown when there’s an error or no data
InfiniteScrollLoaderComponentShown while fetching more items on scroll

Scroll & Pagination

PropDescription
onScrollTriggered on scroll — useful for animations
onEndReachedCalled when user hits bottom — use for pagination
moreFetchDataLoad more for regular sections
moreFetchDataHistoryLoad more for “Continue Watching”

Interaction Events

{ onPressItem?: (item: IContentData) => void; onPressMore?: (params: { section_id: string; name: string; type: string }) => void; activeCategory?: ICategory; onPressCategory?: (category: ICategory) => void; }
EventDescription
onPressItemWhen a content item is tapped
onPressMoreWhen “More” is clicked
activeCategoryCurrently selected category
onPressCategoryWhen a category is tapped

Misc Props

PropDescription
sectionProps{ showPlayBtn?: boolean } — toggle play button
isLoading{ category?: boolean; history?: boolean; section?: boolean; }
themeYour app’s theme config
contentContainerStyleStyle overrides for the main container

🧪 Example

HomeScreen.tsx
import { Content } from "@zezosoft/zezo-ott-react-native-ui-kit"; <Content contentData={{ // Replace with actual API response from `getZezoOtt().sections.get()` sectionData: [], }} />;

✅ Prop Summary

Prop NamePurpose
contentDataContent, categories, and history
customComponentsCustom UI for sections
LoaderComponentShown while loading
ErrorComponentShown on error or empty state
InfiniteScrollLoaderComponentLoader during scroll-based fetching
onScrollScroll event handler
onEndReachedPagination trigger
themeApp theme config
eventsInteraction event handlers
sectionPropsSection-level UI options
moreFetchDataFetch more section content
moreFetchDataHistoryFetch more history items
contentContainerStyleCustom styles for main container
isLoadingIndividual loading state toggles

✍️ Created by Naresh Dhamu – Powered by ZezoSoft

Last updated on