orb-ui-firebase
Version:
Firebase with redux
31 lines (27 loc) • 890 B
JavaScript
import * as types from './types';
import { logError } from '../errors/actions';
export function onConnectionStateChange(isConnected) {
return {
type: types.ON_CONNECTION_STATE_CHANGED,
payload: { isConnected: isConnected }
};
}
export function initConnection(firebaseApp, onChange) {
return function (dispatch) {
firebaseApp.database().ref('.info/connected').on('value', function (snapshot) {
dispatch(onConnectionStateChange(snapshot.val()));
if (onChange !== undefined && onChange instanceof Function) {
onChange(snapshot.val());
}
}, function (err) {
console.error(err);
dispatch(logError('.info/connected', err));
});
};
}
export function unsubscribeConnection(firebaseApp) {
return function (dispatch) {
firebaseApp.database().ref('.info/connected').off();
dispatch(onConnectionStateChange(false));
};
}