about summary refs log tree commit diff
path: root/src/lib/routes/back-handler.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/routes/back-handler.ts')
-rw-r--r--src/lib/routes/back-handler.ts11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/lib/routes/back-handler.ts b/src/lib/routes/back-handler.ts
new file mode 100644
index 000000000..feb928458
--- /dev/null
+++ b/src/lib/routes/back-handler.ts
@@ -0,0 +1,11 @@
+import {BackHandler} from 'react-native'
+import {RootStoreModel} from 'state/index'
+
+export function onBack(cb: () => boolean): () => void {
+  const subscription = BackHandler.addEventListener('hardwareBackPress', cb)
+  return () => subscription.remove()
+}
+
+export function init(store: RootStoreModel) {
+  onBack(() => store.shell.closeAnyActiveElement())
+}