UNPKG

@cometchat/chat-uikit-react-native

Version:

Ready-to-use Chat UI Components for React Native

166 lines (142 loc) 5.39 kB
import { StyleSheet } from 'react-native'; import { BorderStyle, CometChatTheme } from '../shared'; import { CardStyle, CardViewStyle } from './CardViewStyle'; import { AIButtonsStyle } from './utils'; import { AISmartRepliesStyle } from './AISmartReplies/AISmartRepliesStyle'; export function viewContainerStyle(style:CardViewStyle) { return { justifyContent: 'center', alignItems: 'center', position: 'absolute', bottom: 8, width: '100%', // height: '100%', }; } export function defaultViewStyle(style:CardViewStyle) { return { justifyContent: 'center', alignItems: 'center', textAlign: 'center', }; } export function errorLabelStyle(style:CardViewStyle, aiStyles?:AISmartRepliesStyle) { return { ...aiStyles?.errorStateTextFont || style?.errorStateTextFont, color: aiStyles?.errorStateTextColor || style?.errorStateTextColor, }; } export function emptyLabelStyle(style:CardViewStyle, aiStyles?:AISmartRepliesStyle) { return { ...aiStyles?.emptyStateTextFont || style?.emptyStateTextFont, color: aiStyles?.emptyStateTextColor || style?.emptyStateTextColor, }; } export function tabButtonStyle(style:CardViewStyle) { return { alignItems: 'center', opacity: 1, cursor: 'pointer', height: style?.height, width: style?.width, flexDirection: 'row-reverse', justifyContent: 'space-between', padding: 8, ...style?.border, borderRadius: style?.borderRadius, backgroundColor: style?.backgroundColor, }; } export function getPopoverStyle(style:CardViewStyle) { return { height: style?.height || 'auto', // flex: 1, width: style?.width || '100%', backgroundColor: style.backgroundColor, ...style.border, borderRadius: style.borderRadius, flexDirection: 'column', alignItems: 'center', }; } export function getloadingStateStyle(theme: any, configStyles?:CardViewStyle, AIStyle?:AISmartRepliesStyle) { let fontFamily = AIStyle?.loadingStateTextFont || configStyles?.loadingStateTextFont || theme?.typography?.title2; return StyleSheet.create({ ...fontFamily, color: AIStyle?.loadingStateTextColor || configStyles?.loadingStateTextColor || theme?.palette?.getAccent700(), }); } export function getCardViewStyle(theme:CometChatTheme, style:CardViewStyle,AiStyles?:AISmartRepliesStyle) { const defaultStyle = { tintColor: theme?.palette?.getAccent600(), emptyStateTextColor: theme?.palette?.getAccent600(), errorStateTextColor: theme?.palette?.getAccent600(), emptyStateTextFont: theme?.typography?.title2, errorStateTextFont: theme?.typography?.title2, loadingStateTextColor: theme?.palette?.getAccent600(), loadingIconTint: theme?.palette?.getAccent600(), loadingStateTextFont: theme?.typography?.title2, errorIconTint: theme?.palette?.getAccent(), emptyIconTint: theme?.palette?.getAccent600(), backgroundColor: theme?.palette?.getBackgroundColor(), border: {}, borderRadius: 8, width: "100%", buttonTintColor: theme?.palette?.getAccent600(), }; return StyleSheet.flatten([defaultStyle,style,AiStyles]); } export const containerStyle = { overflow: 'hidden', width: '100%', position: 'relative', justifyContent: 'flex-start', alignItems: "center", flexDirection: 'column', }; export const contentContainerStyle = { alignItems: 'flex-start', width: '100%' , flexDirection: 'column', justifyContent: 'center', backgroundColor: 'transparent', overflow: 'hidden', padding: 8, height:'auto', } export function getRepliesStyle(theme: any, configStyles: any,cardStyle?:CardStyle) { let fontFamily = configStyles?.repliesTextFont || cardStyle?.repliesTextFont || theme?.typography?.text3; return { ...fontFamily, color: configStyles?.repliesTextColor || cardStyle?.repliesTextColor || theme?.palette?.getAccent(), backgroundColor: 'transparent', textAlign: 'left', }; } export function getRepliesWrapperStyle(theme:CometChatTheme, configStyles:AIButtonsStyle,cardStyle?:CardStyle) { return { flexDirection: 'row', padding: 8, marginVertical: 4, backgroundColor: configStyles?.repliesTextBackgroundColor || cardStyle?.repliesTextBackgroundColor || theme?.palette?.getBackgroundColor(), ...configStyles?.repliesTextBorder || cardStyle?.repliesTextBorder || {borderBottomWidth:1,borderStyle:"solid",borderBottomColor:theme?.palette.getAccent200()}, borderRadius: configStyles?.repliesTextBorderRadius || cardStyle?.repliesTextBorderRadius || 8, boxSizing: 'border-box', cursor: 'pointer', }; } export function getButtonStyles(theme:CometChatTheme, style:AISmartRepliesStyle, cardStyle?:CardStyle) { let fontFamily = style?.buttonTextFont || cardStyle?.buttonTextFont || theme?.typography?.text1; return { paddingHorizontal: 8, justifyContent:"center", alignItems:"flex-start", ...style?.buttonBorder || cardStyle?.buttonBorder, backgroundColor: style?.buttonBackgroundColor || cardStyle?.buttonBackgroundColor || theme?.palette?.getBackgroundColor(), ...fontFamily, color: style?.buttonTextColor || cardStyle?.buttonTextColor || theme?.palette?.getAccent(), marginBottom: 8, height:style?.buttonHeight || cardStyle?.buttonHeight, width:style?.buttonWidth || cardStyle?.buttonWidth || "100%" }; }