import { compact, ifElseFocusedSelected, ifElseSelected, } from "@applicaster/zapp-react-native-utils/cellUtils"; import { platformSelect } from "@applicaster/zapp-react-native-utils/reactUtils"; import { getPositionStyles } from "./utils"; const View = "View"; const Image = "Image"; type Props = { value: Function; state: string; visible?: Boolean; isMobile?: Boolean; }; export const CellBadge = ({ value, state, visible = true, isMobile = false, }: Props) => { if (!value("cell_badge_switch") || !visible) { return null; } const position = value("cell_badge_position"); return { type: View, // Cell badge view style: { flex: platformSelect({ tvos: 0, android_tv: 0, default: 1, }), position: "absolute", ...getPositionStyles(position, { width: value("cell_badge_width"), height: value("cell_badge_height"), }), marginTop: value("cell_badge_margin_top"), marginRight: value("cell_badge_margin_right"), marginBottom: value("cell_badge_margin_bottom"), marginLeft: value("cell_badge_margin_left"), }, elements: compact([ { type: Image, // Cell badge style: { width: value("cell_badge_width"), height: value("cell_badge_height"), }, data: [ { func: () => { return isMobile ? ifElseSelected( state, value("cell_badge_selected"), value("cell_badge_default") ) : ifElseFocusedSelected( state, value("cell_badge_focused"), value("cell_badge_selected"), value("cell_badge_focused_selected"), value("cell_badge_default") ); }, args: [], propName: "uri", }, ], additionalProps: { resizeMode: "cover", }, }, ]), }; };