fix sometimes add contact screen is closed by itself after scanning QR code (#18101)

This commit is contained in:
Parvesh Monu 2023-12-08 18:53:56 +05:30 committed by GitHub
parent de4e233884
commit 7a6f05a440
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 3 deletions

View File

@ -129,9 +129,12 @@
[camera-permission-view]))
(defn- check-qr-code-and-navigate
[{:keys [event error-message validate-fn on-success-scan on-failed-scan]}]
[{:keys [event error-message validate-fn on-success-scan on-failed-scan scan-code?]}]
(let [scanned-value (string/trim (oops/oget event "nativeEvent.codeStringValue"))
validated? (if validate-fn (validate-fn scanned-value) true)]
;; Note - camera-kit keeps scanning until the screen is dismissed,
;; so disable scanning to make sure the on-read-code doesn't get executed multiple times
(reset! scan-code? false)
(if validated?
(on-success-scan scanned-value)
(do
@ -155,8 +158,9 @@
:zoom-mode :off
:torch-mode torch-mode
:scan-barcode true
:on-read-code #(when scan-code?
:on-read-code #(when @scan-code?
(check-qr-code-and-navigate {:event %
:scan-code? scan-code?
:validate-fn validate-fn
:error-message error-message
:on-success-scan set-qr-code-succeeded
@ -209,7 +213,7 @@
[render-camera
{:torch-mode torch-mode
:qr-view-finder @qr-view-finder
:scan-code? @scan-code?
:scan-code? scan-code?
:error-message error-message
:validate-fn validate-fn
:set-qr-code-succeeded (fn [value]