78 lines
2.4 KiB
JavaScript

import { selectId, pushStyles, selectTag, addClasslist } from './helperFunctions.js';
$(function() {
function toggleVisibility(selector, condition) {
$(selector).toggle(condition);
}
function updateDarkMode() {
const isChecked = $("#darkModeCheckbox").is(":checked");
const body = selectTag('body');
if (isChecked) {
addClasslist(body, 'dark-mode');
} else {
body.classList.remove('dark-mode');
}
}
function openClrModal() {
pushStyles(selectId('clr-data-model'), { display: 'flex' });
}
function closeClrModal() {
pushStyles(selectId('clr-data-model'), { display: 'none' });
}
function handleClrModalClick(event) {
const target = event.target;
if (target.classList.contains('cancel-btn')) {
closeClrModal();
} else if (target.tagName === 'BUTTON' && target.textContent === 'Yes') {
localStorage.clear();
location.reload();
}
}
function handleSearchBarKeyup() {
const filterButtons = $('.filter-button').map(function() {
return { element: this, text: $(this).text() };
}).get();
const fuse = new Fuse(filterButtons, {
keys: ['text'],
threshold: 0.3
});
const query = $('#search-bar').val().toLowerCase();
if (query === '') {
// Show all buttons if the search query is empty
$('.filter-button').each(function() {
toggleVisibility(this, true);
});
} else {
const results = fuse.search(query);
$('.filter-button').each(function() {
toggleVisibility(this, false);
});
results.forEach(result => {
toggleVisibility(result.item.element, true);
});
}
}
// fix something very absurd
window.addEventListener('load', () => {
if (!($('#darkModeCheckbox').is(':checked'))) {
$('.footer p').removeAttr('style');
$('.footer p').css('color', 'var(--ctp-macchiato-text)');
}
});
$("#darkModeCheckbox").on("change", updateDarkMode);
updateDarkMode();
selectId('clr-data-modal').addEventListener('click', handleClrModalClick);
$('#search-bar').on('keyup', handleSearchBarKeyup);
});