JSFiddle - React, Tailwind, and code Playground

by jhorvath

JavaScript

var contentManager = {
    activate: function(viewModel, elementSelector) {
        var deferred = $.Deferred();
        var self = this;
        this._loadContent(elementSelector).done(function(element) {
            self._bind(viewModel, element[0]).done(function() {
                self._show(element).done(function(){
                    deferred.resolve();
                });
            });
        });
        return deferred.promise();
    },
    
    _loadContent: function(elementSelector) {
        var deferred = $.Deferred();
        var element = $(elementSelector);
        if(element.data("isLoaded")) {
            deferred.resolve()
        }
        return deferred.promise();
    },
    
    _show: function(element) {
        element.fadeIn();
    },
    
    _hide: function(element) {
        element.fadeOut();
    }
};

var SettingViewModel = (function(){
    function settingViewModel() {
        this.settingsDictionary = [];
    }
    
    settingViewModel.prototype = {
        onNavigated: function() {
            contentManager.activate(this, "#settingContainer");
        }
    };
    
    return settingViewModel;    
}());