UNPKG

@applicaster/zapp-react-native-ui-components

Version:

Applicaster Zapp React Native ui components for the Quick Brick App

112 lines (102 loc) 2.21 kB
import { getColor, ACTIVE_COLOR, BACKGROUND_COLOR, MAIN_TEXT_COLOR, FOCUSED_TEXT_COLOR, } from "../colors"; const Image = "Image"; const View = "View"; const Text = "Text"; const containerStyles = (styles) => ({ flex: 1, flexDirection: "column", width: 1280, height: 436, borderRadius: 4, backgroundColor: getColor(BACKGROUND_COLOR, styles), marginRight: 48, marginBottom: 48, }); const focusedContainerStyles = (styles) => ({ ...containerStyles(styles), backgroundColor: getColor(ACTIVE_COLOR, styles), }); const imageStyle = { width: 1280, height: 352, borderTopRightRadius: 4, borderTopLeftRadius: 4, }; const titleContainerStyles = { width: 1184, height: 60, marginHorizontal: 24, marginTop: 24, overflow: "hidden", }; const titleStyles = (styles) => ({ fontSize: 26, color: getColor(MAIN_TEXT_COLOR, styles), fontWeight: "bold", fontStyle: "normal", }); const focusedTitleStyles = (styles) => ({ ...titleStyles(styles), color: getColor(FOCUSED_TEXT_COLOR, styles), }); const viewTree = (state, styles) => [ { type: View, style: state === "focused" ? focusedContainerStyles(styles) : containerStyles(styles), elements: [ { type: Image, style: imageStyle, data: [ { func: "image_src_from_media_item", args: ["thumbnail-small"], propName: "uri", }, ], }, { type: View, style: titleContainerStyles, elements: [ { type: Text, style: state === "focused" ? focusedTitleStyles(styles) : titleStyles(styles), data: [ { func: "path", args: ["title"], propName: "label", }, ], additionalProps: { numberOfLines: 2, }, }, ], }, ], }, ]; export const hero = (styles) => ({ content_types: { default: { states: { default: viewTree("default", styles), focused: viewTree("focused", styles), }, }, }, });