UNPKG

react-selectize

Version:

A Stateless & Flexible Select component for React inspired by Selectize

83 lines (63 loc) 2.66 kB
'use strict'; exports.__esModule = true; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var _runTransitionHook = require('./runTransitionHook'); var _runTransitionHook2 = _interopRequireDefault(_runTransitionHook); function useBasename(createHistory) { return function () { var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; var basename = options.basename; var historyOptions = _objectWithoutProperties(options, ['basename']); var history = createHistory(historyOptions); function stripBasename(location) { if (basename && location.basename == null) { if (location.pathname.indexOf(basename) === 0) { location.pathname = location.pathname.substring(basename.length); location.basename = basename; } else { location.basename = ''; } } return location; } function addBasename(path) { return basename ? basename + path : path; } // Override all read methods with basename-aware versions. function listenBefore(hook) { return history.listenBefore(function (location, callback) { _runTransitionHook2['default'](hook, stripBasename(location), callback); }); } function listen(listener) { return history.listen(function (location) { listener(stripBasename(location)); }); } // Override all write methods with basename-aware versions. function pushState(state, path) { history.pushState(state, addBasename(path)); } function replaceState(state, path) { history.replaceState(state, addBasename(path)); } function createPath(path) { return history.createPath(addBasename(path)); } function createHref(path) { return history.createHref(addBasename(path)); } return _extends({}, history, { listenBefore: listenBefore, listen: listen, pushState: pushState, replaceState: replaceState, createPath: createPath, createHref: createHref }); }; } exports['default'] = useBasename; module.exports = exports['default'];