UNPKG

repoweaver

Version:

A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies

1 lines 9.5 kB
{"ast":null,"code":"import * as React from 'react';\nimport Animated from \"react-native-web/dist/exports/Animated\";\nimport StyleSheet from \"react-native-web/dist/exports/StyleSheet\";\nimport View from \"react-native-web/dist/exports/View\";\nimport Icon, { isEqualIcon, isValidIcon } from \"./Icon\";\nimport { useInternalTheme } from \"../core/theming\";\nconst CrossFadeIcon = ({\n color,\n size,\n source,\n theme: themeOverrides,\n testID = 'cross-fade-icon'\n}) => {\n const theme = useInternalTheme(themeOverrides);\n const [currentIcon, setCurrentIcon] = React.useState(() => source);\n const [previousIcon, setPreviousIcon] = React.useState(null);\n const {\n current: fade\n } = React.useRef(new Animated.Value(1));\n const {\n scale\n } = theme.animation;\n if (currentIcon !== source) {\n setPreviousIcon(() => currentIcon);\n setCurrentIcon(() => source);\n }\n React.useEffect(() => {\n if (isValidIcon(previousIcon) && !isEqualIcon(previousIcon, currentIcon)) {\n fade.setValue(1);\n Animated.timing(fade, {\n duration: scale * 200,\n toValue: 0,\n useNativeDriver: true\n }).start();\n }\n }, [currentIcon, previousIcon, fade, scale]);\n const opacityPrev = fade;\n const opacityNext = previousIcon ? fade.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0]\n }) : 1;\n const rotatePrev = fade.interpolate({\n inputRange: [0, 1],\n outputRange: ['-90deg', '0deg']\n });\n const rotateNext = previousIcon ? fade.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '-180deg']\n }) : '0deg';\n return React.createElement(View, {\n style: [styles.content, {\n height: size,\n width: size\n }]\n }, previousIcon ? React.createElement(Animated.View, {\n style: [styles.icon, {\n opacity: opacityPrev,\n transform: [{\n rotate: rotatePrev\n }]\n }],\n testID: `${testID}-previous`\n }, React.createElement(Icon, {\n source: previousIcon,\n size: size,\n color: color,\n theme: theme\n })) : null, React.createElement(Animated.View, {\n style: [styles.icon, {\n opacity: opacityNext,\n transform: [{\n rotate: rotateNext\n }]\n }],\n testID: `${testID}-current`\n }, React.createElement(Icon, {\n source: currentIcon,\n size: size,\n color: color,\n theme: theme\n })));\n};\nexport default CrossFadeIcon;\nconst styles = StyleSheet.create({\n content: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n icon: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }\n});","map":{"version":3,"names":["React","Animated","StyleSheet","View","Icon","isEqualIcon","isValidIcon","useInternalTheme","CrossFadeIcon","color","size","source","theme","themeOverrides","testID","currentIcon","setCurrentIcon","useState","previousIcon","setPreviousIcon","current","fade","useRef","Value","scale","animation","useEffect","setValue","timing","duration","toValue","useNativeDriver","start","opacityPrev","opacityNext","interpolate","inputRange","outputRange","rotatePrev","rotateNext","createElement","style","styles","content","height","width","icon","opacity","transform","rotate","create","alignItems","justifyContent","position","top","left","right","bottom"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/react-native-paper/src/components/CrossFadeIcon.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\n\nimport Icon, { IconSource, isEqualIcon, isValidIcon } from './Icon';\nimport { useInternalTheme } from '../core/theming';\nimport type { ThemeProp } from '../types';\n\ntype Props = {\n /**\n * Icon to display for the `CrossFadeIcon`.\n */\n source: IconSource;\n /**\n * Color of the icon.\n */\n color: string;\n /**\n * Size of the icon.\n */\n size: number;\n /**\n * TestID used for testing purposes\n */\n testID?: string;\n /**\n * @optional\n */\n theme?: ThemeProp;\n};\n\nconst CrossFadeIcon = ({\n color,\n size,\n source,\n theme: themeOverrides,\n testID = 'cross-fade-icon',\n}: Props) => {\n const theme = useInternalTheme(themeOverrides);\n const [currentIcon, setCurrentIcon] = React.useState<IconSource>(\n () => source\n );\n const [previousIcon, setPreviousIcon] = React.useState<IconSource | null>(\n null\n );\n const { current: fade } = React.useRef<Animated.Value>(new Animated.Value(1));\n\n const { scale } = theme.animation;\n\n if (currentIcon !== source) {\n setPreviousIcon(() => currentIcon);\n setCurrentIcon(() => source);\n }\n\n React.useEffect(() => {\n if (isValidIcon(previousIcon) && !isEqualIcon(previousIcon, currentIcon)) {\n fade.setValue(1);\n\n Animated.timing(fade, {\n duration: scale * 200,\n toValue: 0,\n useNativeDriver: true,\n }).start();\n }\n }, [currentIcon, previousIcon, fade, scale]);\n\n const opacityPrev = fade;\n const opacityNext = previousIcon\n ? fade.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0],\n })\n : 1;\n\n const rotatePrev = fade.interpolate({\n inputRange: [0, 1],\n outputRange: ['-90deg', '0deg'],\n });\n\n const rotateNext = previousIcon\n ? fade.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '-180deg'],\n })\n : '0deg';\n\n return (\n <View\n style={[\n styles.content,\n {\n height: size,\n width: size,\n },\n ]}\n >\n {previousIcon ? (\n <Animated.View\n style={[\n styles.icon,\n {\n opacity: opacityPrev,\n transform: [{ rotate: rotatePrev }],\n },\n ]}\n testID={`${testID}-previous`}\n >\n <Icon source={previousIcon} size={size} color={color} theme={theme} />\n </Animated.View>\n ) : null}\n <Animated.View\n style={[\n styles.icon,\n {\n opacity: opacityNext,\n transform: [{ rotate: rotateNext }],\n },\n ]}\n testID={`${testID}-current`}\n >\n <Icon source={currentIcon} size={size} color={color} theme={theme} />\n </Animated.View>\n </View>\n );\n};\n\nexport default CrossFadeIcon;\n\nconst styles = StyleSheet.create({\n content: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n icon: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n});\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAAA,OAAAC,QAAA;AAAA,OAAAC,UAAA;AAAA,OAAAC,IAAA;AAG9B,OAAOC,IAAI,IAAgBC,WAAW,EAAEC,WAAW;AACnD,SAASC,gBAAgB;AA0BzB,MAAMC,aAAa,GAAGA,CAAC;EACrBC,KAAK;EACLC,IAAI;EACJC,MAAM;EACNC,KAAK,EAAEC,cAAc;EACrBC,MAAM,GAAG;AACJ,CAAC,KAAK;EACX,MAAMF,KAAK,GAAGL,gBAAgB,CAACM,cAAc,CAAC;EAC9C,MAAM,CAACE,WAAW,EAAEC,cAAc,CAAC,GAAGhB,KAAK,CAACiB,QAAQ,CAClD,MAAMN,MACR,CAAC;EACD,MAAM,CAACO,YAAY,EAAEC,eAAe,CAAC,GAAGnB,KAAK,CAACiB,QAAQ,CACpD,IACF,CAAC;EACD,MAAM;IAAEG,OAAO,EAAEC;EAAK,CAAC,GAAGrB,KAAK,CAACsB,MAAM,CAAiB,IAAIrB,QAAQ,CAACsB,KAAK,CAAC,CAAC,CAAC,CAAC;EAE7E,MAAM;IAAEC;EAAM,CAAC,GAAGZ,KAAK,CAACa,SAAS;EAEjC,IAAIV,WAAW,KAAKJ,MAAM,EAAE;IAC1BQ,eAAe,CAAC,MAAMJ,WAAW,CAAC;IAClCC,cAAc,CAAC,MAAML,MAAM,CAAC;EAC9B;EAEAX,KAAK,CAAC0B,SAAS,CAAC,MAAM;IACpB,IAAIpB,WAAW,CAACY,YAAY,CAAC,IAAI,CAACb,WAAW,CAACa,YAAY,EAAEH,WAAW,CAAC,EAAE;MACxEM,IAAI,CAACM,QAAQ,CAAC,CAAC,CAAC;MAEhB1B,QAAQ,CAAC2B,MAAM,CAACP,IAAI,EAAE;QACpBQ,QAAQ,EAAEL,KAAK,GAAG,GAAG;QACrBM,OAAO,EAAE,CAAC;QACVC,eAAe,EAAE;MACnB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;IACZ;EACF,CAAC,EAAE,CAACjB,WAAW,EAAEG,YAAY,EAAEG,IAAI,EAAEG,KAAK,CAAC,CAAC;EAE5C,MAAMS,WAAW,GAAGZ,IAAI;EACxB,MAAMa,WAAW,GAAGhB,YAAY,GAC5BG,IAAI,CAACc,WAAW,CAAC;IACfC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;EACpB,CAAC,CAAC,GACF,CAAC;EAEL,MAAMC,UAAU,GAAGjB,IAAI,CAACc,WAAW,CAAC;IAClCC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClBC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM;EAChC,CAAC,CAAC;EAEF,MAAME,UAAU,GAAGrB,YAAY,GAC3BG,IAAI,CAACc,WAAW,CAAC;IACfC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClBC,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS;EACjC,CAAC,CAAC,GACF,MAAM;EAEV,OACErC,KAAA,CAAAwC,aAAA,CAACrC,IAAI;IACHsC,KAAK,EAAE,CACLC,MAAM,CAACC,OAAO,EACd;MACEC,MAAM,EAAElC,IAAI;MACZmC,KAAK,EAAEnC;IACT,CAAC;EACD,GAEDQ,YAAY,GACXlB,KAAA,CAAAwC,aAAA,CAACvC,QAAQ,CAACE,IAAI;IACZsC,KAAK,EAAE,CACLC,MAAM,CAACI,IAAI,EACX;MACEC,OAAO,EAAEd,WAAW;MACpBe,SAAS,EAAE,CAAC;QAAEC,MAAM,EAAEX;MAAW,CAAC;IACpC,CAAC,CACD;IACFxB,MAAM,EAAE,GAAGA,MAAM;EAAY,GAE7Bd,KAAA,CAAAwC,aAAA,CAACpC,IAAI;IAACO,MAAM,EAAEO,YAAa;IAACR,IAAI,EAAEA,IAAK;IAACD,KAAK,EAAEA,KAAM;IAACG,KAAK,EAAEA;EAAM,CAAE,CACxD,CAAC,GACd,IAAI,EACRZ,KAAA,CAAAwC,aAAA,CAACvC,QAAQ,CAACE,IAAI;IACZsC,KAAK,EAAE,CACLC,MAAM,CAACI,IAAI,EACX;MACEC,OAAO,EAAEb,WAAW;MACpBc,SAAS,EAAE,CAAC;QAAEC,MAAM,EAAEV;MAAW,CAAC;IACpC,CAAC,CACD;IACFzB,MAAM,EAAE,GAAGA,MAAM;EAAW,GAE5Bd,KAAA,CAAAwC,aAAA,CAACpC,IAAI;IAACO,MAAM,EAAEI,WAAY;IAACL,IAAI,EAAEA,IAAK;IAACD,KAAK,EAAEA,KAAM;IAACG,KAAK,EAAEA;EAAM,CAAE,CACvD,CACX,CAAC;AAEX,CAAC;AAED,eAAeJ,aAAa;AAE5B,MAAMkC,MAAM,GAAGxC,UAAU,CAACgD,MAAM,CAAC;EAC/BP,OAAO,EAAE;IACPQ,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDN,IAAI,EAAE;IACJO,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}