Source: helpers/globals.js

import Settings from './settings';

/**
 * Init global variables by merging various settings
 */
const init = () => {
	// Init app config
	var shopConfig = boostPFSConfig.shop;
	var generalConfig = boostPFSConfig.general;
	Globals.shopName = shopConfig.name;
	Globals.shopDomain = shopConfig.domain;
	Globals.defaultCurrency = shopConfig.currency;
	Globals.moneyFormat = shopConfig.money_format; // ${{amount}} USD
	Globals.fileUrl = generalConfig.file_url;
	Globals.collectionId = generalConfig.collection_id;
	Globals.collectionTags = generalConfig.collection_tags;
	Globals.collectionCount = generalConfig.collection_count;
	Globals.currentTags = generalConfig.current_tags;
	Globals.defaultSorting = generalConfig.default_sort_by.trim();
	Globals.swatchExtension = generalConfig.swatch_extension;
	// Init global variable
	Globals.productAvailable = Settings.getSettingValue('general.productAvailable');
	Globals.variantAvailable = Settings.getSettingValue('general.variantAvailable');
	if (Settings.getSettingValue('general.productAndVariantAvailable')) {
		Globals.productAvailable = true;
		Globals.variantAvailable = true;
	}
	Globals.loadProductFirst = Settings.getSettingValue('general.loadProductFirst');
	Globals.searchTermKey = Settings.getSettingValue('search.termKey');
	Globals.mobileStyle = Settings.getSettingValue('general.filterTreeMobileStyle');
	Globals.suggestionTypes = Settings.getSettingValue('search.suggestionTypes');
}

/**
 * The global variable object
 */
var Globals = {
	prefix: 'pf',
	queryParams: {}, // Query params for filter
	instantSearchQueryParams: {}, // Query params for instant search
	internalClick: false, // User click events distinguf with browser events
	imutableFilterTree: ['page', 'sort', 'limit', 'display', '_', 'tab'],
	otherParams: ['page', 'sort', 'limit', 'display', 'tab'],
	hasFilterOptionParam: false,
	scrollData: [],
	// App Config
	shopName: '', 
	shopDomain: '', 
	fileUrl: '', 
	defaultCurrency: '', 
	moneyFormat: '', 
	collectionId: '', 
	collectionTags: '', 
	currentTags: '', 
	defaultSorting: '', 
	swatchExtension: '',
	// Global Variable
	productAvailable: true,
	variantAvailable: true,
	loadProductFirst: false,
	searchTermKey: 'q',
	suggestionCache: {}, 
	currentTerm: '',
	// Init function
	init: init,
}

export default Globals;