UNPKG

2.38 kBSource Map (JSON)View Raw
1{"version":3,"names":["useFocusedListenersChildrenAdapter","navigation","focusedListeners","addListener","React","useContext","NavigationBuilderContext","listener","useCallback","callback","isFocused","handled","result","useEffect"],"sources":["useFocusedListenersChildrenAdapter.tsx"],"sourcesContent":["import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n FocusedNavigationCallback,\n FocusedNavigationListener,\n} from './NavigationBuilderContext';\nimport type { NavigationHelpers } from './types';\n\ntype Options = {\n navigation: NavigationHelpers<ParamListBase>;\n focusedListeners: FocusedNavigationListener[];\n};\n\n/**\n * Hook for passing focus callback to children\n */\nexport default function useFocusedListenersChildrenAdapter({\n navigation,\n focusedListeners,\n}: Options) {\n const { addListener } = React.useContext(NavigationBuilderContext);\n\n const listener = React.useCallback(\n (callback: FocusedNavigationCallback<any>) => {\n if (navigation.isFocused()) {\n for (const listener of focusedListeners) {\n const { handled, result } = listener(callback);\n\n if (handled) {\n return { handled, result };\n }\n }\n\n return { handled: true, result: callback(navigation) };\n } else {\n return { handled: false, result: null };\n }\n },\n [focusedListeners, navigation]\n );\n\n React.useEffect(\n () => addListener?.('focus', listener),\n [addListener, listener]\n );\n}\n"],"mappings":";;;;;;;AACA;;AAEA;;;;;;;;AAWA;AACA;AACA;AACe,SAASA,kCAAT,OAGH;EAAA,IAH+C;IACzDC,UADyD;IAEzDC;EAFyD,CAG/C;EACV,MAAM;IAAEC;EAAF,IAAkBC,KAAK,CAACC,UAAN,CAAiBC,iCAAjB,CAAxB;EAEA,MAAMC,QAAQ,GAAGH,KAAK,CAACI,WAAN,CACdC,QAAD,IAA8C;IAC5C,IAAIR,UAAU,CAACS,SAAX,EAAJ,EAA4B;MAC1B,KAAK,MAAMH,QAAX,IAAuBL,gBAAvB,EAAyC;QACvC,MAAM;UAAES,OAAF;UAAWC;QAAX,IAAsBL,QAAQ,CAACE,QAAD,CAApC;;QAEA,IAAIE,OAAJ,EAAa;UACX,OAAO;YAAEA,OAAF;YAAWC;UAAX,CAAP;QACD;MACF;;MAED,OAAO;QAAED,OAAO,EAAE,IAAX;QAAiBC,MAAM,EAAEH,QAAQ,CAACR,UAAD;MAAjC,CAAP;IACD,CAVD,MAUO;MACL,OAAO;QAAEU,OAAO,EAAE,KAAX;QAAkBC,MAAM,EAAE;MAA1B,CAAP;IACD;EACF,CAfc,EAgBf,CAACV,gBAAD,EAAmBD,UAAnB,CAhBe,CAAjB;EAmBAG,KAAK,CAACS,SAAN,CACE,MAAMV,WAAN,aAAMA,WAAN,uBAAMA,WAAW,CAAG,OAAH,EAAYI,QAAZ,CADnB,EAEE,CAACJ,WAAD,EAAcI,QAAd,CAFF;AAID"}
\No newline at end of file