{"ast":null,"code":"\"use strict\";\n\nimport * as React from 'react';\nexport function useKeyedChildListeners() {\n  const {\n    current: keyedListeners\n  } = React.useRef(Object.assign(Object.create(null), {\n    getState: {},\n    beforeRemove: {}\n  }));\n  const addKeyedListener = React.useCallback((type, key, listener) => {\n    keyedListeners[type][key] = listener;\n    return () => {\n      keyedListeners[type][key] = undefined;\n    };\n  }, [keyedListeners]);\n  return {\n    keyedListeners,\n    addKeyedListener\n  };\n}","map":{"version":3,"names":["React","useKeyedChildListeners","current","keyedListeners","useRef","Object","assign","create","getState","beforeRemove","addKeyedListener","useCallback","type","key","listener","undefined"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/core/src/useKeyedChildListeners.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport type { KeyedListenerMap } from './NavigationBuilderContext';\n\n/**\n * Hook which lets child navigators add getters to be called for obtaining rehydrated state.\n */\nexport function useKeyedChildListeners() {\n  const { current: keyedListeners } = React.useRef<{\n    [K in keyof KeyedListenerMap]: Record<\n      string,\n      KeyedListenerMap[K] | undefined\n    >;\n  }>(\n    Object.assign(Object.create(null), {\n      getState: {},\n      beforeRemove: {},\n    })\n  );\n\n  const addKeyedListener = React.useCallback(\n    <T extends keyof KeyedListenerMap>(\n      type: T,\n      key: string,\n      listener: KeyedListenerMap[T]\n    ) => {\n      // @ts-expect-error: according to ref stated above you can use `key` to index type\n      keyedListeners[type][key] = listener;\n\n      return () => {\n        // @ts-expect-error: according to ref stated above you can use `key` to index type\n        keyedListeners[type][key] = undefined;\n      };\n    },\n    [keyedListeners]\n  );\n\n  return {\n    keyedListeners,\n    addKeyedListener,\n  };\n}\n"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAO9B,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,MAAM;IAAEC,OAAO,EAAEC;EAAe,CAAC,GAAGH,KAAK,CAACI,MAAM,CAM9CC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAAC,IAAI,CAAC,EAAE;IACjCC,QAAQ,EAAE,CAAC,CAAC;IACZC,YAAY,EAAE,CAAC;EACjB,CAAC,CACH,CAAC;EAED,MAAMC,gBAAgB,GAAGV,KAAK,CAACW,WAAW,CACxC,CACEC,IAAO,EACPC,GAAW,EACXC,QAA6B,KAC1B;IAEHX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGC,QAAQ;IAEpC,OAAO,MAAM;MAEXX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGE,SAAS;IACvC,CAAC;EACH,CAAC,EACD,CAACZ,cAAc,CACjB,CAAC;EAED,OAAO;IACLA,cAAc;IACdO;EACF,CAAC;AACH","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}