import React, { useEffect } from 'react'; import { StyleSheet, TouchableOpacity, View } from 'react-native'; import { renderTextLikeJSX } from '../../core/helpers'; import TextButton from '../Modal/TextButton'; import { PopupHeaderProps } from './interface'; import createStyle from './styles/popup-header.style'; import { useLocale } from '../Locale/locale'; import { IconXClosesmall1 } from '../../icons'; import { useTheme } from '../Theme'; import { useMaxLayoutWidth } from '../../core/hooks'; const PopupHeader: React.FC = ({ headerStyle, cancelBtnContainerStyle, confirmBtnContainerStyle, title, titleStyle, description, showCancelButton = true, onCancel, cancelBtnIcon, cancelBtnStyle, cancelBtnIconProps = {}, confirmBtnStyle, showConfirmButton = true, confirmButtonText, onConfirm, }) => { const locale = useLocale().Dialog; const token = useTheme(); const styles = createStyle(token); const { maxLayoutWidth, handleLayout, resetMaxLayoutWidth } = useMaxLayoutWidth(); useEffect(() => { resetMaxLayoutWidth(); }, [showConfirmButton]); return ( 0 && { minWidth: maxLayoutWidth }, cancelBtnContainerStyle, ])} onLayout={handleLayout} > {showCancelButton && ( {cancelBtnIcon || ( )} )} {renderTextLikeJSX(title, styles.titleText, { numberOfLines: 1, })} {renderTextLikeJSX(description, styles.description)} 0 && { minWidth: maxLayoutWidth }, confirmBtnContainerStyle, ])} onLayout={handleLayout} > {showConfirmButton && ( )} ); }; export default PopupHeader;