UNPKG

4.97 kBSource Map (JSON)View Raw
1{"version":3,"sources":["TouchableRipple.native.tsx"],"names":["React","Platform","TouchableHighlight","TouchableNativeFeedback","View","StyleSheet","color","withTheme","ANDROID_VERSION_LOLLIPOP","ANDROID_VERSION_PIE","TouchableRipple","style","background","borderless","disabled","disabledProp","rippleColor","underlayColor","children","theme","rest","dark","colors","onPress","calculatedRippleColor","text","alpha","rgb","string","useForeground","OS","Version","supported","Ripple","styles","overflowHidden","Children","only","fade","create","overflow"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAGEC,QAHF,EAIEC,kBAJF,EAKEC,uBALF,EAOEC,IAPF,EASEC,UATF,QAUO,cAVP;AAWA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,QAA0B,oBAA1B;AAEA,MAAMC,wBAAwB,GAAG,EAAjC;AACA,MAAMC,mBAAmB,GAAG,EAA5B;;AAcA,MAAMC,eAAe,GAAG,QAUX;AAAA,MAVY;AACvBC,IAAAA,KADuB;AAEvBC,IAAAA,UAFuB;AAGvBC,IAAAA,UAAU,GAAG,KAHU;AAIvBC,IAAAA,QAAQ,EAAEC,YAJa;AAKvBC,IAAAA,WALuB;AAMvBC,IAAAA,aANuB;AAOvBC,IAAAA,QAPuB;AAQvBC,IAAAA,KARuB;AASvB,OAAGC;AAToB,GAUZ;AACX,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAmBH,KAAzB;AACA,QAAML,QAAQ,GAAGC,YAAY,IAAI,CAACK,IAAI,CAACG,OAAvC;AACA,QAAMC,qBAAqB,GACzBR,WAAW,IACXV,KAAK,CAACgB,MAAM,CAACG,IAAR,CAAL,CACGC,KADH,CACSL,IAAI,GAAG,IAAH,GAAU,GADvB,EAEGM,GAFH,GAGGC,MAHH,EAFF,CAHW,CAUX;AACA;;AACA,QAAMC,aAAa,GACjB5B,QAAQ,CAAC6B,EAAT,KAAgB,SAAhB,IACA7B,QAAQ,CAAC8B,OAAT,IAAoBtB,mBADpB,IAEAI,UAHF;;AAKA,MAAIH,eAAe,CAACsB,SAApB,EAA+B;AAC7B,wBACE,oBAAC,uBAAD,eACMZ,IADN;AAEE,MAAA,QAAQ,EAAEN,QAFZ;AAGE,MAAA,aAAa,EAAEe,aAHjB;AAIE,MAAA,UAAU,EACRjB,UAAU,IAAI,IAAd,GACIA,UADJ,GAEIT,uBAAuB,CAAC8B,MAAxB,CAA+BT,qBAA/B,EAAsDX,UAAtD;AAPR,qBAUE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE,CAACA,UAAU,IAAIqB,MAAM,CAACC,cAAtB,EAAsCxB,KAAtC;AAAb,OACGX,KAAK,CAACoC,QAAN,CAAeC,IAAf,CAAoBnB,QAApB,CADH,CAVF,CADF;AAgBD;;AAED,sBACE,oBAAC,kBAAD,eACME,IADN;AAEE,IAAA,QAAQ,EAAEN,QAFZ;AAGE,IAAA,KAAK,EAAE,CAACD,UAAU,IAAIqB,MAAM,CAACC,cAAtB,EAAsCxB,KAAtC,CAHT;AAIE,IAAA,aAAa,EACXM,aAAa,IAAI,IAAjB,GACIA,aADJ,GAEIX,KAAK,CAACkB,qBAAD,CAAL,CAA6Bc,IAA7B,CAAkC,GAAlC,EAAuCX,GAAvC,GAA6CC,MAA7C;AAPR,MAUG5B,KAAK,CAACoC,QAAN,CAAeC,IAAf,CAAoBnB,QAApB,CAVH,CADF;AAcD,CA5DD;;AA8DAR,eAAe,CAACsB,SAAhB,GACE/B,QAAQ,CAAC6B,EAAT,KAAgB,SAAhB,IAA6B7B,QAAQ,CAAC8B,OAAT,IAAoBvB,wBADnD;AAGA,MAAM0B,MAAM,GAAG7B,UAAU,CAACkC,MAAX,CAAkB;AAC/BJ,EAAAA,cAAc,EAAE;AACdK,IAAAA,QAAQ,EAAE;AADI;AADe,CAAlB,CAAf;AAMA,eAAejC,SAAS,CAACG,eAAD,CAAxB","sourcesContent":["import * as React from 'react';\nimport {\n BackgroundPropType,\n StyleProp,\n Platform,\n TouchableHighlight,\n TouchableNativeFeedback,\n TouchableWithoutFeedback,\n View,\n ViewStyle,\n StyleSheet,\n} from 'react-native';\nimport color from 'color';\nimport { withTheme } from '../../core/theming';\n\nconst ANDROID_VERSION_LOLLIPOP = 21;\nconst ANDROID_VERSION_PIE = 28;\n\ntype Props = React.ComponentProps<typeof TouchableWithoutFeedback> & {\n borderless?: boolean;\n background?: BackgroundPropType;\n disabled?: boolean;\n onPress?: () => void | null;\n rippleColor?: string;\n underlayColor?: string;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n theme: ReactNativePaper.Theme;\n};\n\nconst TouchableRipple = ({\n style,\n background,\n borderless = false,\n disabled: disabledProp,\n rippleColor,\n underlayColor,\n children,\n theme,\n ...rest\n}: Props) => {\n const { dark, colors } = theme;\n const disabled = disabledProp || !rest.onPress;\n const calculatedRippleColor =\n rippleColor ||\n color(colors.text)\n .alpha(dark ? 0.32 : 0.2)\n .rgb()\n .string();\n\n // A workaround for ripple on Android P is to use useForeground + overflow: 'hidden'\n // https://github.com/facebook/react-native/issues/6480\n const useForeground =\n Platform.OS === 'android' &&\n Platform.Version >= ANDROID_VERSION_PIE &&\n borderless;\n\n if (TouchableRipple.supported) {\n return (\n <TouchableNativeFeedback\n {...rest}\n disabled={disabled}\n useForeground={useForeground}\n background={\n background != null\n ? background\n : TouchableNativeFeedback.Ripple(calculatedRippleColor, borderless)\n }\n >\n <View style={[borderless && styles.overflowHidden, style]}>\n {React.Children.only(children)}\n </View>\n </TouchableNativeFeedback>\n );\n }\n\n return (\n <TouchableHighlight\n {...rest}\n disabled={disabled}\n style={[borderless && styles.overflowHidden, style]}\n underlayColor={\n underlayColor != null\n ? underlayColor\n : color(calculatedRippleColor).fade(0.5).rgb().string()\n }\n >\n {React.Children.only(children)}\n </TouchableHighlight>\n );\n};\n\nTouchableRipple.supported =\n Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP;\n\nconst styles = StyleSheet.create({\n overflowHidden: {\n overflow: 'hidden',\n },\n});\n\nexport default withTheme(TouchableRipple);\n"]}
\No newline at end of file