import React from 'react';
import {StyleSheet, View, Text} from 'react-native';
import Library from 'trapilib/dist/lib';
import { TextInput } from 'react-native';
import TextEditor from '../Components/TextEditor';
// import Numbers from '../Components/Numbers';
// import ColorEditor from '../Components/ColorEditor';
import TypeHandler from '../Components/TypeHandler.js';
let {
CoreSystem,
ViewSystem,
ViewNode,
DataTypes
} = Library;
export default class SideBar{
constructor(CoreSystem){
this.CoreSystem = CoreSystem;
}
onUpdate(fn){
this.__onUpdate = fn
}
forceUpdate(props){
this.__onUpdate && this.__onUpdate(props);
}
editNode(text,key){
this.viewNode.props[key] = text;
this.forceUpdate();
}
render(){
console.log("DO I EVER COME HEREEEEEEE")
let tool = this.tool;
let ModuleSystem = this.CoreSystem.ModuleSystem;
let CurrentView = this.CoreSystem.getCurrentView();
let Routing = this.CoreSystem.Routing;
let Structure = {};
if (tool) {
console.log(tool)
if (tool.selectedNode && tool.selectedNode.isCol && CurrentView.has(tool.selectedNode)) {
this.ColNode = tool.selectedNode;
this.RowNode = CurrentView.getParent(this.ColNode);
if(tool.selectedNode.content && tool.selectedNode.content.value) {
this.viewNode = tool.selectedNode.content;
console.log("NEVERRRRRRRRRRRRRRRR")
Structure = ModuleSystem.fromViewNode(this.viewNode).Inputs;
}
}
}
let data = Object.keys(Structure || {}).map((key) => {
let Editor = TypeHandler(Structure[key]);
let editorProps = {
title: key,
onChange: (value) => this.editNode(value, key)
};
console.log(DataTypes)
switch(Structure[key].type){
case DataTypes.Types.Integer:
editorProps.number = this.viewNode.props[key];
break;
case DataTypes.Types.Text:
editorProps.text = this.viewNode.props[key];
break;
default:
//Must create a generic Vuiew Component
return ()
}
return
})
return (
Side Bar
Container style
{this.RowNode &&
Row
{
CurrentView.setColumns(this.RowNode, parseInt(cols))
this.forceUpdate();
}}/>
}
Col
{data}
)
}
}
const SelectedStyle = StyleSheet.create({
container:{
padding:5,
borderWidth:2,
borderColor:'green'
}
})
const PropertiesContainer = StyleSheet.create({
container:{
marginTop:20,
borderTopWidth:0.8,
borderColor:'#D0D0D0'
},
child:{
padding:10
}
})
const SideBarStyle = StyleSheet.create({
container:{
padding:1,
flex:1,
flexDirection:'row'
},
title:{
fontSize:20,
textAlign:'center',
fontFamily:'halvetica',
color:'black',
borderBottomWidth:1,
borderBottomColor:'black'
},
body:{
paddingLeft:5,
paddingRight:5
}
})