UNPKG

graft-react

Version:

react admin and helper components for graft-db

97 lines (96 loc) 5.81 kB
"use strict"; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var React = require("react"); var Drawers_1 = require("react-md/lib/Drawers"); var Toolbars_1 = require("react-md/lib/Toolbars"); var Buttons_1 = require("react-md/lib/Buttons"); var SelectFields_1 = require("react-md/lib/SelectFields"); var List_1 = require("react-md/lib/Lists/List"); var ListItem_1 = require("react-md/lib/Lists/ListItem"); var Subheaders_1 = require("react-md/lib/Subheaders"); var FontIcons_1 = require("react-md/lib/FontIcons"); var CircularProgress_1 = require("react-md/lib/Progress/CircularProgress"); var react_dnd_html5_backend_1 = require("react-dnd-html5-backend"); var react_dnd_1 = require("react-dnd"); var Router_1 = require("./Router"); var WithClient_1 = require("./WithClient"); var Preview_1 = require("./Preview"); var App = (function (_super) { __extends(App, _super); function App() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.toggleSidebar = function () { var navigator = _this.context.navigator; var sidebar = navigator.data().sidebar; navigator.update({ sidebar: !sidebar }); }; _this.closeSidebar = function () { var navigator = _this.context.navigator; navigator.update({ sidebar: false }); }; _this.navigateToContent = function () { var navigator = _this.context.navigator; var sidebar = navigator.data().sidebar; navigator.navigate('objects', { sidebar: sidebar, preview: true }); }; _this.navigateToMedia = function () { var navigator = _this.context.navigator; var sidebar = navigator.data().sidebar; navigator.navigate('media', { sidebar: sidebar }); }; _this.navigateToTypes = function () { var navigator = _this.context.navigator; var sidebar = navigator.data().sidebar; navigator.navigate('types', { sidebar: sidebar, preview: false }); }; _this.logout = function () { localStorage.clear(); window.location.reload(); }; return _this; } App.prototype.render = function () { var children = this.props.children; var _a = this.context, navigator = _a.navigator, client = _a.client; var _b = navigator.data(), sidebar = _b.sidebar, purl = _b.purl; if (client.initializing) { return React.createElement(CircularProgress_1.default, { id: 'initalizing' }); } return (React.createElement("div", { className: sidebar ? 'md-drawer-relative admin-app' : 'admin-app', style: { transition: 'margin-left 150ms ease-in', position: 'relative', height: '100%' } }, React.createElement(Preview_1.Preview, { url: purl }, children), React.createElement(Drawers_1.default, { visible: sidebar, position: 'left', onVisibilityToggle: this.toggleSidebar, type: Drawers_1.default.DrawerTypes.PERSISTANT, style: { zIndex: 100 } }, React.createElement(Toolbars_1.default, { colored: true, actions: React.createElement(Buttons_1.default, { key: "nav", icon: true, onClick: this.closeSidebar }, "menu"), titleMenu: React.createElement(SelectFields_1.default, { key: "titleMenu", id: "titles", menuItems: ['Fairlight'], defaultValue: 'Fairlight' }) }), React.createElement(List_1.default, null, React.createElement(Subheaders_1.default, { primaryText: 'Content' }), React.createElement(ListItem_1.default, { primaryText: 'Content', leftIcon: React.createElement(FontIcons_1.default, null, "library_books"), onClick: this.navigateToContent }), React.createElement(ListItem_1.default, { primaryText: 'Media', leftIcon: React.createElement(FontIcons_1.default, null, "collections"), onClick: this.navigateToMedia }), React.createElement(Subheaders_1.default, { primaryText: 'Settings' }), React.createElement(ListItem_1.default, { primaryText: 'Types', leftIcon: React.createElement(FontIcons_1.default, null, "more"), onClick: this.navigateToTypes }), React.createElement(Subheaders_1.default, { primaryText: 'Account' }), React.createElement(ListItem_1.default, { primaryText: 'Logout', leftIcon: React.createElement(FontIcons_1.default, null, "power_settings_new"), onClick: this.logout }))))); }; return App; }(React.Component)); App.contextTypes = __assign({}, WithClient_1.clientContextTypes, Router_1.navigatorContextTypes); App = __decorate([ react_dnd_1.DragDropContext(react_dnd_html5_backend_1.default) ], App); exports.App = App;