UNPKG

repoweaver

Version:

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

1 lines 16.3 kB
{"ast":null,"code":"\"use strict\";\n\nimport * as React from 'react';\nimport Platform from \"react-native-web/dist/exports/Platform\";\nimport StyleSheet from \"react-native-web/dist/exports/StyleSheet\";\nimport { useSafeAreaFrame } from 'react-native-safe-area-context';\nimport useLatestCallback from 'use-latest-callback';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst SafeAreaListener = require('react-native-safe-area-context').SafeAreaListener;\nconst FrameContext = React.createContext(undefined);\nexport function useFrameSize(selector, throttle) {\n const context = React.useContext(FrameContext);\n if (context == null) {\n throw new Error('useFrameSize must be used within a FrameSizeProvider');\n }\n const value = useSyncExternalStoreWithSelector(throttle ? context.subscribeThrottled : context.subscribe, context.getCurrent, context.getCurrent, selector);\n return value;\n}\nexport function FrameSizeProvider({\n initialFrame,\n children\n}) {\n const context = React.useContext(FrameContext);\n if (context != null) {\n return children;\n }\n return _jsx(FrameSizeProviderInner, {\n initialFrame: initialFrame,\n children: children\n });\n}\nfunction FrameSizeProviderInner({\n initialFrame,\n children\n}) {\n const frameRef = React.useRef({\n width: initialFrame.width,\n height: initialFrame.height\n });\n const listeners = React.useRef(new Set());\n const getCurrent = useLatestCallback(() => frameRef.current);\n const subscribe = useLatestCallback(listener => {\n listeners.current.add(listener);\n return () => {\n listeners.current.delete(listener);\n };\n });\n const subscribeThrottled = useLatestCallback(listener => {\n const delay = 100;\n let timer;\n let updated = false;\n let waiting = false;\n const throttledListener = () => {\n clearTimeout(timer);\n updated = true;\n if (waiting) {\n timer = setTimeout(() => {\n if (updated) {\n updated = false;\n listener();\n }\n }, delay);\n } else {\n waiting = true;\n setTimeout(function () {\n waiting = false;\n }, delay);\n updated = false;\n listener();\n }\n };\n const unsubscribe = subscribe(throttledListener);\n return () => {\n unsubscribe();\n clearTimeout(timer);\n };\n });\n const context = React.useMemo(() => ({\n getCurrent,\n subscribe,\n subscribeThrottled\n }), [subscribe, subscribeThrottled, getCurrent]);\n const onChange = useLatestCallback(frame => {\n if (frameRef.current.height === frame.height && frameRef.current.width === frame.width) {\n return;\n }\n frameRef.current = {\n width: frame.width,\n height: frame.height\n };\n listeners.current.forEach(listener => listener());\n });\n return _jsxs(_Fragment, {\n children: [Platform.OS === 'web' ? _jsx(FrameSizeListenerWeb, {\n onChange: onChange\n }) : typeof SafeAreaListener === 'undefined' ? _jsx(FrameSizeListenerNativeFallback, {\n onChange: onChange\n }) : _jsx(SafeAreaListener, {\n onChange: ({\n frame\n }) => onChange(frame),\n style: StyleSheet.absoluteFill\n }), _jsx(FrameContext.Provider, {\n value: context,\n children: children\n })]\n });\n}\nfunction FrameSizeListenerNativeFallback({\n onChange\n}) {\n const frame = useSafeAreaFrame();\n React.useLayoutEffect(() => {\n onChange(frame);\n }, [frame, onChange]);\n return null;\n}\nfunction FrameSizeListenerWeb({\n onChange\n}) {\n const elementRef = React.useRef(null);\n React.useEffect(() => {\n if (elementRef.current == null) {\n return;\n }\n const rect = elementRef.current.getBoundingClientRect();\n onChange({\n width: rect.width,\n height: rect.height\n });\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n if (entry) {\n const {\n width,\n height\n } = entry.contentRect;\n onChange({\n width,\n height\n });\n }\n });\n observer.observe(elementRef.current);\n return () => {\n observer.disconnect();\n };\n }, [onChange]);\n return _jsx(\"div\", {\n ref: elementRef,\n style: Object.assign({}, StyleSheet.absoluteFillObject, {\n pointerEvents: 'none',\n visibility: 'hidden'\n })\n });\n}","map":{"version":3,"names":["React","Platform","StyleSheet","useSafeAreaFrame","useLatestCallback","useSyncExternalStoreWithSelector","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SafeAreaListener","require","FrameContext","createContext","undefined","useFrameSize","selector","throttle","context","useContext","Error","value","subscribeThrottled","subscribe","getCurrent","FrameSizeProvider","initialFrame","children","FrameSizeProviderInner","frameRef","useRef","width","height","listeners","Set","current","listener","add","delete","delay","timer","updated","waiting","throttledListener","clearTimeout","setTimeout","unsubscribe","useMemo","onChange","frame","forEach","OS","FrameSizeListenerWeb","FrameSizeListenerNativeFallback","style","absoluteFill","Provider","useLayoutEffect","elementRef","useEffect","rect","getBoundingClientRect","observer","ResizeObserver","entries","entry","contentRect","observe","disconnect","ref","Object","assign","absoluteFillObject","pointerEvents","visibility"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/elements/src/useFrameSize.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Platform,\n type StyleProp,\n StyleSheet,\n type ViewStyle,\n} from 'react-native';\nimport {\n // eslint-disable-next-line no-restricted-imports\n useSafeAreaFrame,\n} from 'react-native-safe-area-context';\nimport useLatestCallback from 'use-latest-callback';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector';\n\n// Load with require to avoid error from webpack due to missing export in older versions\n// eslint-disable-next-line import-x/no-commonjs\nconst SafeAreaListener = require('react-native-safe-area-context')\n .SafeAreaListener as\n | typeof import('react-native-safe-area-context').SafeAreaListener\n | undefined;\n\ntype Frame = {\n width: number;\n height: number;\n};\n\ntype Listener = () => void;\n\ntype RemoveListener = () => void;\n\ntype FrameContextType = {\n getCurrent: () => Frame;\n subscribe: (listener: Listener) => RemoveListener;\n subscribeThrottled: (listener: Listener) => RemoveListener;\n};\n\nconst FrameContext = React.createContext<FrameContextType | undefined>(\n undefined\n);\n\nexport function useFrameSize<T>(\n selector: (frame: Frame) => T,\n throttle?: boolean\n): T {\n const context = React.useContext(FrameContext);\n\n if (context == null) {\n throw new Error('useFrameSize must be used within a FrameSizeProvider');\n }\n\n const value = useSyncExternalStoreWithSelector(\n throttle ? context.subscribeThrottled : context.subscribe,\n context.getCurrent,\n context.getCurrent,\n selector\n );\n\n return value;\n}\n\ntype FrameSizeProviderProps = {\n initialFrame: Frame;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n};\n\nexport function FrameSizeProvider({\n initialFrame,\n children,\n}: FrameSizeProviderProps) {\n const context = React.useContext(FrameContext);\n\n if (context != null) {\n // If the context is already present, don't wrap again\n return children;\n }\n\n return (\n <FrameSizeProviderInner initialFrame={initialFrame}>\n {children}\n </FrameSizeProviderInner>\n );\n}\n\nfunction FrameSizeProviderInner({\n initialFrame,\n children,\n}: FrameSizeProviderProps) {\n const frameRef = React.useRef<Frame>({\n width: initialFrame.width,\n height: initialFrame.height,\n });\n\n const listeners = React.useRef<Set<Listener>>(new Set());\n\n const getCurrent = useLatestCallback(() => frameRef.current);\n\n const subscribe = useLatestCallback((listener: Listener): RemoveListener => {\n listeners.current.add(listener);\n\n return () => {\n listeners.current.delete(listener);\n };\n });\n\n const subscribeThrottled = useLatestCallback(\n (listener: Listener): RemoveListener => {\n const delay = 100; // Throttle delay in milliseconds\n\n let timer: ReturnType<typeof setTimeout>;\n let updated = false;\n let waiting = false;\n\n const throttledListener = () => {\n clearTimeout(timer);\n\n updated = true;\n\n if (waiting) {\n // Schedule a timer to call the listener at the end\n timer = setTimeout(() => {\n if (updated) {\n updated = false;\n listener();\n }\n }, delay);\n } else {\n waiting = true;\n setTimeout(function () {\n waiting = false;\n }, delay);\n\n // Call the listener immediately at start\n updated = false;\n listener();\n }\n };\n\n const unsubscribe = subscribe(throttledListener);\n\n return () => {\n unsubscribe();\n clearTimeout(timer);\n };\n }\n );\n\n const context = React.useMemo<FrameContextType>(\n () => ({\n getCurrent,\n subscribe,\n subscribeThrottled,\n }),\n [subscribe, subscribeThrottled, getCurrent]\n );\n\n const onChange = useLatestCallback((frame: Frame) => {\n if (\n frameRef.current.height === frame.height &&\n frameRef.current.width === frame.width\n ) {\n return;\n }\n\n frameRef.current = { width: frame.width, height: frame.height };\n listeners.current.forEach((listener) => listener());\n });\n\n return (\n <>\n {Platform.OS === 'web' ? (\n <FrameSizeListenerWeb onChange={onChange} />\n ) : typeof SafeAreaListener === 'undefined' ? (\n <FrameSizeListenerNativeFallback onChange={onChange} />\n ) : (\n <SafeAreaListener\n onChange={({ frame }) => onChange(frame)}\n style={StyleSheet.absoluteFill}\n />\n )}\n <FrameContext.Provider value={context}>{children}</FrameContext.Provider>\n </>\n );\n}\n\n// SafeAreaListener is available only on newer versions\n// Fallback to an effect-based shim for older versions\nfunction FrameSizeListenerNativeFallback({\n onChange,\n}: {\n onChange: (frame: Frame) => void;\n}) {\n const frame = useSafeAreaFrame();\n\n React.useLayoutEffect(() => {\n onChange(frame);\n }, [frame, onChange]);\n\n return null;\n}\n\n// FIXME: On the Web, the safe area frame value doesn't update on resize\n// So we workaround this by measuring the frame on resize\nfunction FrameSizeListenerWeb({\n onChange,\n}: {\n onChange: (frame: Frame) => void;\n}) {\n const elementRef = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (elementRef.current == null) {\n return;\n }\n\n const rect = elementRef.current.getBoundingClientRect();\n\n onChange({\n width: rect.width,\n height: rect.height,\n });\n\n const observer = new ResizeObserver((entries) => {\n const entry = entries[0];\n\n if (entry) {\n const { width, height } = entry.contentRect;\n\n onChange({ width, height });\n }\n });\n\n observer.observe(elementRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, [onChange]);\n\n return (\n <div\n ref={elementRef}\n style={{\n ...StyleSheet.absoluteFillObject,\n pointerEvents: 'none',\n visibility: 'hidden',\n }}\n />\n );\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}