UNPKG

4.6 kBSource Map (JSON)View Raw
1{"version":3,"sources":["AvatarImage.tsx"],"names":["React","Image","StyleSheet","View","withTheme","defaultSize","AvatarImage","size","source","style","onError","onLayout","onLoad","onLoadEnd","onLoadStart","onProgress","theme","rest","colors","backgroundColor","primary","flatten","width","height","borderRadius","displayName"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,KADF,EAIEC,UAJF,EAKEC,IALF,QAQO,cARP;AASA,SAASC,SAAT,QAA0B,oBAA1B;AAEA,MAAMC,WAAW,GAAG,EAApB;;AAgDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAW,GAAG,QAYP;AAAA,MAZQ;AACnBC,IAAAA,IAAI,GAAGF,WADY;AAEnBG,IAAAA,MAFmB;AAGnBC,IAAAA,KAHmB;AAInBC,IAAAA,OAJmB;AAKnBC,IAAAA,QALmB;AAMnBC,IAAAA,MANmB;AAOnBC,IAAAA,SAPmB;AAQnBC,IAAAA,WARmB;AASnBC,IAAAA,UATmB;AAUnBC,IAAAA,KAVmB;AAWnB,OAAGC;AAXgB,GAYR;AACX,QAAM;AAAEC,IAAAA;AAAF,MAAaF,KAAnB;AAEA,QAAM;AAAEG,IAAAA,eAAe,GAAGD,MAAM,CAACE;AAA3B,MAAuClB,UAAU,CAACmB,OAAX,CAAmBZ,KAAnB,KAA6B,EAA1E;AAEA,sBACE,oBAAC,IAAD;AACE,IAAA,KAAK,EAAE,CACL;AACEa,MAAAA,KAAK,EAAEf,IADT;AAEEgB,MAAAA,MAAM,EAAEhB,IAFV;AAGEiB,MAAAA,YAAY,EAAEjB,IAAI,GAAG,CAHvB;AAIEY,MAAAA;AAJF,KADK,EAOLV,KAPK;AADT,KAUMQ,IAVN,GAYG,OAAOT,MAAP,KAAkB,UAAlB,IAAgCA,MAAM,CAAC;AAAED,IAAAA;AAAF,GAAD,CAZzC,EAaG,OAAOC,MAAP,KAAkB,UAAlB,iBACC,oBAAC,KAAD;AACE,IAAA,MAAM,EAAEA,MADV;AAEE,IAAA,KAAK,EAAE;AAAEc,MAAAA,KAAK,EAAEf,IAAT;AAAegB,MAAAA,MAAM,EAAEhB,IAAvB;AAA6BiB,MAAAA,YAAY,EAAEjB,IAAI,GAAG;AAAlD,KAFT;AAGE,IAAA,OAAO,EAAEG,OAHX;AAIE,IAAA,QAAQ,EAAEC,QAJZ;AAKE,IAAA,MAAM,EAAEC,MALV;AAME,IAAA,SAAS,EAAEC,SANb;AAOE,IAAA,WAAW,EAAEC,WAPf;AAQE,IAAA,UAAU,EAAEC;AARd,IAdJ,CADF;AA4BD,CA7CD;;AA+CAT,WAAW,CAACmB,WAAZ,GAA0B,cAA1B;AAEA,eAAerB,SAAS,CAACE,WAAD,CAAxB","sourcesContent":["import * as React from 'react';\nimport {\n Image,\n ImageSourcePropType,\n ImageProps,\n StyleSheet,\n View,\n ViewStyle,\n StyleProp,\n} from 'react-native';\nimport { withTheme } from '../../core/theming';\n\nconst defaultSize = 64;\n\nexport type AvatarImageSource =\n | ImageSourcePropType\n | ((props: { size: number }) => React.ReactNode);\n\ntype Props = React.ComponentPropsWithRef<typeof View> & {\n /**\n * Image to display for the `Avatar`.\n * It accepts a standard React Native Image `source` prop\n * Or a function that returns an `Image`.\n */\n source: AvatarImageSource;\n /**\n * Size of the avatar.\n */\n size?: number;\n style?: StyleProp<ViewStyle>;\n /**\n * Invoked on load error.\n */\n onError?: ImageProps['onError'];\n /**\n * Invoked on mount and on layout changes.\n */\n onLayout?: ImageProps['onLayout'];\n /**\n * Invoked when load completes successfully.\n */\n onLoad?: ImageProps['onLoad'];\n /**\n * Invoked when load either succeeds or fails.\n */\n onLoadEnd?: ImageProps['onLoadEnd'];\n /**\n * Invoked on load start.\n */\n onLoadStart?: ImageProps['onLoadStart'];\n /**\n * Invoked on download progress.\n */\n onProgress?: ImageProps['onProgress'];\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * Avatars can be used to represent people in a graphical way.\n *\n * <div class=\"screenshots\">\n * <figure>\n * <img class=\"medium\" src=\"screenshots/avatar-image.png\" />\n * </figure>\n * </div>\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Avatar } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * <Avatar.Image size={24} source={require('../assets/avatar.png')} />\n * );\n * export default MyComponent\n * ```\n */\nconst AvatarImage = ({\n size = defaultSize,\n source,\n style,\n onError,\n onLayout,\n onLoad,\n onLoadEnd,\n onLoadStart,\n onProgress,\n theme,\n ...rest\n}: Props) => {\n const { colors } = theme;\n\n const { backgroundColor = colors.primary } = StyleSheet.flatten(style) || {};\n\n return (\n <View\n style={[\n {\n width: size,\n height: size,\n borderRadius: size / 2,\n backgroundColor,\n },\n style,\n ]}\n {...rest}\n >\n {typeof source === 'function' && source({ size })}\n {typeof source !== 'function' && (\n <Image\n source={source}\n style={{ width: size, height: size, borderRadius: size / 2 }}\n onError={onError}\n onLayout={onLayout}\n onLoad={onLoad}\n onLoadEnd={onLoadEnd}\n onLoadStart={onLoadStart}\n onProgress={onProgress}\n />\n )}\n </View>\n );\n};\n\nAvatarImage.displayName = 'Avatar.Image';\n\nexport default withTheme(AvatarImage);\n"]}
\No newline at end of file