JSFiddle - React, Tailwind, and code Playground

JavaScript

function networkListener(a, b){
    var offlineF, onlineF;
    if(a instanceof Function && b instanceof Function){
        onlineF = a;
        offlineF = b;
    } else if(a instanceof Function){
        if(typeof b === "string"){
            if(b === "online"){
                onlineF = a;
            }else if(b === "offline"){
                offlineF = a;
            }
        }else{
            onlineF = a;
            offlineF = a;
        }
    }
    if(typeof onlineF !== "undefined"){
        window.addEventListener('online', onlineF, false);
    }
    if(typeof offlineF !== "undefined"){
        window.addEventListener('offline', offlineF, false);
    }
}    
var offline = function(){console.log('offline')};
var online = function(){console.log('online')};
var both = function(){console.log('both')};

networkListener(both);
networkListener(online, 'online');
networkListener(offline, 'offline');