repoweaver
Version:
A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies
1 lines • 9.43 kB
JSON
{"ast":null,"code":"\"use strict\";\n\nimport * as React from 'react';\nimport { NavigationBuilderContext } from \"./NavigationBuilderContext.js\";\nimport { NavigationStateContext } from \"./NavigationStateContext.js\";\nexport function useOptionsGetters(_ref) {\n var key = _ref.key,\n options = _ref.options,\n navigation = _ref.navigation;\n var optionsRef = React.useRef(options);\n var optionsGettersFromChildRef = React.useRef({});\n var _React$useContext = React.useContext(NavigationBuilderContext),\n onOptionsChange = _React$useContext.onOptionsChange;\n var _React$useContext2 = React.useContext(NavigationStateContext),\n parentAddOptionsGetter = _React$useContext2.addOptionsGetter;\n var optionsChangeListener = React.useCallback(function () {\n var _navigation$isFocused;\n var isFocused = (_navigation$isFocused = navigation == null ? void 0 : navigation.isFocused()) != null ? _navigation$isFocused : true;\n var hasChildren = Object.keys(optionsGettersFromChildRef.current).length;\n if (isFocused && !hasChildren) {\n var _optionsRef$current;\n onOptionsChange((_optionsRef$current = optionsRef.current) != null ? _optionsRef$current : {});\n }\n }, [navigation, onOptionsChange]);\n React.useEffect(function () {\n optionsRef.current = options;\n optionsChangeListener();\n return navigation == null ? void 0 : navigation.addListener('focus', optionsChangeListener);\n }, [navigation, options, optionsChangeListener]);\n var getOptionsFromListener = React.useCallback(function () {\n for (var _key in optionsGettersFromChildRef.current) {\n if (_key in optionsGettersFromChildRef.current) {\n var _optionsGettersFromCh, _optionsGettersFromCh2;\n var result = (_optionsGettersFromCh = (_optionsGettersFromCh2 = optionsGettersFromChildRef.current)[_key]) == null ? void 0 : _optionsGettersFromCh.call(_optionsGettersFromCh2);\n if (result !== null) {\n return result;\n }\n }\n }\n return null;\n }, []);\n var getCurrentOptions = React.useCallback(function () {\n var _navigation$isFocused2;\n var isFocused = (_navigation$isFocused2 = navigation == null ? void 0 : navigation.isFocused()) != null ? _navigation$isFocused2 : true;\n if (!isFocused) {\n return null;\n }\n var optionsFromListener = getOptionsFromListener();\n if (optionsFromListener !== null) {\n return optionsFromListener;\n }\n return optionsRef.current;\n }, [navigation, getOptionsFromListener]);\n React.useEffect(function () {\n return parentAddOptionsGetter == null ? void 0 : parentAddOptionsGetter(key, getCurrentOptions);\n }, [getCurrentOptions, parentAddOptionsGetter, key]);\n var addOptionsGetter = React.useCallback(function (key, getter) {\n optionsGettersFromChildRef.current[key] = getter;\n optionsChangeListener();\n return function () {\n delete optionsGettersFromChildRef.current[key];\n optionsChangeListener();\n };\n }, [optionsChangeListener]);\n return {\n addOptionsGetter: addOptionsGetter,\n getCurrentOptions: getCurrentOptions\n };\n}","map":{"version":3,"names":["React","NavigationBuilderContext","NavigationStateContext","useOptionsGetters","_ref","key","options","navigation","optionsRef","useRef","optionsGettersFromChildRef","_React$useContext","useContext","onOptionsChange","_React$useContext2","parentAddOptionsGetter","addOptionsGetter","optionsChangeListener","useCallback","_navigation$isFocused","isFocused","hasChildren","Object","keys","current","length","_optionsRef$current","useEffect","addListener","getOptionsFromListener","_optionsGettersFromCh","_optionsGettersFromCh2","result","call","getCurrentOptions","_navigation$isFocused2","optionsFromListener","getter"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/core/src/useOptionsGetters.tsx"],"sourcesContent":["import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport { NavigationBuilderContext } from './NavigationBuilderContext';\nimport { NavigationStateContext } from './NavigationStateContext';\nimport type { NavigationProp } from './types';\n\ntype Options = {\n key?: string;\n navigation?: NavigationProp<ParamListBase>;\n options?: object | undefined;\n};\n\nexport function useOptionsGetters({ key, options, navigation }: Options) {\n const optionsRef = React.useRef<object | undefined>(options);\n const optionsGettersFromChildRef = React.useRef<\n Record<string, () => object | undefined | null>\n >({});\n\n const { onOptionsChange } = React.useContext(NavigationBuilderContext);\n const { addOptionsGetter: parentAddOptionsGetter } = React.useContext(\n NavigationStateContext\n );\n\n const optionsChangeListener = React.useCallback(() => {\n const isFocused = navigation?.isFocused() ?? true;\n const hasChildren = Object.keys(optionsGettersFromChildRef.current).length;\n\n if (isFocused && !hasChildren) {\n onOptionsChange(optionsRef.current ?? {});\n }\n }, [navigation, onOptionsChange]);\n\n React.useEffect(() => {\n optionsRef.current = options;\n optionsChangeListener();\n\n return navigation?.addListener('focus', optionsChangeListener);\n }, [navigation, options, optionsChangeListener]);\n\n const getOptionsFromListener = React.useCallback(() => {\n for (const key in optionsGettersFromChildRef.current) {\n if (key in optionsGettersFromChildRef.current) {\n const result = optionsGettersFromChildRef.current[key]?.();\n\n // null means unfocused route\n if (result !== null) {\n return result;\n }\n }\n }\n\n return null;\n }, []);\n\n const getCurrentOptions = React.useCallback(() => {\n const isFocused = navigation?.isFocused() ?? true;\n\n if (!isFocused) {\n return null;\n }\n\n const optionsFromListener = getOptionsFromListener();\n\n if (optionsFromListener !== null) {\n return optionsFromListener;\n }\n\n return optionsRef.current;\n }, [navigation, getOptionsFromListener]);\n\n React.useEffect(() => {\n return parentAddOptionsGetter?.(key!, getCurrentOptions);\n }, [getCurrentOptions, parentAddOptionsGetter, key]);\n\n const addOptionsGetter = React.useCallback(\n (key: string, getter: () => object | undefined | null) => {\n optionsGettersFromChildRef.current[key] = getter;\n optionsChangeListener();\n\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete optionsGettersFromChildRef.current[key];\n optionsChangeListener();\n };\n },\n [optionsChangeListener]\n );\n\n return {\n addOptionsGetter,\n getCurrentOptions,\n };\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}