import { memo, useMemo } from 'react'; import { View, type ViewStyle } from 'react-native'; import { Icon, type IconProps } from '../Icon'; import { dialogIconStyles } from './utils'; export type Props = IconProps & { containerStyle?: ViewStyle; }; /** * A component to show an icon in a Dialog. * *
* *
* * ## Usage * ```js * import * as React from 'react'; * import { StyleSheet } from 'react-native'; * import { Paragraph, Dialog, Portal } from 'react-native-paper'; * * const MyComponent = () => { * const [visible, setVisible] = React.useState(false); * * const hideDialog = () => setVisible(false); * * return ( * * * * This is a title * * This is simple dialog * * * * ); * }; * * const styles = StyleSheet.create({ * title: { * textAlign: 'center', * }, * }) * * export default MyComponent; * ``` */ const DialogIcon = ({ containerStyle, color: colorProp, style, size = 24, ...rest }: Props) => { const { container, iconColor, iconStyle } = useMemo(() => { return { container: [dialogIconStyles.container, containerStyle], iconColor: colorProp || dialogIconStyles.root.color, iconStyle: [dialogIconStyles.root, style], }; }, [colorProp, containerStyle, style]); return ( ); }; DialogIcon.displayName = 'Dialog_Icon'; export default memo(DialogIcon);