"use strict";
var __assign = (this && this.__assign) || function () {
    __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;
    };
    return __assign.apply(this, arguments);
};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
};
var __rest = (this && this.__rest) || function (s, e) {
    var t = {};
    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
        t[p] = s[p];
    if (s != null && typeof Object.getOwnPropertySymbols === "function")
        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                t[p[i]] = s[p[i]];
        }
    return t;
};
exports.__esModule = true;
exports.MobileNav = exports.useRouteChanged = void 0;
var core_1 = require("@chakra-ui/core");
var react_router_dom_1 = require("react-router-dom");
var react_1 = __importStar(require("react"));
var md_1 = require("react-icons/md");
var ExperimentsNav_1 = require("./ExperimentsNav");
exports.useRouteChanged = function (callback) {
    var history = react_router_dom_1.useHistory();
    react_1.useEffect(function () {
        var handleRouteChange = function (url) {
            callback();
            console.log('App is changing to: ', url);
        };
        var unlisten = history.listen(handleRouteChange);
        return function () {
            unlisten();
        };
    }, [history, callback]);
};
exports.MobileNav = function (_a) {
    var experimentsTree = _a.experimentsTree, rest = __rest(_a, ["experimentsTree"]);
    var _b = core_1.useDisclosure(), isOpen = _b.isOpen, onToggle = _b.onToggle, onClose = _b.onClose;
    exports.useRouteChanged(onClose);
    var colorMode = core_1.useColorMode().colorMode;
    return (react_1["default"].createElement(react_1["default"].Fragment, null,
        react_1["default"].createElement(core_1.IconButton
        // display={{ sm: 'inline-flex', md: 'none' }}
        , __assign({ "aria-label": 'Navigation Menu', fontSize: '30px', variant: 'ghost', icon: md_1.MdDehaze, onClick: onToggle }, rest)),
        react_1["default"].createElement(core_1.Drawer, { initialFocusRef: null, size: 'xs', isOpen: isOpen, placement: 'left', onClose: onClose },
            react_1["default"].createElement(core_1.DrawerOverlay, null),
            react_1["default"].createElement(core_1.DrawerContent, { bg: {
                    light: '#EDF2F7',
                    dark: '#1A202C'
                }[colorMode], height: '100vh', overflowY: 'auto' },
                react_1["default"].createElement(core_1.DrawerBody, { p: 0 },
                    react_1["default"].createElement(ExperimentsNav_1.ExperimentsNav, { p: '4', experimentsTree: experimentsTree }),
                    react_1["default"].createElement(core_1.Box, { h: '100px' }))))));
};
//# sourceMappingURL=MobileNav.js.map