2015-11-14 01:34:03 +01:00
|
|
|
var React = require('react')
|
|
|
|
var ReactDOM = require('react-dom')
|
2015-11-14 13:12:48 +01:00
|
|
|
var Router = require('react-router').Router
|
|
|
|
var Route = require('react-router').Route
|
|
|
|
var IndexRoute = require('react-router').IndexRoute
|
2015-11-18 15:40:29 +01:00
|
|
|
var Redirect = require('react-router').Redirect
|
2015-11-14 13:12:48 +01:00
|
|
|
var Link = require('react-router').Link
|
2015-11-20 14:20:06 +01:00
|
|
|
|
|
|
|
// Load CSS
|
|
|
|
require('normalize.css')
|
|
|
|
require('skeleton.css')
|
|
|
|
require('style.css')
|
2015-11-20 17:24:06 +01:00
|
|
|
require('raleway.css')
|
2015-11-14 12:06:37 +01:00
|
|
|
|
2015-11-22 00:10:46 +01:00
|
|
|
// Load Components
|
2015-11-14 12:06:37 +01:00
|
|
|
|
2015-11-22 00:10:46 +01:00
|
|
|
var opt = require('options.jsx').get()
|
|
|
|
var boardsWrapper = require('boardsapiwrapper.js')
|
|
|
|
var boards = new boardsWrapper()
|
|
|
|
var Icon = require('icon.jsx')
|
|
|
|
var GetIPFS = require('getipfs.jsx')
|
|
|
|
|
|
|
|
// Load pages
|
|
|
|
|
|
|
|
var Navbar = require('navbar.jsx')(boards)
|
|
|
|
var Users = require('users.jsx')(boards)
|
|
|
|
var Settings = require('settings.jsx')(boards)
|
|
|
|
var Profile = require('profile.jsx')(boards)
|
|
|
|
var Board = require('board.jsx')(boards)
|
|
|
|
var PostPage = require('postpage.jsx')(boards)
|
2015-11-26 19:04:47 +01:00
|
|
|
var CommentPage = require('commentpage.jsx')(boards)
|
2015-11-22 00:10:46 +01:00
|
|
|
|
|
|
|
// Define Main Components
|
2015-11-17 20:32:52 +01:00
|
|
|
|
|
|
|
var Container = React.createClass({
|
2015-11-14 12:06:37 +01:00
|
|
|
render: function(){
|
2015-11-17 20:32:52 +01:00
|
|
|
return ( <div className="container app">{this.props.children}</div> )
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
var App = React.createClass({
|
|
|
|
render: function(){
|
|
|
|
return ( <div><Navbar /><Container>{this.props.children}</Container></div> )
|
2015-11-14 12:06:37 +01:00
|
|
|
}
|
|
|
|
})
|
|
|
|
|
2015-11-17 20:32:52 +01:00
|
|
|
// Static pages
|
|
|
|
|
2015-11-21 16:29:54 +01:00
|
|
|
var Static = React.createClass({
|
|
|
|
html: function(){
|
|
|
|
return { __html: this.props.content }
|
|
|
|
},
|
|
|
|
render: function(){
|
|
|
|
if(this.props.content){
|
|
|
|
return <div className={this.props.className} dangerouslySetInnerHTML={this.html()} />
|
|
|
|
} else {
|
|
|
|
return <NotFound />
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
var Homepage = React.createClass({
|
|
|
|
render: function(){
|
|
|
|
return <Static className="homepage" content={require('landing.md')} />
|
|
|
|
}
|
2015-11-14 15:03:38 +01:00
|
|
|
})
|
|
|
|
|
2015-11-17 20:32:52 +01:00
|
|
|
var NotFound = React.createClass({
|
|
|
|
render: function(){
|
|
|
|
return (<div className="text-center">
|
|
|
|
<h1><Icon name="ban"/></h1>
|
|
|
|
<p>Sorry, there's nothing here!</p>
|
|
|
|
</div>)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
// Start
|
|
|
|
|
2015-11-22 00:10:46 +01:00
|
|
|
ReactDOM.render(
|
|
|
|
<Router>
|
|
|
|
<Route path="/" component={App}>
|
|
|
|
<IndexRoute component={Homepage} />
|
|
|
|
<Route path="/@:userid">
|
|
|
|
<IndexRoute component={Profile} />
|
2015-11-26 19:04:47 +01:00
|
|
|
<Route path="post/:posthash" >
|
|
|
|
<IndexRoute component={PostPage} />
|
2015-11-23 13:00:49 +01:00
|
|
|
</Route>
|
2015-11-22 00:10:46 +01:00
|
|
|
<Route path=":boardname">
|
|
|
|
<IndexRoute component={Board} />
|
2015-11-26 19:04:47 +01:00
|
|
|
<Route path=":posthash">
|
|
|
|
<IndexRoute component={PostPage} />
|
|
|
|
<Route path=":commenthash" component={CommentPage} />
|
|
|
|
</Route>
|
2015-11-14 23:33:50 +01:00
|
|
|
</Route>
|
2015-11-22 00:10:46 +01:00
|
|
|
</Route>
|
2015-11-23 13:00:49 +01:00
|
|
|
<Route path="/post/:posthash" component={PostPage} />
|
2015-11-26 18:21:28 +01:00
|
|
|
<Route path="/board/:boardname" component={Board} />
|
2015-11-22 00:10:46 +01:00
|
|
|
<Route path="/users" component={Users} />
|
|
|
|
<Route path="/settings" component={Settings} />
|
|
|
|
<Route path="*" component={NotFound} />
|
|
|
|
</Route>
|
|
|
|
</Router>, document.getElementById('root')
|
|
|
|
)
|