@atlaskit/global-search
Version:
A cross-product search component (batteries included)
49 lines (45 loc) • 1.6 kB
JavaScript
import { DEFAULT_AB_TEST } from '../api/CrossProductSearchClient';
import memoizeOne from 'memoize-one';
import deepEqual from 'deep-equal';
const FASTER_SEARCH_EXPERIMENT = 'faster-search';
const SEARCH_EXTENSIONS_COMPLEX_EXPERIMENT = 'search-extensions-complex';
const SPACEBALLS_EXPERIMENT = 'spaceballs';
const isInFasterSearchExperiment = abTest => {
return abTest.experimentId === FASTER_SEARCH_EXPERIMENT;
};
const isInSearchExtensionsComplexExperiment = abTest => {
return abTest.experimentId === SEARCH_EXTENSIONS_COMPLEX_EXPERIMENT;
};
const isInSpaceballsExperiment = abTest => {
return abTest.experimentId === SPACEBALLS_EXPERIMENT;
};
export const DEFAULT_FEATURES = {
useUrsForBootstrapping: false,
isAutocompleteEnabled: false,
isNavAutocompleteEnabled: false,
complexSearchExtensionsEnabled: false,
disableJiraPreQueryPeopleSearch: false,
isInFasterSearchExperiment: false,
spaceballsExperimentEnabled: false,
abTest: DEFAULT_AB_TEST
};
export const createFeatures = memoizeOne(({
abTest,
useUrsForBootstrapping,
disableJiraPreQueryPeopleSearch,
enablePreQueryFromAggregator,
isAutocompleteEnabled,
isNavAutocompleteEnabled
}) => {
return {
abTest,
useUrsForBootstrapping,
disableJiraPreQueryPeopleSearch,
enablePreQueryFromAggregator,
isInFasterSearchExperiment: isInFasterSearchExperiment(abTest),
isAutocompleteEnabled,
isNavAutocompleteEnabled,
complexSearchExtensionsEnabled: isInSearchExtensionsComplexExperiment(abTest),
spaceballsExperimentEnabled: isInSpaceballsExperiment(abTest)
};
}, deepEqual);