(function () { if (!window.recentSearches) { init(); } function init() { const RECENT_SEARCHES_LIMIT = 5; const RECENT_SEARCHES_DATA_ATTR = "add-to-recent-searches"; const STORAGE_KEY = "buscas-recentes"; window.recentSearches = { get: getRecentSearches, save: saveSearch, init, DATA_ATTRIBUTE: RECENT_SEARCHES_DATA_ATTR, }; // Inicializa buscando inputs com o data-attribute function init(scope = document) { const input = scope.querySelector( `input[data-${RECENT_SEARCHES_DATA_ATTR}="true"]` ); if (!input) return; const form = input.form; if (!form) return; // Captura submit do formulário (Enter OU clique no botão) form.addEventListener("submit", function (e) { const value = input.value.trim(); if (value) { saveSearch(value); } }); // Escuta Enter diretamente no input (caso o form não seja padrão) input.addEventListener("keydown", function (e) { if (e.key === "Enter") { const value = input.value.trim(); if (value) saveSearch(value); } }); } function saveSearch(search) { const recent = getRecentSearches().filter(v => v !== search); recent.unshift(search); if (recent.length > RECENT_SEARCHES_LIMIT) { recent.length = RECENT_SEARCHES_LIMIT; } localStorage.setItem(STORAGE_KEY, JSON.stringify(recent)); } function getRecentSearches() { return JSON.parse(localStorage.getItem(STORAGE_KEY) || "[]"); } } })();