{"ast":null,"code":"\"use strict\";\n\nimport * as React from 'react';\nimport { isArrayEqual } from \"./isArrayEqual.js\";\nimport { NavigationBuilderContext } from \"./NavigationBuilderContext.js\";\nimport { NavigationRouteContext } from \"./NavigationRouteContext.js\";\nexport function useOnGetState({\n  getState,\n  getStateListeners\n}) {\n  const {\n    addKeyedListener\n  } = React.useContext(NavigationBuilderContext);\n  const route = React.useContext(NavigationRouteContext);\n  const key = route ? route.key : 'root';\n  const getRehydratedState = React.useCallback(() => {\n    const state = getState();\n    const routes = state.routes.map(route => {\n      const childState = getStateListeners[route.key]?.();\n      if (route.state === childState) {\n        return route;\n      }\n      return Object.assign({}, route, {\n        state: childState\n      });\n    });\n    if (isArrayEqual(state.routes, routes)) {\n      return state;\n    }\n    return Object.assign({}, state, {\n      routes\n    });\n  }, [getState, getStateListeners]);\n  React.useEffect(() => {\n    return addKeyedListener?.('getState', key, getRehydratedState);\n  }, [addKeyedListener, getRehydratedState, key]);\n}","map":{"version":3,"names":["React","isArrayEqual","NavigationBuilderContext","NavigationRouteContext","useOnGetState","getState","getStateListeners","addKeyedListener","useContext","route","key","getRehydratedState","useCallback","state","routes","map","childState","Object","assign","useEffect"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/core/src/useOnGetState.tsx"],"sourcesContent":["import type { NavigationState } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport { isArrayEqual } from './isArrayEqual';\nimport {\n  type GetStateListener,\n  NavigationBuilderContext,\n} from './NavigationBuilderContext';\nimport { NavigationRouteContext } from './NavigationRouteContext';\n\ntype Options = {\n  getState: () => NavigationState;\n  getStateListeners: Record<string, GetStateListener | undefined>;\n};\n\nexport function useOnGetState({ getState, getStateListeners }: Options) {\n  const { addKeyedListener } = React.useContext(NavigationBuilderContext);\n  const route = React.useContext(NavigationRouteContext);\n  const key = route ? route.key : 'root';\n\n  const getRehydratedState = React.useCallback(() => {\n    const state = getState();\n\n    // Avoid returning new route objects if we don't need to\n    const routes = state.routes.map((route) => {\n      const childState = getStateListeners[route.key]?.();\n\n      if (route.state === childState) {\n        return route;\n      }\n\n      return { ...route, state: childState };\n    });\n\n    if (isArrayEqual(state.routes, routes)) {\n      return state;\n    }\n\n    return { ...state, routes };\n  }, [getState, getStateListeners]);\n\n  React.useEffect(() => {\n    return addKeyedListener?.('getState', key, getRehydratedState);\n  }, [addKeyedListener, getRehydratedState, key]);\n}\n"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,YAAY;AACrB,SAEEC,wBAAwB;AAE1B,SAASC,sBAAsB;AAO/B,OAAO,SAASC,aAAaA,CAAC;EAAEC,QAAQ;EAAEC;AAA2B,CAAC,EAAE;EACtE,MAAM;IAAEC;EAAiB,CAAC,GAAGP,KAAK,CAACQ,UAAU,CAACN,wBAAwB,CAAC;EACvE,MAAMO,KAAK,GAAGT,KAAK,CAACQ,UAAU,CAACL,sBAAsB,CAAC;EACtD,MAAMO,GAAG,GAAGD,KAAK,GAAGA,KAAK,CAACC,GAAG,GAAG,MAAM;EAEtC,MAAMC,kBAAkB,GAAGX,KAAK,CAACY,WAAW,CAAC,MAAM;IACjD,MAAMC,KAAK,GAAGR,QAAQ,CAAC,CAAC;IAGxB,MAAMS,MAAM,GAAGD,KAAK,CAACC,MAAM,CAACC,GAAG,CAAEN,KAAK,IAAK;MACzC,MAAMO,UAAU,GAAGV,iBAAiB,CAACG,KAAK,CAACC,GAAG,CAAC,GAAG,CAAC;MAEnD,IAAID,KAAK,CAACI,KAAK,KAAKG,UAAU,EAAE;QAC9B,OAAOP,KAAK;MACd;MAEA,OAAAQ,MAAA,CAAAC,MAAA,KAAYT,KAAK;QAAEI,KAAK,EAAEG;MAAA;IAC5B,CAAC,CAAC;IAEF,IAAIf,YAAY,CAACY,KAAK,CAACC,MAAM,EAAEA,MAAM,CAAC,EAAE;MACtC,OAAOD,KAAK;IACd;IAEA,OAAAI,MAAA,CAAAC,MAAA,KAAYL,KAAK;MAAEC;IAAA;EACrB,CAAC,EAAE,CAACT,QAAQ,EAAEC,iBAAiB,CAAC,CAAC;EAEjCN,KAAK,CAACmB,SAAS,CAAC,MAAM;IACpB,OAAOZ,gBAAgB,GAAG,UAAU,EAAEG,GAAG,EAAEC,kBAAkB,CAAC;EAChE,CAAC,EAAE,CAACJ,gBAAgB,EAAEI,kBAAkB,EAAED,GAAG,CAAC,CAAC;AACjD","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}