HEX
Server: LiteSpeed
System: Linux s3604.bom1.stableserver.net 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
User: dmstechonline (1480)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/dmstechonline/businessclub.dmstech.online/wp-content/themes/rishi/js/headerSearchTrigger.js
import setStyle from "./setStyle";

const headerSearchTrigger = () => {
	let headerSearchbtns = document.querySelectorAll('.header-search-btn'),
		searchField = document.querySelector('.search-form-section .search-field'),
		fadeInInterval,
		fadeOutInterval;

	//fadeInFunction
	function fadeIn(element) {
		searchField.focus();
		clearInterval(fadeInInterval);
		clearInterval(fadeOutInterval);

		element.fadeIn = function (timing) {
			let newValue = 0;

			element.style.display = 'block';
			element.style.opacity = 0;

			fadeInInterval = setInterval(function () {

				if (newValue < 1) {
					newValue += 0.1;
				} else if (newValue === 1) {
					clearInterval(fadeInInterval);
				}

				element.style.opacity = newValue;

			}, timing);

		}

		element.fadeIn(2);
		setStyle(document.body, { overflow: 'hidden' })

	}

	//functionfadeOut
	function fadeOut(element) {
		clearInterval(fadeInInterval);
		clearInterval(fadeOutInterval);

		element.fadeOut = function (timing) {
			let newValue = 1;
			element.style.opacity = 1;

			fadeOutInterval = setInterval(function () {

				if (newValue > 0) {
					newValue -= 0.1;
				} else if (newValue < 0) {
					element.style.opacity = 0;
					element.style.display = 'none';
					clearInterval(fadeOutInterval);
				}

				element.style.opacity = newValue;

			}, timing);

		}

		element.fadeOut(2);
		setStyle(document.body, { overflow: false })
	}
	let currentOpenModal = null;

	if (headerSearchbtns !== null) {
		headerSearchbtns.forEach(function (headerSearchbtn) {
			let modalKey = headerSearchbtn.dataset.modalKey;
			let element = document.querySelector(`.search-toggle-form[data-modal-key="${modalKey}"]`);
			let headerCloseBtn = document.querySelector(`.search-toggle-form[data-modal-key="${modalKey}"] .btn-form-close`);
			let SearchFormFld = document.querySelector(`.search-toggle-form[data-modal-key="${modalKey}"] .search-field`);
			let SearchFormScn = document.querySelector(`.search-toggle-form[data-modal-key="${modalKey}"] .search-submit`);
			headerSearchbtn.addEventListener('click', function (event) {
				event.preventDefault();
				this.classList.add('active');
				fadeIn(element);
				searchField.focus();
				currentOpenModal = element;
			});

			headerCloseBtn.addEventListener('click', function (event) {
				// event.preventDefault();
				fadeOut(element);
				searchField.blur();
				headerSearchbtn.classList.remove('active');
				currentOpenModal = null;
			});

			if (element !== null) {
				element.addEventListener('click', function (event) {
					fadeOut(element);
				})
			}

			document.addEventListener('keyup', function (e) {
				if (e.key == "Escape" && currentOpenModal) {
					fadeOut(currentOpenModal);
					currentOpenModal = null;
					e.stopImmediatePropagation();
				}
			});

			if (SearchFormFld !== null) {
				SearchFormFld.addEventListener('click', function (e) {
					e.stopPropagation();
				})
			}

			if (SearchFormScn !== null) {
				SearchFormScn.addEventListener('click', function (e) {
					e.stopPropagation();
				})
			}
		});
	}
};

export default headerSearchTrigger;