Skip to content

Commit

Permalink
fix fromNokeEvent observable
Browse files Browse the repository at this point in the history
  • Loading branch information
dendakhongduong committed Aug 23, 2018
1 parent 4e4f63b commit ea1361b
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 60 deletions.
126 changes: 67 additions & 59 deletions events.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { debounce } from 'lodash'
import {
NativeEventEmitter,
NativeModules
Expand Down Expand Up @@ -53,23 +54,6 @@ export const addNokeDeviceOnce = (data) => {
return addNokeFactory(() => RNNoke.removeAllNokes())(data)
}

export const debounceObserver = (observer) => {
let lastTime = Date.now()

return (eventName, data) => {
const newTime = Date.now()
const timpstamp = (newTime - lastTime)
console.log('%c timpstamp', 'background: red; color: white', timpstamp)
if(timpstamp > 1000) {
observer.next({
name: eventName,
data
})
lastTime = Date.now()
}
}
}

export const fromNokeEvents = () => {
if (!Observable) return {
message: 'Missing rxjs'
Expand All @@ -88,60 +72,84 @@ export const fromNokeEvents = () => {
]

let timer = null
let _debounce = null
let lastEvent = ''

return Observable.create(observer => {
_debounce = debounceObserver(observer)

events.map(eventName => {
//if(eventName === 'onNokeConnected') {
// onEvent(eventName, (data = {}) => {
// _debounce(eventName, data)
// })
// return
//}

if (eventName === 'onNokeSyncing') {
onEvent(eventName, (data = {}) => {
timer = setTimeout(() => {
observer.next({
name: 'onNokeDisconnected',
data
})
}, 1500)
})
return
}
onEvent('onNokeDiscovered', data => {
observer.next({
name: 'onNokeDiscovered',
data
})
lastEvent = 'onNokeDiscovered'
})

onEvent('onNokeConnecting', data => {
observer.next({
name: 'onNokeConnecting',
data
})
lastEvent = 'onNokeConnecting'

if (eventName === 'onNokeConnecting') {
onEvent(eventName, (data = {}) => {
timer = setTimeout(() => {
observer.next({
name: 'onNokeDisconnected',
data
})
}, 3500)
timer = setTimeout(() => {
observer.next({
name: 'onNokeDisconnected',
data
})
return
}
lastEvent = 'onNokeDisconnected'
}, 5000)
})

if (eventName === 'onNokeUnlocked') {
onEvent(eventName, (data = {}) => {
clearTimeout(timer)
observer.next({
name: eventName,
data
})
onEvent('onNokeConnected', data => {
clearTimeout(timer)
if(lastEvent !== 'onNokeUnlocked') {
observer.next({
name: 'onNokeConnected',
data
})
return
lastEvent = 'onNokeConnected'
}
})

onEvent('onNokeSyncing', data => {
observer.next({
name: 'onNokeSyncing',
data
})
lastEvent = 'onNokeSyncing'

onEvent(eventName, (data = {}) => {
timer = setTimeout(() => {
observer.next({
name: eventName,
name: 'onNokeDisconnected',
data
})
lastEvent = 'onNokeDisconnected'
}, 1500)
})

onEvent('onNokeUnlocked', data => {
clearTimeout(timer)
observer.next({
name: 'onNokeUnlocked',
data
})
lastEvent = 'onNokeUnlocked'
})

onEvent('onNokeDisconnected', data => {
observer.next({
name: 'onNokeDisconnected',
data
})
lastEvent = 'onNokeDisconnected'
})

onEvent('onError', data => {
observer.next({
name: 'onError',
data
})
lastEvent = 'onError'
})

})
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-noke",
"version": "1.4.4",
"version": "1.4.5",
"description": "Noke SDK for React-Native",
"main": "index.js",
"scripts": {
Expand Down

0 comments on commit ea1361b

Please sign in to comment.