This repository has been archived on 2022-03-12. You can view files and clone it, but cannot push or open issues or pull requests.
2021-04-02 02:24:13 +03:00

1 line
8.3 KiB
Plaintext

{"version":3,"sources":["Transitioning.js"],"names":["React","View","findNodeHandle","ReanimatedModule","TransitioningContext","createContext","configFromProps","type","props","config","durationMs","interpolation","animation","delayMs","propagation","wrapTransitioningContext","Comp","context","In","Component","componentDidMount","push","render","children","Change","Out","Together","transitions","Sequence","sequence","createTransitioningComponent","Wrapped","propTypes","createRef","animateMount","animateNextTransition","setNativeProps","viewRef","current","viewTag","transition","rest","Transitioning","Transition"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { View, findNodeHandle } from 'react-native';\nimport ReanimatedModule from './ReanimatedModule';\n\nconst TransitioningContext = React.createContext();\n\nfunction configFromProps(type, props) {\n const config = { type };\n if ('durationMs' in props) {\n config.durationMs = props.durationMs;\n }\n if ('interpolation' in props) {\n config.interpolation = props.interpolation;\n }\n if ('type' in props) {\n config.animation = props.type;\n }\n if ('delayMs' in props) {\n config.delayMs = props.delayMs;\n }\n if ('propagation' in props) {\n config.propagation = props.propagation;\n }\n return config;\n}\n\n/**\n * The below wrapper is used to support legacy context API with Context.Consumer\n * render prop. We need it as we want to access `context` from within\n * `componentDidMount` callback. If we decided to drop support for older\n * react native we could rewrite it using hooks or `static contextType` API.\n */\nfunction wrapTransitioningContext(Comp) {\n return props => {\n return (\n <TransitioningContext.Consumer>\n {context => <Comp context={context} {...props} />}\n </TransitioningContext.Consumer>\n );\n };\n}\n\nclass In extends React.Component {\n componentDidMount() {\n this.props.context.push(configFromProps('in', this.props));\n }\n\n render() {\n return this.props.children || null;\n }\n}\n\nclass Change extends React.Component {\n componentDidMount() {\n this.props.context.push(configFromProps('change', this.props));\n }\n\n render() {\n return this.props.children || null;\n }\n}\n\nclass Out extends React.Component {\n componentDidMount() {\n this.props.context.push(configFromProps('out', this.props));\n }\n\n render() {\n return this.props.children || null;\n }\n}\n\nclass Together extends React.Component {\n transitions = [];\n componentDidMount() {\n const config = configFromProps('group', this.props);\n config.transitions = this.transitions;\n this.props.context.push(config);\n }\n\n render() {\n return (\n <TransitioningContext.Provider value={this.transitions}>\n {this.props.children}\n </TransitioningContext.Provider>\n );\n }\n}\n\nclass Sequence extends React.Component {\n transitions = [];\n componentDidMount() {\n const config = configFromProps('group', this.props);\n config.sequence = true;\n config.transitions = this.transitions;\n this.props.context.push(config);\n }\n\n render() {\n return (\n <TransitioningContext.Provider value={this.transitions}>\n {this.props.children}\n </TransitioningContext.Provider>\n );\n }\n}\n\nfunction createTransitioningComponent(Component) {\n class Wrapped extends React.Component {\n propTypes = Component.propTypes;\n transitions = [];\n viewRef = React.createRef();\n\n componentDidMount() {\n if (this.props.animateMount) {\n this.animateNextTransition();\n }\n }\n\n setNativeProps(props) {\n this.viewRef.current.setNativeProps(props);\n }\n\n animateNextTransition() {\n const viewTag = findNodeHandle(this.viewRef.current);\n ReanimatedModule.animateNextTransition(viewTag, {\n transitions: this.transitions,\n });\n }\n\n render() {\n const { transition, ...rest } = this.props;\n return (\n <React.Fragment>\n <TransitioningContext.Provider value={this.transitions}>\n {transition}\n </TransitioningContext.Provider>\n <Component {...rest} ref={this.viewRef} collapsable={false} />\n </React.Fragment>\n );\n }\n }\n return Wrapped;\n}\n\nconst Transitioning = {\n View: createTransitioningComponent(View),\n};\n\nconst Transition = {\n Sequence: wrapTransitioningContext(Sequence),\n Together: wrapTransitioningContext(Together),\n In: wrapTransitioningContext(In),\n Out: wrapTransitioningContext(Out),\n Change: wrapTransitioningContext(Change),\n};\n\nexport { Transitioning, Transition, createTransitioningComponent };\n"]}