From 99b68f74f4265c3ffac29aa2395bf371d81e10f6 Mon Sep 17 00:00:00 2001 From: Rick Carlino Date: Mon, 28 Sep 2015 15:28:13 -0500 Subject: [PATCH] Begginings of GardenMap component --- Rakefile | 3 +++ javascripts/menus/designer_main.js | 22 ++++++++++++++-------- javascripts/menus/garden_map.js | 5 +++++ javascripts/redux/initial_state.js | 2 +- 4 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 javascripts/menus/garden_map.js diff --git a/Rakefile b/Rakefile index d8512659c..ccceff2de 100755 --- a/Rakefile +++ b/Rakefile @@ -5,6 +5,9 @@ require File.expand_path('../config/application', __FILE__) FarmBot::Application.load_tasks Rake::Task["assets:precompile"].enhance do + # We use a mix of gulp + asset pipeline. Quick fix for now is + # to piggyback on `rake assets:precompile` so that it gets + # run on deploy. puts '====== Running `gulp build`' puts `gulp build` puts '====== Done running `gulp build`' diff --git a/javascripts/menus/designer_main.js b/javascripts/menus/designer_main.js index 2bd9c9770..12aba630c 100644 --- a/javascripts/menus/designer_main.js +++ b/javascripts/menus/designer_main.js @@ -2,30 +2,36 @@ import { CropInventory } from './crop_inventory'; import { PlantCatalog } from './plant_catalog'; import { Calendar } from './calendar'; import { CropInfo } from './crop_info'; +import { GardenMap } from './garden_map'; -const MENU_CHOICES = {CropInventory, PlantCatalog, CropInfo} +const LEFT_MENU_CHOICES = {CropInventory, PlantCatalog, CropInfo} export class DesignerMain extends React.Component { + transferableProps(name){ + return _.merge({}, {dispatch: this.props.dispatch}, this.props[name]); + }; // Dynamically determine what to render on the left side of the designer, // based on the value of getStore().leftMenu.component - renderPanel() { - let props = _.merge({}, - {dispatch: this.props.dispatch}, - this.props.leftMenu); - let component = MENU_CHOICES[props.component]; + renderLeft() { + let props = this.transferableProps("leftMenu") + let component = LEFT_MENU_CHOICES[props.component]; return React.createElement(component, props); } + renderMiddle(){ + let props = this.transferableProps("middleMenu"); + return React.createElement(GardenMap, props); + } render(){ return (
- { this.renderPanel() } + { this.renderLeft() }
-
+ { this.renderMiddle() }
diff --git a/javascripts/menus/garden_map.js b/javascripts/menus/garden_map.js new file mode 100644 index 000000000..fc98aef4a --- /dev/null +++ b/javascripts/menus/garden_map.js @@ -0,0 +1,5 @@ +export class GardenMap extends React.Component { + render() { + return
Hello, GardenMap
; + } +} diff --git a/javascripts/redux/initial_state.js b/javascripts/redux/initial_state.js index a2bd9b709..7b9bd42d5 100644 --- a/javascripts/redux/initial_state.js +++ b/javascripts/redux/initial_state.js @@ -3,7 +3,7 @@ var initialState = { component: 'CropInventory', tab: 'Plants' }, - centerMenu: { + middleMenu: { mapPoints: [] }, rightMenu: {