UNPKG

@netdata/netdata-ui

Version:

netdata UI kit

161 lines (160 loc) 7.08 kB
"use strict"; exports.__esModule = true; exports["default"] = void 0; var _react = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _useToggle2 = _interopRequireDefault(require("../../hooks/useToggle")); var _typography = require("../../components/typography"); var _icon = require("../../components/icon"); var _button = require("../../components/button"); var _flex = _interopRequireDefault(require("../../components/templates/flex")); var _layer = _interopRequireDefault(require("../../components/templates/layer")); var _general = _interopRequireDefault(require("./general")); var _dashboard = _interopRequireDefault(require("./dashboard")); var _search = _interopRequireWildcard(require("./search")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } var Container = (0, _styledComponents["default"])(_flex["default"]).attrs({ padding: [6], background: "dropdown", gap: 6, column: true, round: true, overflow: { vertical: "auto" } }).withConfig({ displayName: "documentation__Container", componentId: "sc-13yq5u1-0" })(["box-shadow:0px 4px 4px rgba(0,0,0,0.25);"]); var Header = function Header(_ref) { var children = _ref.children, onClose = _ref.onClose; return /*#__PURE__*/_react["default"].createElement(_flex["default"], { width: "100%", alignItems: "center", justifyContent: "between", padding: [0, 0, 4], border: { side: "bottom", color: "disabled" } }, /*#__PURE__*/_react["default"].createElement(_flex["default"], { gap: 2, alignItems: "center" }, children), /*#__PURE__*/_react["default"].createElement(_button.Button, { icon: "x", neutral: true, small: true, onClick: onClose, flavour: "borderless", "data-testid": "documentation-help-close" })); }; var views = { general: "general", dashboard: "dashboard", search: "search" }; var titles = { general: "Need help?", dashboard: "Need help?" }; var Documentation = function Documentation(_ref2) { var _ref2$app = _ref2.app, app = _ref2$app === void 0 ? "cloud" : _ref2$app, onCloseClick = _ref2.onCloseClick, onVisitDocumentClick = _ref2.onVisitDocumentClick, onOpenIssueClick = _ref2.onOpenIssueClick, onOpenBugClick = _ref2.onOpenBugClick, onContributeClick = _ref2.onContributeClick, onSupportClick = _ref2.onSupportClick, onGoToDemoClick = _ref2.onGoToDemoClick, children = _ref2.children, demoUrl = _ref2.demoUrl, _ref2$modalProps = _ref2.modalProps, modalProps = _ref2$modalProps === void 0 ? {} : _ref2$modalProps; var _useToggle = (0, _useToggle2["default"])(), isOpen = _useToggle[0], toggle = _useToggle[1]; var _useState = (0, _react.useState)(views.general), view = _useState[0], setView = _useState[1]; var isGeneral = view === views.general; var setDashboardView = (0, _react.useCallback)(function () { return setView(views.dashboard); }, []); var setGeneralView = (0, _react.useCallback)(function () { return setView(views.general); }, []); var setSearchView = (0, _react.useCallback)(function () { return setView(views.search); }, []); var closeClicked = (0, _react.useCallback)(function () { toggle(); if (onCloseClick) onCloseClick(); }, []); return /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, children(toggle, isOpen), isOpen && /*#__PURE__*/_react["default"].createElement(_layer["default"], { position: "bottom-left", backdrop: true, margin: [5, 17], onClickOutside: toggle, onEsc: toggle }, /*#__PURE__*/_react["default"].createElement(_search["default"], null, function (_ref3) { var searchTerm = _ref3.searchTerm, setSearchTerm = _ref3.setSearchTerm, results = _ref3.results, reset = _ref3.reset; return /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, /*#__PURE__*/_react["default"].createElement(Container, _extends({ width: { max: isGeneral ? "325px" : view === views.dashboard ? "600px" : "100%" }, "data-testid": "documentation-layer" }, modalProps), /*#__PURE__*/_react["default"].createElement(Header, { onClose: closeClicked }, isGeneral && /*#__PURE__*/_react["default"].createElement(_icon.Icon, { color: "text", name: "questionFilled", width: "18px", height: "18px" }), !isGeneral && /*#__PURE__*/_react["default"].createElement(_button.Button, { icon: "arrow_left", neutral: true, small: true, onClick: function onClick() { setGeneralView(); reset(); }, flavour: "borderless", "data-testid": "dashboard-back" }), /*#__PURE__*/_react["default"].createElement(_typography.H5, { margin: [0] }, titles[view] || titles.general)), view !== views.dashboard && /*#__PURE__*/_react["default"].createElement(_search.SearchInput, { value: searchTerm, setSearchTerm: setSearchTerm, setSearchView: setSearchView }), isGeneral && /*#__PURE__*/_react["default"].createElement(_flex["default"], { gap: 6, overflow: { vertical: "auto" }, column: true, padding: [1] }, /*#__PURE__*/_react["default"].createElement(_general["default"], { app: app, onDashboardClick: setDashboardView, onVisitDocumentClick: onVisitDocumentClick, onOpenIssueClick: onOpenIssueClick, onOpenBugClick: onOpenBugClick, onContributeClick: onContributeClick, onSupportClick: onSupportClick, onGoToDemoClick: onGoToDemoClick, demoUrl: demoUrl })), view === views.dashboard && /*#__PURE__*/_react["default"].createElement(_dashboard["default"], null), view === views.search && /*#__PURE__*/_react["default"].createElement(_search.SearchResults, { results: results }))); }))); }; var _default = exports["default"] = Documentation;