amis-rpc-design/node_modules/react-native-screens/lib/module/native-stack/utils/useBackPressSubscription.js.map

1 line
3.6 KiB
Plaintext
Raw Normal View History

2023-10-07 19:42:30 +08:00
{"version":3,"names":["React","BackHandler","useBackPressSubscription","_ref","onBackPress","isDisabled","isActive","setIsActive","useState","subscription","useRef","clearSubscription","useCallback","_subscription$current","shouldSetActive","arguments","length","undefined","current","remove","createSubscription","_subscription$current2","addEventListener","handleAttached","handleDetached","useEffect"],"sources":["useBackPressSubscription.tsx"],"sourcesContent":["import React from 'react';\nimport { BackHandler, NativeEventSubscription } from 'react-native';\n\ninterface Args {\n onBackPress: () => boolean;\n isDisabled: boolean;\n}\n\ninterface UseBackPressSubscription {\n handleAttached: () => void;\n handleDetached: () => void;\n createSubscription: () => void;\n clearSubscription: () => void;\n}\n\n/**\n * This hook is an abstraction for keeping back press subscription\n * logic in one place.\n */\nexport function useBackPressSubscription({\n onBackPress,\n isDisabled,\n}: Args): UseBackPressSubscription {\n const [isActive, setIsActive] = React.useState(false);\n const subscription = React.useRef<NativeEventSubscription | undefined>();\n\n const clearSubscription = React.useCallback((shouldSetActive = true) => {\n subscription.current?.remove();\n subscription.current = undefined;\n if (shouldSetActive) setIsActive(false);\n }, []);\n\n const createSubscription = React.useCallback(() => {\n if (!isDisabled) {\n subscription.current?.remove();\n subscription.current = BackHandler.addEventListener(\n 'hardwareBackPress',\n onBackPress\n );\n setIsActive(true);\n }\n }, [isDisabled, onBackPress]);\n\n const handleAttached = React.useCallback(() => {\n if (isActive) {\n createSubscription();\n }\n }, [createSubscription, isActive]);\n\n const handleDetached = React.useCallback(() => {\n clearSubscription(false);\n }, [clearSubscription]);\n\n React.useEffect(() => {\n if (isDisabled) {\n clearSubscription();\n }\n }, [isDisabled, clearSubscription]);\n\n return {\n handleAttached,\n handleDetached,\n createSubscription,\n clearSubscription,\n };\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAiC,cAAc;AAcnE;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAAAC,IAAA,EAGL;EAAA,IAHM;IACvCC,WAAW;IACXC;EACI,CAAC,GAAAF,IAAA;EACL,MAAM,CAACG,QAAQ,EAAEC,WAAW,CAAC,GAAGP,KAAK,CAACQ,QAAQ,CAAC,KAAK,CAAC;EACrD,MAAMC,YAAY,GAAGT,KAAK,CAACU,MAAM,CAAsC,CAAC;EAExE,MAAMC,iBAAiB,GAAGX,KAAK,CAACY,WAAW,CAAC,YAA4B;IAAA,IAAAC,qBAAA;IAAA,IAA3BC,eAAe,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IACjE,CAAAF,qBAAA,GAAAJ,YAAY,CAACS,OAAO,cAAAL,qBAAA,uBAApBA,qBAAA,CAAsBM,MAAM,CAAC,CAAC;IAC9BV,YAAY,CAACS,OAAO,GAAGD,SAAS;IAChC,IAAIH,eAAe,EAAEP,WAAW,CAAC,KAAK,CAAC;EACzC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMa,kBAAkB,GAAGpB,KAAK,CAACY,WAAW,CAAC,MAAM;IACjD,IAAI,CAACP,UAAU,EAAE;MAAA,IAAAgB,sBAAA;MACf,CAAAA,sBAAA,GAAAZ,YAAY,CAACS,OAAO,cAAAG,sBAAA,uBAApBA,sBAAA,CAAsBF,MAAM,CAAC,CAAC;MAC9BV,YAAY,CAACS,OAAO,GAAGjB,WAAW,CAACqB,gBAAgB,CACjD,mBAAmB,EACnBlB,WACF,CAAC;MACDG,WAAW,CAAC,IAAI,CAAC;IACnB;EACF,CAAC,EAAE,CAACF,UAAU,EAAED,WAAW,CAAC,CAAC;EAE7B,MAAMmB,cAAc,GAAGvB,KAAK,CAACY,WAAW,CAAC,MAAM;IAC7C,IAAIN,QAAQ,EAAE;MACZc,kBAAkB,CAAC,CAAC;IACtB;EACF,CAAC,EAAE,CAACA,kBAAkB,EAAEd,QAAQ,CAAC,CAAC;EAElC,MAAMkB,cAAc,GAAGxB,KAAK,CAACY,WAAW,CAAC,MAAM;IAC7CD,iBAAiB,CAAC,KAAK,CAAC;EAC1B,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvBX,KAAK,CAACyB,SAAS,CAAC,MAAM;IACpB,IAAIpB,UAAU,EAAE;MACdM,iBAAiB,CAAC,CAAC;IACrB;EACF,CAAC,EAAE,CAACN,UAAU,EAAEM,iBAAiB,CAAC,CAAC;EAEnC,OAAO;IACLY,cAAc;IACdC,cAAc;IACdJ,kBAAkB;IAClBT;EACF,CAAC;AACH"}