UNPKG

1.79 kBSource Map (JSON)View Raw
1{"version":3,"names":["React","useChildListeners","current","listeners","useRef","action","focus","addListener","useCallback","type","listener","push","removed","index","indexOf","splice"],"sources":["useChildListeners.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport type { ListenerMap } from './NavigationBuilderContext';\n\n/**\n * Hook which lets child navigators add action listeners.\n */\nexport default function useChildListeners() {\n const { current: listeners } = React.useRef<{\n [K in keyof ListenerMap]: ListenerMap[K][];\n }>({\n action: [],\n focus: [],\n });\n\n const addListener = React.useCallback(\n <T extends keyof ListenerMap>(type: T, listener: ListenerMap[T]) => {\n listeners[type].push(listener);\n\n let removed = false;\n return () => {\n const index = listeners[type].indexOf(listener);\n\n if (!removed && index > -1) {\n removed = true;\n listeners[type].splice(index, 1);\n }\n };\n },\n [listeners]\n );\n\n return {\n listeners,\n addListener,\n };\n}\n"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;;AAIA;AACA;AACA;AACA,eAAe,SAASC,iBAAT,GAA6B;EAC1C,MAAM;IAAEC,OAAO,EAAEC;EAAX,IAAyBH,KAAK,CAACI,MAAN,CAE5B;IACDC,MAAM,EAAE,EADP;IAEDC,KAAK,EAAE;EAFN,CAF4B,CAA/B;EAOA,MAAMC,WAAW,GAAGP,KAAK,CAACQ,WAAN,CAClB,CAA8BC,IAA9B,EAAuCC,QAAvC,KAAoE;IAClEP,SAAS,CAACM,IAAD,CAAT,CAAgBE,IAAhB,CAAqBD,QAArB;IAEA,IAAIE,OAAO,GAAG,KAAd;IACA,OAAO,MAAM;MACX,MAAMC,KAAK,GAAGV,SAAS,CAACM,IAAD,CAAT,CAAgBK,OAAhB,CAAwBJ,QAAxB,CAAd;;MAEA,IAAI,CAACE,OAAD,IAAYC,KAAK,GAAG,CAAC,CAAzB,EAA4B;QAC1BD,OAAO,GAAG,IAAV;QACAT,SAAS,CAACM,IAAD,CAAT,CAAgBM,MAAhB,CAAuBF,KAAvB,EAA8B,CAA9B;MACD;IACF,CAPD;EAQD,CAbiB,EAclB,CAACV,SAAD,CAdkB,CAApB;EAiBA,OAAO;IACLA,SADK;IAELI;EAFK,CAAP;AAID"}
\No newline at end of file