diff --git a/.meteor/packages b/.meteor/packages index d4c8001..2bf3198 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -19,3 +19,4 @@ ecmascript # Enable ECMAScript2015+ syntax in app code autopublish # Publish all data to the clients (for prototyping) insecure # Allow all DB writes from clients (for prototyping) +react-meteor-data diff --git a/.meteor/versions b/.meteor/versions index 0e2f545..d7e400c 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -51,6 +51,7 @@ observe-sequence@1.0.11 ordered-dict@1.0.7 promise@0.6.7 random@1.0.9 +react-meteor-data@0.2.9 reactive-var@1.0.9 reload@1.1.8 retry@1.0.7 @@ -61,6 +62,7 @@ standard-minifier-css@1.0.6 standard-minifier-js@1.0.6 templating@1.1.9 templating-tools@1.0.4 +tmeasday:check-npm-versions@0.2.0 tracker@1.0.13 ui@1.0.11 underscore@1.0.8 diff --git a/client/main.html b/client/main.html index 203539b..05b3113 100644 --- a/client/main.html +++ b/client/main.html @@ -1,25 +1,7 @@ - simple + MoodTracker.io -

Welcome to Meteor!

- - {{> hello}} - {{> info}} +
- - - - \ No newline at end of file diff --git a/client/main.js b/client/main.js deleted file mode 100644 index ecb3282..0000000 --- a/client/main.js +++ /dev/null @@ -1,22 +0,0 @@ -import { Template } from 'meteor/templating'; -import { ReactiveVar } from 'meteor/reactive-var'; - -import './main.html'; - -Template.hello.onCreated(function helloOnCreated() { - // counter starts at 0 - this.counter = new ReactiveVar(0); -}); - -Template.hello.helpers({ - counter() { - return Template.instance().counter.get(); - }, -}); - -Template.hello.events({ - 'click button'(event, instance) { - // increment the counter when button is clicked - instance.counter.set(instance.counter.get() + 1); - }, -}); diff --git a/client/main.jsx b/client/main.jsx new file mode 100644 index 0000000..59aed4e --- /dev/null +++ b/client/main.jsx @@ -0,0 +1,9 @@ +import React from 'react'; +import { Meteor } from 'meteor/meteor'; +import { render } from 'react-dom'; + +import App from '../imports/ui/App.jsx'; + +Meteor.startup(() => { + render(, document.getElementById('render-target')); +}); diff --git a/imports/api/teams.js b/imports/api/teams.js new file mode 100644 index 0000000..18d1fd0 --- /dev/null +++ b/imports/api/teams.js @@ -0,0 +1,3 @@ +import { Mongo } from 'meteor/mongo'; + +export const Teams = new Mongo.Collection('teams'); diff --git a/imports/ui/App.jsx b/imports/ui/App.jsx new file mode 100644 index 0000000..a5f5db5 --- /dev/null +++ b/imports/ui/App.jsx @@ -0,0 +1,37 @@ +import React, { Component, PropTypes } from 'react'; +import TeamSettings from './TeamSettings'; +import { createContainer } from 'meteor/react-meteor-data'; + +import { Teams } from '../api/teams.js'; + +// App component - represents the whole app +class App extends Component { + + render() { + return ( +
+
+

MoodTracker

+ + +
+
+ ); + } +} + +App.propTypes = { + team: PropTypes.object.isRequired +}; + +export default createContainer(() => { + if (!Teams.findOne({})) { + Teams.insert({ + name: 'My Team' + }); + } + + return { + team: Teams.findOne({}) + }; +}, App); diff --git a/imports/ui/TeamSettings.jsx b/imports/ui/TeamSettings.jsx new file mode 100644 index 0000000..f11f71a --- /dev/null +++ b/imports/ui/TeamSettings.jsx @@ -0,0 +1,28 @@ +import React, { Component, PropTypes } from 'react'; + +export default class TeamParameters extends Component { + render() { + return ( +
+

Configure your team settings ({this.props.team.name})

+
+
+ + +
+ +
+ + +
+ + +
+
+ ); + } +} + +TeamParameters.propTypes = { + team: PropTypes.object.isRequired +}; diff --git a/package.json b/package.json index bab653d..c70bb51 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,9 @@ "start": "meteor run" }, "dependencies": { - "meteor-node-stubs": "~0.2.0" + "meteor-node-stubs": "~0.2.0", + "react": "^15.1.0", + "react-addons-pure-render-mixin": "^15.1.0", + "react-dom": "^15.1.0" } } diff --git a/server/main.js b/server/main.js index 31a9e0e..ae15eda 100644 --- a/server/main.js +++ b/server/main.js @@ -1,4 +1,5 @@ import { Meteor } from 'meteor/meteor'; +import '../imports/api/teams.js'; Meteor.startup(() => { // code to run on server at startup