UNPKG

2.42 kBSource Map (JSON)View Raw
1{"version":3,"names":["React","NavigationBuilderContext","useFocusedListenersChildrenAdapter","navigation","focusedListeners","addListener","useContext","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,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,OAAOC,wBAAP,MAGO,4BAHP;;AAWA;AACA;AACA;AACA,eAAe,SAASC,kCAAT,OAGH;EAAA,IAH+C;IACzDC,UADyD;IAEzDC;EAFyD,CAG/C;EACV,MAAM;IAAEC;EAAF,IAAkBL,KAAK,CAACM,UAAN,CAAiBL,wBAAjB,CAAxB;EAEA,MAAMM,QAAQ,GAAGP,KAAK,CAACQ,WAAN,CACdC,QAAD,IAA8C;IAC5C,IAAIN,UAAU,CAACO,SAAX,EAAJ,EAA4B;MAC1B,KAAK,MAAMH,QAAX,IAAuBH,gBAAvB,EAAyC;QACvC,MAAM;UAAEO,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,CAACN,UAAD;MAAjC,CAAP;IACD,CAVD,MAUO;MACL,OAAO;QAAEQ,OAAO,EAAE,KAAX;QAAkBC,MAAM,EAAE;MAA1B,CAAP;IACD;EACF,CAfc,EAgBf,CAACR,gBAAD,EAAmBD,UAAnB,CAhBe,CAAjB;EAmBAH,KAAK,CAACa,SAAN,CACE,MAAMR,WAAN,aAAMA,WAAN,uBAAMA,WAAW,CAAG,OAAH,EAAYE,QAAZ,CADnB,EAEE,CAACF,WAAD,EAAcE,QAAd,CAFF;AAID"}
\No newline at end of file