{"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; }\nimport { getPathFromState, NavigationHelpersContext } from '@react-navigation/core';\nimport * as React from 'react';\nimport LinkingContext from \"./LinkingContext\";\nvar getRootStateForNavigate = function getRootStateForNavigate(navigation, state) {\n var parent = navigation.getParent();\n if (parent) {\n var parentState = parent.getState();\n return getRootStateForNavigate(parent, {\n index: 0,\n routes: [_objectSpread(_objectSpread({}, parentState.routes[parentState.index]), {}, {\n state: state\n })]\n });\n }\n return state;\n};\nexport default function useLinkBuilder() {\n var navigation = React.useContext(NavigationHelpersContext);\n var linking = React.useContext(LinkingContext);\n var buildLink = React.useCallback(function (name, params) {\n var options = linking.options;\n if ((options === null || options === void 0 ? void 0 : options.enabled) === false) {\n return undefined;\n }\n var state = navigation ? getRootStateForNavigate(navigation, {\n index: 0,\n routes: [{\n name: name,\n params: params\n }]\n }) : {\n index: 0,\n routes: [{\n name: name,\n params: params\n }]\n };\n var path = options !== null && options !== void 0 && options.getPathFromState ? options.getPathFromState(state, options === null || options === void 0 ? void 0 : options.config) : getPathFromState(state, options === null || options === void 0 ? void 0 : options.config);\n return path;\n }, [linking, navigation]);\n return buildLink;\n}","map":{"version":3,"sources":["useLinkBuilder.tsx"],"names":["getPathFromState","NavigationHelpersContext","React","LinkingContext","getRootStateForNavigate","navigation","state","parent","getParent","parentState","getState","index","routes","useLinkBuilder","useContext","linking","buildLink","useCallback","name","params","options","enabled","undefined","path","config"],"mappings":";;;AAAA,SACEA,gBAAgB,EAEhBC,wBAAwB,QAGnB,wBAAwB;AAC/B,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,OAAOC,cAAc;AAWrB,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuB,CAC3BC,UAA4B,EAC5BC,KAAmB,EACF;EACjB,IAAMC,MAAM,GAAGF,UAAU,CAACG,SAAS,EAAE;EAErC,IAAID,MAAM,EAAE;IACV,IAAME,WAAW,GAAGF,MAAM,CAACG,QAAQ,EAAE;IAErC,OAAON,uBAAuB,CAACG,MAAM,EAAE;MACrCI,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,iCAEDH,WAAW,CAACG,MAAM,CAACH,WAAW,CAACE,KAAK,CAAC;QACxCL,KAAK,EAAEA;MAAAA;IAGb,CAAC,CAAC;EACJ;EAEA,OAAOA,KAAK;AACd,CAAC;AAMD,eAAe,SAASO,cAAc,GAAG;EACvC,IAAMR,UAAU,GAAGH,KAAK,CAACY,UAAU,CAACb,wBAAwB,CAAC;EAC7D,IAAMc,OAAO,GAAGb,KAAK,CAACY,UAAU,CAACX,cAAc,CAAC;EAEhD,IAAMa,SAAS,GAAGd,KAAK,CAACe,WAAW,CACjC,UAACC,IAAY,EAAEC,MAAe,EAAK;IACjC,IAAQC,OAAAA,GAAYL,OAAO,CAAnBK,OAAAA;IAER,IAAI,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAEC,OAAO,MAAK,KAAK,EAAE;MAC9B,OAAOC,SAAS;IAClB;IAEA,IAAMhB,KAAK,GAAGD,UAAU,GACpBD,uBAAuB,CAACC,UAAU,EAAE;MAClCM,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,CAAC;QAAEM,IAAI,EAAJA,IAAI;QAAEC,MAAAA,EAAAA;MAAO,CAAC;IAC3B,CAAC,CAAC,GAGF;MACER,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,CAAC;QAAEM,IAAI,EAAJA,IAAI;QAAEC,MAAAA,EAAAA;MAAO,CAAC;IAC3B,CAAC;IAEL,IAAMI,IAAI,GAAGH,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,IAAPA,OAAO,CAAEpB,gBAAgB,GAClCoB,OAAO,CAACpB,gBAAgB,CAACM,KAAK,EAAEc,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEI,MAAM,CAAC,GAChDxB,gBAAgB,CAACM,KAAK,EAAEc,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEI,MAAM,CAAC;IAE5C,OAAOD,IAAI;EACb,CAAC,EACD,CAACR,OAAO,EAAEV,UAAU,CAAC,CACtB;EAED,OAAOW,SAAS;AAClB","sourceRoot":"../../src","sourcesContent":["import { getPathFromState, NavigationHelpersContext } from '@react-navigation/core';\nimport * as React from 'react';\nimport LinkingContext from './LinkingContext';\nconst getRootStateForNavigate = (navigation, state) => {\n const parent = navigation.getParent();\n if (parent) {\n const parentState = parent.getState();\n return getRootStateForNavigate(parent, {\n index: 0,\n routes: [{\n ...parentState.routes[parentState.index],\n state: state\n }]\n });\n }\n return state;\n};\n\n/**\n * Build destination link for a navigate action.\n * Useful for showing anchor tags on the web for buttons that perform navigation.\n */\nexport default function useLinkBuilder() {\n const navigation = React.useContext(NavigationHelpersContext);\n const linking = React.useContext(LinkingContext);\n const buildLink = React.useCallback((name, params) => {\n const {\n options\n } = linking;\n if ((options === null || options === void 0 ? void 0 : options.enabled) === false) {\n return undefined;\n }\n const state = navigation ? getRootStateForNavigate(navigation, {\n index: 0,\n routes: [{\n name,\n params\n }]\n }) :\n // If we couldn't find a navigation object in context, we're at root\n // So we'll construct a basic state object to use\n {\n index: 0,\n routes: [{\n name,\n params\n }]\n };\n const path = options !== null && options !== void 0 && options.getPathFromState ? options.getPathFromState(state, options === null || options === void 0 ? void 0 : options.config) : getPathFromState(state, options === null || options === void 0 ? void 0 : options.config);\n return path;\n }, [linking, navigation]);\n return buildLink;\n}\n//# sourceMappingURL=useLinkBuilder.js.map"]},"metadata":{},"sourceType":"module"}