import type IOSFontInfo from './IOSFontInfo'; import type AndroidFontInfo from './AndroidFontInfo'; import type GradientDrawable from './GradientDrawable'; import type { ReplayBadgeConfiguration } from './ReplayBadgeConfiguration'; export interface VideoFeedTitleConfiguration { /** * Specifies if the video feed title is hidden. * Defaults to false. */ hidden?: boolean; /** * The text color of video feed title. * If you don't set this property, the text color will be white with alpha is 0.98 on iOS and #ffffff on Android. */ textColor?: string; /** * The font size of video feed title. * If you don't set this property, the font size will be 12 on iOS and 14sp on Android. */ fontSize?: number; /** * Specifies the number of allowed lines for the label. * Defaults to 2. */ numberOfLines?: number; /** * The iOS font info of video feed title. * The property is ignored when fontSize is not set. * Only supported on iOS. */ iOSFontInfo?: IOSFontInfo; /** * The Android font info of "VideoFeedTitle". * The property is ignored when fontSize is not set. * Only supported on Android. */ androidFontInfo?: AndroidFontInfo; /** * The background color of video feed title. * The property is ignored when gradientDrawable is set. * Only supported on Android. */ backgroundColor?: string; /** * The background drawable of video feed title. * Only supported on Android. */ gradientDrawable?: GradientDrawable; } export interface VideoFeedPlayIconConfiguration { /** * Specifies if the play icon is hidden. * Defaults to false. */ hidden?: boolean; /** * The width of play icon. The icon is always square. * Sizing is independent of `imageName`: it applies to the default icon as well. * If you don't set this property, the icon width will be 40 on iOS and 36dp on Android. */ iconWidth?: number; /** * The name of the image bundled with your app, used to replace the default play icon. * On iOS, add the image to the asset catalogs(Images.xcassets, Assets.xcassets etc.). * On Android, add the drawable to res/drawable and pass its name without the file extension. * Leave it unset to keep the component's default icon. * The icon is rendered as-is with no tint applied, so a multi-color image, such as one that * carries its own circular backdrop, keeps its colors. */ imageName?: string; /** * The system image name. * Only supported on iOS. */ systemImageName?: string; } export type VideoFeedTitlePosition = 'stacked' | 'nested'; export interface VideoFeedPadding { top?: number; right?: number; bottom?: number; left?: number; } export interface VideoFeedShadowConfiguration { /** * The opacity of shadow. */ opacity?: number; /** * The color of shadow. */ color?: string; /** * The width of shadow. */ width?: number; /** * The height of shadow. */ height?: number; } export default interface VideoFeedConfiguration { /** * Background color of video feed, such as #c0c0c0. * If you don't set this property, the background will be transparent. */ backgroundColor?: string; /** * Corner radius of video feed item. * Defaults to 10 on iOS. Defaults to 0 on Android. */ cornerRadius?: number; /** * Configuration of video feed item title. */ title?: VideoFeedTitleConfiguration; /** * Title position of video feed item. * Defaults to nested. */ titlePosition?: VideoFeedTitlePosition; /** * The padding of video feed title. * Defaults to { top: 8, right: 8, bottom: 8, left: 8 }. * Only supported on iOS. */ titlePadding?: VideoFeedPadding; /** * Configuration of video feed item play icon. */ playIcon?: VideoFeedPlayIconConfiguration; /** * Indicates if the video feed item shows ad badge. * Defaults to false. */ showAdBadge?: boolean; /** * The aspect ratio(width / height) for video feed item. * Defaults to 4 / 6. */ aspectRatio?: number; /** * The padding of video feed content. * Defaults to { top: 10, right: 10, bottom: 10, left: 10 }. */ contentPadding?: VideoFeedPadding; /** * The item spacing for video feed. * If you don't set this property, the item spacing will be 10 on iOS and 4px on Android. */ itemSpacing?: number; /** * Specifies if autoplay is enabled. * Defaults to false. */ enableAutoplay?: boolean; /** * The number of feed items to be displayed per row. * The property only takes effect when video feed mode is grid. * The property value needs to be an integer and greater than 0. * Defaults to 2. */ gridColumns?: number; /** * The configuration of replay badge. * Only supported on iOS. */ replayBadge?: ReplayBadgeConfiguration; /** * The shadow configuration of video feed item. * Only supported on iOS. */ shadow?: VideoFeedShadowConfiguration; }