UNPKG

repoweaver

Version:

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

1 lines 9.46 kB
{"ast":null,"code":"import * as React from 'react';\nimport View from \"react-native-web/dist/exports/View\";\nimport StyleSheet from \"react-native-web/dist/exports/StyleSheet\";\nimport PortalManager from \"./PortalManager\";\nexport const PortalContext = React.createContext(null);\nexport default class PortalHost extends React.Component {\n static displayName = 'Portal.Host';\n componentDidMount() {\n const manager = this.manager;\n const queue = this.queue;\n while (queue.length && manager) {\n const action = queue.pop();\n if (action) {\n switch (action.type) {\n case 'mount':\n manager.mount(action.key, action.children);\n break;\n case 'update':\n manager.update(action.key, action.children);\n break;\n case 'unmount':\n manager.unmount(action.key);\n break;\n }\n }\n }\n }\n setManager = manager => {\n this.manager = manager;\n };\n mount = children => {\n const key = this.nextKey++;\n if (this.manager) {\n this.manager.mount(key, children);\n } else {\n this.queue.push({\n type: 'mount',\n key,\n children\n });\n }\n return key;\n };\n update = (key, children) => {\n if (this.manager) {\n this.manager.update(key, children);\n } else {\n const op = {\n type: 'mount',\n key,\n children\n };\n const index = this.queue.findIndex(o => o.type === 'mount' || o.type === 'update' && o.key === key);\n if (index > -1) {\n this.queue[index] = op;\n } else {\n this.queue.push(op);\n }\n }\n };\n unmount = key => {\n if (this.manager) {\n this.manager.unmount(key);\n } else {\n this.queue.push({\n type: 'unmount',\n key\n });\n }\n };\n nextKey = 0;\n queue = [];\n render() {\n return React.createElement(PortalContext.Provider, {\n value: {\n mount: this.mount,\n update: this.update,\n unmount: this.unmount\n }\n }, React.createElement(View, {\n style: styles.container,\n collapsable: false,\n pointerEvents: \"box-none\"\n }, this.props.children), React.createElement(PortalManager, {\n ref: this.setManager\n }));\n }\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n }\n});","map":{"version":3,"names":["React","View","StyleSheet","PortalManager","PortalContext","createContext","PortalHost","Component","displayName","componentDidMount","manager","queue","length","action","pop","type","mount","key","children","update","unmount","setManager","nextKey","push","op","index","findIndex","o","render","createElement","Provider","value","style","styles","container","collapsable","pointerEvents","props","ref","create","flex"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/react-native-paper/src/components/Portal/PortalHost.tsx"],"sourcesContent":["import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\n\nimport PortalManager from './PortalManager';\n\nexport type Props = {\n children: React.ReactNode;\n};\n\ntype Operation =\n | { type: 'mount'; key: number; children: React.ReactNode }\n | { type: 'update'; key: number; children: React.ReactNode }\n | { type: 'unmount'; key: number };\n\nexport type PortalMethods = {\n mount: (children: React.ReactNode) => number;\n update: (key: number, children: React.ReactNode) => void;\n unmount: (key: number) => void;\n};\n\nexport const PortalContext = React.createContext<PortalMethods>(null as any);\n\n/**\n * Portal host renders all of its children `Portal` elements.\n * For example, you can wrap a screen in `Portal.Host` to render items above the screen.\n * If you're using the `Provider` component, it already includes `Portal.Host`.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Text } from 'react-native';\n * import { Portal } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * <Portal.Host>\n * <Text>Content of the app</Text>\n * </Portal.Host>\n * );\n *\n * export default MyComponent;\n * ```\n *\n * Here any `Portal` elements under `<App />` are rendered alongside `<App />` and will appear above `<App />` like a `Modal`.\n */\nexport default class PortalHost extends React.Component<Props> {\n static displayName = 'Portal.Host';\n\n componentDidMount() {\n const manager = this.manager;\n const queue = this.queue;\n\n while (queue.length && manager) {\n const action = queue.pop();\n if (action) {\n // eslint-disable-next-line default-case\n switch (action.type) {\n case 'mount':\n manager.mount(action.key, action.children);\n break;\n case 'update':\n manager.update(action.key, action.children);\n break;\n case 'unmount':\n manager.unmount(action.key);\n break;\n }\n }\n }\n }\n\n private setManager = (manager: PortalManager | undefined | null) => {\n this.manager = manager;\n };\n\n private mount = (children: React.ReactNode) => {\n const key = this.nextKey++;\n\n if (this.manager) {\n this.manager.mount(key, children);\n } else {\n this.queue.push({ type: 'mount', key, children });\n }\n\n return key;\n };\n\n private update = (key: number, children: React.ReactNode) => {\n if (this.manager) {\n this.manager.update(key, children);\n } else {\n const op: Operation = { type: 'mount', key, children };\n const index = this.queue.findIndex(\n (o) => o.type === 'mount' || (o.type === 'update' && o.key === key)\n );\n\n if (index > -1) {\n this.queue[index] = op;\n } else {\n this.queue.push(op as Operation);\n }\n }\n };\n\n private unmount = (key: number) => {\n if (this.manager) {\n this.manager.unmount(key);\n } else {\n this.queue.push({ type: 'unmount', key });\n }\n };\n\n private nextKey = 0;\n private queue: Operation[] = [];\n private manager: PortalManager | null | undefined;\n\n render() {\n return (\n <PortalContext.Provider\n value={{\n mount: this.mount,\n update: this.update,\n unmount: this.unmount,\n }}\n >\n {/* Need collapsable=false here to clip the elevations, otherwise they appear above Portal components */}\n <View\n style={styles.container}\n collapsable={false}\n pointerEvents=\"box-none\"\n >\n {this.props.children}\n </View>\n <PortalManager ref={this.setManager} />\n </PortalContext.Provider>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}