Exemple #1
0
 renderIntoDocument: function(instance) {
   var div = document.createElement('div');
   // None of our tests actually require attaching the container to the
   // DOM, and doing so creates a mess that we rely on test isolation to
   // clean up, so we're going to stop honoring the name of this method
   // (and probably rename it eventually) if no problems arise.
   // document.documentElement.appendChild(div);
   return React.renderComponent(instance, div);
 },
 it('should set style attribute when styles exist', function() {
   var styles = {
     backgroundColor: '#000',
     display: 'none'
   };
   var div = <div style={styles} />;
   var root = document.createElement('div');
   div = React.renderComponent(div, root);
   expect(/style=".*"/.test(root.innerHTML)).toBe(true);
 });
    it("should validate against invalid styles", function() {
      React.renderComponent(<div></div>, container);

      expect(function() {
        React.renderComponent(<div style={1}></div>, container);
      }).toThrow(
        'Invariant Violation: The `style` prop expects a mapping from style ' +
        'properties to values, not a string.'
      );
    });
 it('should not set style attribute when no styles exist', function() {
   var styles = {
     backgroundColor: null,
     display: null
   };
   var div = <div style={styles} />;
   var root = document.createElement('div');
   React.renderComponent(div, root);
   expect(/style=".*"/.test(root.innerHTML)).toBe(false);
 });
    it("should validate against multiple children props", function() {
      React.renderComponent(<div></div>, container);

      expect(function() {
        React.renderComponent(
          <div children="" dangerouslySetInnerHTML={{__html: ''}}></div>,
          container
        );
      }).toThrow(
        'Invariant Violation: Can only set one of `children` or ' +
        '`props.dangerouslySetInnerHTML`.'
      );
    });
Exemple #6
0
window.onload = function () {
	React.renderComponent(GameSetup({ onSubmit: initGame }), document.querySelector('#playerSetup'));

	function initGame (players) {
		document.querySelector('#setup').classList.add('hidden');
		document.querySelector('#game').classList.remove('hidden');

		if (players.length === 0) {
			players = [];
			players.push(new Player('First', 37, 39, '#f00'));
			players.push(new Player('Second', 65, 68, '#00f'));
		}

		var game = new Game(players);
		game.setup('.canvasContainer');
	}
};
        var rendered = new Promise( function( resolve, reject ){

            var onRender = function(result) {
                
                console.log('react result of rendering:', result);
                if (false) {
                    return reject();
                }
                return resolve();
            }

            try{
                var instance = React.renderComponent( viewProvider(scope), element, onRender );
            } catch(e) {
                console.error( 'Atlantjs: React doesn\'t rendered component', e );
            }
        });
Exemple #8
0
 // Functions
 function render () {
   if (!game) return; // Nothing to render yet
   React.renderComponent(Game({
     game: game,
     refreshRate: refreshRate,
     increaseSpeed: increaseSpeed,
     decreaseSpeed: decreaseSpeed,
     play: play,
     pause: pause,
     jump: jump,
     playing: playing,
     buffered: buffered,
     map: url.query.map,
     debug: debug,
     quality: quality,
   }), mount);
 }
MapOverlayView.prototype.draw = function() {
  var props = merge(this.props, {position: null, mapPane: null});
  if (this.props.position) {
    var point = this.getProjection()
      .fromLatLngToDivPixel(this.props.position);

    props.style = merge({
      position: 'absolute',
      left: point.x,
      top: point.y
    }, this.props.style);
  }

  React.renderComponent(
    cloneWithProps(<div />, props),
    this._containerElement
  )
};
Exemple #10
0
window.addEventListener('keyup', function(e){

  if (e.keyCode === KEY.RIGHT){
    time.add('h', 1);
  } else if (e.keyCode === KEY.LEFT){
    time.subtract('h', 1);
  }

  // Push new data to re-render component
  React.renderComponent(
    App({
      time: time,
      timezones: timezones
    }),
    targetNode
  );

});
Exemple #11
0
	l10n.get('Menu').then(function(texts) {
		var menu = views.Menu(merge({
			texts: texts,
			projects: projectStore.getAll(),
			users: userStore.getAll(),
		}, currentUser.super
			? {
				onAddProjectClicked: onAddProjectClicked,
				onAddUserClicked: onAddUserClicked,
			}
			: null
		))

		var menuContainer = document.querySelector('.menu')
		var deferred = Q.defer()
		React.renderComponent(menu, menuContainer, deferred.resolve)
		return deferred.promise
	}).done()
Exemple #12
0
define(function(require) {
  var $ = require('jquery');
  var React = require('react');
  var DefaultRoute = require('react-router').DefaultRoute;
  var Routes = require('react-router').Routes;
  var Route = require('react-router').Route;

  var WeekView = require('jsx!components/week');

  React.renderComponent((
    <Routes>
      <Route path='/' handler={WeekView}>
        <DefaultRoute handler={WeekView} />
      </Route>
    </Routes>
  ), $('#entry').get(0));

});
Exemple #13
0
(function() {

    var React = require('react');
    var MainView = require('./views/mainView');
    var Events = require('./models/events');
    var Activities = require('./models/activities');

    var events = new Events();

    React.renderComponent(
        MainView({
            events: new Events(),
            activities: new Activities()
        }),
        document.getElementById('container')
    );

}());
Exemple #14
0
function App() {
  var data = {
    nodes: [{
      id: Utils.uuid(),
      name: 'Lists TODO',
      nodes: [{
        id: Utils.uuid(),
        name: '[x] Rendering of nested lists',
        nodes: [{
          id: Utils.uuid(),
          name: '[x] Just to verify multiple levels of nesting',
          nodes: []
        }]
      },{
        id: Utils.uuid(),
        name: '[x] Adding new items',
        nodes: []
      },{
        id: Utils.uuid(),
        name: '[ ] Saving the state',
        nodes: []
      },{
        id: Utils.uuid(),
        name: '[ ] Indenting/unindenting lists',
        nodes: []
      },{
        id: Utils.uuid(),
        name: '[ ] Editing current items',
        nodes: []
      }]
    },{
      id: Utils.uuid(),
      name: 'Second top level list',
      nodes: [{
        id: Utils.uuid(),
        name: 'Added just in case',
        nodes: []
      }]
    }]
  }

  var store = new Store({initialData: data})
  React.renderComponent(Root({store: store}), document.getElementById('app'));
}
Exemple #15
0
(function () {

  // MessageStore : Store <- emits events (onChange callbacks)
  // AppDispatcher : Dispatcher <- main dispatcher, accepts

  var React = require('react');

  var AppDispatcher = require('./dispatcher/AppDispatcher');

  var ChatClient = require('./ChatClient');

  var MessageList = require('./components/MessageList.jsx');

  React.renderComponent(
    MessageList({ room: 'pockychat' }),
    document.querySelector('#messageContainer')
  );

})();
    it("should execute custom event plugin listening behavior", function() {
      var React = require('React');
      var SimpleEventPlugin = require('SimpleEventPlugin');

      SimpleEventPlugin.didPutListener = mocks.getMockFunction();
      SimpleEventPlugin.willDeleteListener = mocks.getMockFunction();

      var container = document.createElement('div');
      React.renderComponent(
        <div onClick={() => true} />,
        container
      );

      expect(SimpleEventPlugin.didPutListener.mock.calls.length).toBe(1);

      React.unmountComponentAtNode(container);

      expect(SimpleEventPlugin.willDeleteListener.mock.calls.length).toBe(1);
    });
Exemple #17
0
  render: function (nextLayout) {
    //
    // Wrapper around React.RenderComponent.
    // > Handles unmountComponent for situations where we're rendering
    // the same component, but with different data (for example different teams)
    // on contentMain. In these situations, re-rendering the component is not the
    // most effective approach, since the whole data structure will change.
    //
    // Usage:
    // dispatcher.render();
    //
    var settings;
    var layout = nextLayout ? nextLayout : this.layout;

    if ((window.innerWidth < 800 && layout === 'auto') || layout === 'compact') {
      settings = {
        'layout': SmallLayout,
        'props': this.nextSmallProps
      };
    } else if ((window.innerWidth > 1200 && layout === 'auto') || layout === 'full') {
      settings = {
        'layout': LargeLayout,
        'props': this.nextLargeProps
      };
    } else {
      settings = {
        'layout': MediumLayout,
        'props': this.nextMediumProps
      };
    }

    if (!this.app || (nextLayout !== undefined && this.layout !== nextLayout)) {
      this.app = React.renderComponent(
        settings.layout(settings.props),
        document.getElementById('main')
      );
    } else {
        this.app.setProps(settings.props);
    }

    this.layout = layout;
  }
Exemple #18
0
    return function bootstrap(node) {
        var dataBridge = new DataBridge(mediator);
        dataBridge.listen();

        start();
        React.renderComponent(cmApp, node);

        mediator.subscribe('dataError', function (e) {
            console.error('Data error:', e);
            try {
                window.alert('Data Error: ' + JSON.stringify(e));
            } catch (e) {
                window.alert('Unrecoverable data error.');
            }
        }, {
            // Let this be very late in the chain so data error can be caught
            // upstream.
            priority: 100
        });
    };
Exemple #19
0
define(function(require) {
  //var config = "";
  $.ajax({
    url : '/getConfig',
    dataType : 'text',
    async: false,
  }).done(function(result){
    config = result;
  });

  var jQuery = require('jquery');
  var React = require('react');
  var dashboard;
  if (config == "silktest")
    dashboard = require('dashboardSilkTest');
  else if (config == "performer")
    dashboard = require('dashboardPerformer');
  
  React.renderComponent(dashboard(), document.getElementById('content'));
});
Exemple #20
0
function run() {

	var appConstructor = require('./core/app');
	var app = appConstructor({
		rootDir: './'
	});

	var Root = app.component('Root');

	React.renderComponent(Root(), document.body);

	function go() {
		var url = document.location.pathname;
		console.log('I see url', url);
		app.router.go(url);
	}

	window.onpopstate = go;

	go();
}
Exemple #21
0
TodoApp.prototype.refresh = function () {
    // rerender DOM
    React.renderComponent(
        TodoAppView ({
            key: 'root',
            app: this,
            UIState: this.path
        }),
        document.getElementById('todoapp')
    );
    // recover focus
    var item = this.getItem();
    var edit = document.getElementById(item._id);
    if (edit) {
        edit.focus();
        // TODO scroll into view
    }
    // set URI
    var locationPath = this.buildLocationPath();
    window.history.replaceState({},"",window.location.origin + locationPath);
};
Exemple #22
0
        .end(function(res) {
	    var users = {};

            var posts = res.body.map(function(item) {
                if(item.doc.type === 'post') return item.doc;
            }).filter(function(x) { return x != null; });

            res.body.forEach(function(item) {
                if(item.doc.type === 'user') users[item.doc._id] = item.doc;
            });

            var kommentar = Kommentar({
                posts: posts,
		users: users,
                thread: thread,
		currentUser: auth.user,
                auth: authHeader
            });

            React.renderComponent(kommentar, el);
        });
  var createComponent = function(rootContainer, global, name, type) {
    var component, className;
    var klass = React.createClass(extend({
      displayName: name,
      render: function() {
        return React.DOM.div({});
      }
    }, type));

    component = {
      name: name,
      type: klass
    };

    // Exports "Hello" to global.helloComponent
    component.globalName = [
      component.name,
      'component'
    ].join('_').underscore().camelize(true);

    // CSS class for the container that houses a component named "Hello" is
    // "hello-fixture"
    className = [
      component.name,
      'fixture'
    ].join('_').underscore().replace(/_/g, '-');

    component.container = $('<div />')
      .addClass(className)
      .appendTo(rootContainer)[0];

    component.instance =
      React.renderComponent(component.type(), component.container);

    global[component.globalName] = component.instance;

    components.push(component);

    return component.instance;
  };
Exemple #24
0
var Page = function (component, dataPage, opts) {

	var opts = _.extend({}, opts || {
		onClose: function () {}
	});

	component.props.page = this;
	var e = document.createElement('div');
	this.e = e;
	this.c = component;
	if (!opts.navbar)
		$(e).addClass('pContainer');
	$(e).addClass((opts && opts.class) || '');
	$(e).addClass('invisible').hide().appendTo('body');
	if (dataPage)
		e.dataset.page = dataPage;
	var oldTitle = document.title;
	if (opts.title) {
		document.title = opts.title;
	}
	$('html').addClass(opts.crop?'crop':'place-crop');

	React.renderComponent(component, e, function () {
		$(e).show().removeClass('invisible');
	});

	this.destroy = function (navigate) {
		$(e).addClass('invisible');
		React.unmountComponentAtNode(e);
		$(e).remove();
		document.title = oldTitle;
		$('html').removeClass(opts.crop?'crop':'place-crop');
		if (opts.onClose) {
			opts.onClose();
			opts.onClose = undefined; // Prevent calling twice
		}
	};
};
    it("should clean up listeners", function() {
      var React = require('React');
      var ReactEventEmitter = require('ReactEventEmitter');

      var container = document.createElement('div');
      document.documentElement.appendChild(container);

      var callback = function() {};
      var instance = <div onClick={callback} />;
      React.renderComponent(instance, container);

      var rootNode = instance.getDOMNode();
      var rootNodeID = rootNode.id;
      expect(
        ReactEventEmitter.getListener(rootNodeID, 'onClick')
      ).toBe(callback);

      React.unmountAndReleaseReactRootNode(container);

      expect(
        ReactEventEmitter.getListener(rootNodeID, 'onClick')
      ).toBe(undefined);
    });
Exemple #26
0
  it('view should record correct events when accessing collection contents', function () {
    HelloCollectionView = View.extend({
      componentDidUpdate: function () {
        console.log("Here");
      },
      render: function () {
        return (
          <div>
           {this.props.collection.map(function (item) {
             return item.get('content');
           })}
          </div>
        );
      }
    });

    var collection = new Collection({}, {id: 1, content: 'content'});
    var view = new HelloCollectionView({collection: collection});
    React.renderComponent(
      view,
      document.createElement('div')
    );
  });
        res.renderComponent = function (Component, data) {
            data = _.extend({}, data, res.locals);

            if (typeof window !== 'undefined') {
                if(params.exportReact){//react dev tools support
                    window.React = React; 
                }

                document.title = data.title ? data.title : '';

                React.renderComponent(Component(data), document.getElementById(params.rootElId));
            } else {
                var html = React.renderComponentToString(Component(data));

                res.render(params.layoutName, {
                    data: data,
                    component: html
                });

            }

            firstRender = false;
        };
Exemple #28
0
var AppInit = function(categoriesUrl, postsUrl, postsOptions) {
	
	options = postsOptions?$.extend(defaultOptions, postsOptions):defaultOptions;
	PBDataLoader.loadData(postsUrl, options, true) 
	
	React.initializeTouchEvents(true);
	
	$.getJSON(categoriesUrl, function(data) { 
		$('#treeview').treeview({data: data, levels: 10, enableLinks: false, nodeIcon: ""}).on('nodeSelected', function(event, node) {
			var category = node.id?node.slug.concat('_',node.id):node.id;
			PBViewActions.showCategory(category, node.text);
		});
	}).fail(function(){
		React.renderComponent(
		  Message({type: 'error', message: Messages.AJAX_FAIL}),
		  document.getElementById('treeview'));
	});
	
	React.renderComponent(
	  PostsList(),
	  document.getElementById('posts_list')
	);
};
Exemple #29
0
db.open(function (err) {
  if (err) {
    return console.error(err);
  }

  var GistAppView = require('./components/gist_app_view');
  var GithubStore = require('./stores/github_store');
  var GistStore = require('./stores/gist_store');
  var GistActions = require('./actions/gist_actions');

  if (localStorage.githubToken) {
    GistActions.githubAuthenticated(localStorage.githubToken);
  }

  // OAuth
  OAuth.initialize('rRW8z4osjyMGc2rtUmJJm0U1qso');

  React.renderComponent(
    <GistAppView
      githubStore={GithubStore}
      gistStore={GistStore}
      gistActions={GistActions} />,
    document.body);
});
Exemple #30
0
  var render = function (transition, videos, error) {
    var params = {
      width: window.innerWidth,
      height: window.innerHeight,
      transition: transition,
      videos: videos,
      duration: 2500,
      loop: !!url.query.loop,
      autoplay: !!url.query.autoplay
    };
    var comp;

    if (error) {
      params.error = error.message || error;
      comp = ErrorView(params);
    }
    else if (!videos) {
      comp = Loading(params);
    }
    else {
      comp = VideoLinearPlayer(params);
    }
    return React.renderComponent(comp, document.body);
  };