Skip to content

Instantly share code, notes, and snippets.

@karlbright
Created December 14, 2015 03:51
Show Gist options
  • Save karlbright/8b304b2099049a00340f to your computer and use it in GitHub Desktop.
Save karlbright/8b304b2099049a00340f to your computer and use it in GitHub Desktop.
import React from 'react'
import Immutable from 'immutable'
import CompoundFieldSidebar from './field_sidebars/compound_field_sidebar'
import CollectionMemberFieldSidebar from './field_sidebars/collection_member_field_sidebar'
import DetailFieldSidebar from './field_sidebars/detail_field_sidebar'
import ImagePickerSidebar from './field_sidebars/image_picker_sidebar/image_picker_sidebar'
const SidebarForFieldType = React.createClass({
contextTypes: {
router: React.PropTypes.func.isRequired
},
propTypes: {
fieldSchema: React.PropTypes.instanceOf(Immutable.Map).isRequired
},
createRouteMaker () {
const params = this.context.router.getCurrentParams()
return new RouteMaker(this.context.router, 'field', params)
},
render () {
const routeMaker = this.createRouteMaker()
switch (this.props.fieldSchema.get('field_type')) {
case 'compound': return <CompoundFieldSidebar routeMaker={routeMaker} {...this.props} />
case 'long_form_text': return <DetailFieldSidebar routeMaker={routeMaker} {...this.props} />
case 'image': return <ImagePickerSidebar routeMaker={routeMaker} {...this.props} />
default: return <CollectionMemberFieldSidebar routeMaker={routeMaker} {...this.props} />
}
}
})
export default SidebarForFieldType
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment