graft-react
Version:
react admin and helper components for graft-db
97 lines (96 loc) • 5.81 kB
JavaScript
"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;