You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
7.8 KiB
1 line
7.8 KiB
{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport { getHeaderTitle, HeaderShownContext } from '@react-navigation/elements';\nimport { StackActions } from '@react-navigation/native';\nimport * as React from 'react';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport debounce from \"../../utils/debounce\";\nimport ModalPresentationContext from \"../../utils/ModalPresentationContext\";\nimport HeaderSegment from \"./HeaderSegment\";\nexport default React.memo(function Header(_ref) {\n var back = _ref.back,\n layout = _ref.layout,\n progress = _ref.progress,\n options = _ref.options,\n route = _ref.route,\n navigation = _ref.navigation,\n styleInterpolator = _ref.styleInterpolator;\n var insets = useSafeAreaInsets();\n var previousTitle;\n if (options.headerBackTitle !== undefined) {\n previousTitle = options.headerBackTitle;\n } else if (back) {\n previousTitle = back.title;\n }\n var goBack = React.useCallback(debounce(function () {\n if (navigation.isFocused() && navigation.canGoBack()) {\n navigation.dispatch(_objectSpread(_objectSpread({}, StackActions.pop()), {}, {\n source: route.key\n }));\n }\n }, 50), [navigation, route.key]);\n var isModal = React.useContext(ModalPresentationContext);\n var isParentHeaderShown = React.useContext(HeaderShownContext);\n var statusBarHeight = options.headerStatusBarHeight !== undefined ? options.headerStatusBarHeight : isModal || isParentHeaderShown ? 0 : insets.top;\n return React.createElement(HeaderSegment, _extends({}, options, {\n title: getHeaderTitle(options, route.name),\n progress: progress,\n layout: layout,\n modal: isModal,\n headerBackTitle: options.headerBackTitle !== undefined ? options.headerBackTitle : previousTitle,\n headerStatusBarHeight: statusBarHeight,\n onGoBack: back ? goBack : undefined,\n styleInterpolator: styleInterpolator\n }));\n});","map":{"version":3,"sources":["Header.tsx"],"names":["getHeaderTitle","HeaderShownContext","StackActions","React","useSafeAreaInsets","debounce","ModalPresentationContext","HeaderSegment","memo","Header","back","layout","progress","options","route","navigation","styleInterpolator","insets","previousTitle","headerBackTitle","undefined","title","goBack","useCallback","isFocused","canGoBack","dispatch","pop","source","key","isModal","useContext","isParentHeaderShown","statusBarHeight","headerStatusBarHeight","top","name"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAASA,cAAc,EAAEC,kBAAkB,QAAQ,4BAA4B;AAC/E,SAASC,YAAY,QAAQ,0BAA0B;AACvD,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,gCAAgC;AAGlE,OAAOC,QAAQ;AACf,OAAOC,wBAAwB;AAC/B,OAAOC,aAAa;AAEpB,eAAeJ,KAAK,CAACK,IAAI,CAAC,SAASC,MAAM,CAAA,IAAA,EAQpB;EARqB,IACxCC,IAAI,GAOa,IAAA,CAPjBA,IAAI;IACJC,MAAM,GAMW,IAAA,CANjBA,MAAM;IACNC,QAAQ,GAKS,IAAA,CALjBA,QAAQ;IACRC,OAAO,GAIU,IAAA,CAJjBA,OAAO;IACPC,KAAK,GAGY,IAAA,CAHjBA,KAAK;IACLC,UAAU,GAEO,IAAA,CAFjBA,UAAU;IACVC,iBAAAA,GACiB,IAAA,CADjBA,iBAAAA;EAEA,IAAMC,MAAM,GAAGb,iBAAiB,EAAE;EAElC,IAAIc,aAAa;EAIjB,IAAIL,OAAO,CAACM,eAAe,KAAKC,SAAS,EAAE;IACzCF,aAAa,GAAGL,OAAO,CAACM,eAAe;EACzC,CAAC,MAAM,IAAIT,IAAI,EAAE;IACfQ,aAAa,GAAGR,IAAI,CAACW,KAAK;EAC5B;EAGA,IAAMC,MAAM,GAAGnB,KAAK,CAACoB,WAAW,CAC9BlB,QAAQ,CAAC,YAAM;IACb,IAAIU,UAAU,CAACS,SAAS,EAAE,IAAIT,UAAU,CAACU,SAAS,EAAE,EAAE;MACpDV,UAAU,CAACW,QAAQ,iCACdxB,YAAY,CAACyB,GAAG,EAAE;QACrBC,MAAM,EAAEd,KAAK,CAACe;MAAAA,GACd;IACJ;EACF,CAAC,EAAE,EAAE,CAAC,EACN,CAACd,UAAU,EAAED,KAAK,CAACe,GAAG,CAAC,CACxB;EAED,IAAMC,OAAO,GAAG3B,KAAK,CAAC4B,UAAU,CAACzB,wBAAwB,CAAC;EAC1D,IAAM0B,mBAAmB,GAAG7B,KAAK,CAAC4B,UAAU,CAAC9B,kBAAkB,CAAC;EAEhE,IAAMgC,eAAe,GACnBpB,OAAO,CAACqB,qBAAqB,KAAKd,SAAS,GACvCP,OAAO,CAACqB,qBAAqB,GAC7BJ,OAAO,IAAIE,mBAAmB,GAC9B,CAAC,GACDf,MAAM,CAACkB,GAAG;EAEhB,OACE,KAAA,CAAA,aAAA,CAAC,aAAa,EAAA,QAAA,CAAA,CAAA,CAAA,EACRtB,OAAO,EAAA;IACX,KAAK,EAAEb,cAAc,CAACa,OAAO,EAAEC,KAAK,CAACsB,IAAI,CAAE;IAC3C,QAAQ,EAAExB,QAAS;IACnB,MAAM,EAAED,MAAO;IACf,KAAK,EAAEmB,OAAQ;IACf,eAAe,EACbjB,OAAO,CAACM,eAAe,KAAKC,SAAS,GACjCP,OAAO,CAACM,eAAe,GACvBD,aACL;IACD,qBAAqB,EAAEe,eAAgB;IACvC,QAAQ,EAAEvB,IAAI,GAAGY,MAAM,GAAGF,SAAU;IACpC,iBAAiB,EAAEJ;EAAkB,CAAA,CAAA,CACrC;AAEN,CAAC,CAAC","sourceRoot":"../../src","sourcesContent":["function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport { getHeaderTitle, HeaderShownContext } from '@react-navigation/elements';\nimport { StackActions } from '@react-navigation/native';\nimport * as React from 'react';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport debounce from '../../utils/debounce';\nimport ModalPresentationContext from '../../utils/ModalPresentationContext';\nimport HeaderSegment from './HeaderSegment';\nexport default /*#__PURE__*/React.memo(function Header(_ref) {\n let {\n back,\n layout,\n progress,\n options,\n route,\n navigation,\n styleInterpolator\n } = _ref;\n const insets = useSafeAreaInsets();\n let previousTitle;\n\n // The label for the left back button shows the title of the previous screen\n // If a custom label is specified, we use it, otherwise use previous screen's title\n if (options.headerBackTitle !== undefined) {\n previousTitle = options.headerBackTitle;\n } else if (back) {\n previousTitle = back.title;\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const goBack = React.useCallback(debounce(() => {\n if (navigation.isFocused() && navigation.canGoBack()) {\n navigation.dispatch({\n ...StackActions.pop(),\n source: route.key\n });\n }\n }, 50), [navigation, route.key]);\n const isModal = React.useContext(ModalPresentationContext);\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n const statusBarHeight = options.headerStatusBarHeight !== undefined ? options.headerStatusBarHeight : isModal || isParentHeaderShown ? 0 : insets.top;\n return /*#__PURE__*/React.createElement(HeaderSegment, _extends({}, options, {\n title: getHeaderTitle(options, route.name),\n progress: progress,\n layout: layout,\n modal: isModal,\n headerBackTitle: options.headerBackTitle !== undefined ? options.headerBackTitle : previousTitle,\n headerStatusBarHeight: statusBarHeight,\n onGoBack: back ? goBack : undefined,\n styleInterpolator: styleInterpolator\n }));\n});\n//# sourceMappingURL=Header.js.map"]},"metadata":{},"sourceType":"module"} |