import * as React from "react" import { View, Text, TextStyle, ViewStyle } from "react-native" const ROOT: ViewStyle = { backgroundColor: "#eee" } const TITLE: TextStyle = { fontWeight: "600", color: "#3d3d3d" } const TITLE_WRAPPER: ViewStyle = {} const USE_CASE_WRAPPER: ViewStyle = { position: "absolute", top: 0, left: 0, right: 0, borderTopColor: "#e6e6e6", borderTopWidth: 1, flexDirection: "row", } const USE_CASE: TextStyle = { fontSize: 10, color: "#666", paddingHorizontal: 4, paddingBottom: 2, } const USAGE: TextStyle = { color: "#666", fontSize: 10, paddingTop: 0 } const HEADER: ViewStyle = { paddingTop: 20, paddingBottom: 10, paddingHorizontal: 10, borderBottomColor: "#e6e6e6", borderBottomWidth: 1, } const COMPONENT: ViewStyle = { backgroundColor: "#fff" } export interface UseCaseProps { /** The title. */ text: string /** When should we be using this? */ usage?: string /** The component use case. */ children: React.ReactNode /** A style override. Rarely used. */ style?: ViewStyle /** Don't use any padding because it's important to see the spacing. */ noPad?: boolean /** Don't use background color because it's important to see the color. */ noBackground?: boolean } export function UseCase(props: UseCaseProps) { const style: ViewStyle = { ...COMPONENT, ...{ padding: props.noPad ? 0 : 10 }, ...{ backgroundColor: props.noBackground ? "rgba(0,0,0,0)" : COMPONENT.backgroundColor }, ...props.style, } return ( Use Case {props.text} {props.usage ? {props.usage} : null} {props.children} ) }