@fakel/rest-admin
Version:
An application that makes it easier to work with your API
36 lines (35 loc) • 1.45 kB
JavaScript
import React from 'react';
import Menu from 'antd/lib/menu';
import { observer } from 'mobx-react';
import { Link } from 'react-router-dom';
import { v4 as uuidv4 } from 'uuid';
import { useResourceStore } from '../../hooks/useResourceStore';
var isDefinedOptions = function (resource) { return !!resource.options; };
var getRenderView = function (resource) {
if (isDefinedOptions(resource)) {
return resource.options.renderViewOnMenuClicked || 'list';
}
return 'list';
};
var getLinkUrl = function (resource) {
var DEFAULT_URL = "/" + resource.name + "/" + getRenderView(resource);
if (isDefinedOptions(resource)) {
return resource.options.linkUrl || DEFAULT_URL;
}
return DEFAULT_URL;
};
var getLabel = function (resource) {
if (isDefinedOptions(resource)) {
return resource.options.label || resource.name;
}
return resource.name;
};
var AppMenu = observer(function () {
var resourceStore = useResourceStore();
var resources = resourceStore.resources;
return resources && resources.length ? (React.createElement(Menu, { mode: "inline", style: { height: '100%', borderRight: 0 } }, resources.map(function (resource) {
return (React.createElement(Menu.Item, { icon: resource.options ? resource.options.icon : null, key: uuidv4() },
React.createElement(Link, { to: getLinkUrl(resource) }, getLabel(resource))));
}))) : null;
});
export default AppMenu;