Skip to content

Instantly share code, notes, and snippets.

// Uppercase first letter of a string
function capitalize(str = '') {
return str ? str.charAt(0).toUpperCase() + str.substring(1) : '';
}
// Focused tab
const isBrowserTabFocused = () => !document.hidden;
isBrowserTabFocused();
// Redirect to...
const redirect = (url, replace = false) => {
if (asLink) {
window.location.href = url;
}
// Redirect to...
const redirect = (url, replace = false) => {
if (asLink) {
window.location.href = url;
} else {
window.location.replace(url);
}
};
redirect('https://overment.com');
// Redirect to...
const redirect = (url, replace = false) => {
if (replace) {
return window.location.replace(url);
}
window.location.href = url;
};
redirect('https://overment.com');
// Named parameters
// Instead this:
articles(ids, published, orderBy, order)
articles([1, 4, 6], true, 'created_at', 'DESC')
// Do this:
articles({ ids, published, orderBy, order })
articles({ ids: [1, 4,6 ], published: true, orderBy: 'created_at', order: 'ASC'})
// Rename object keys
const renameKeys = (keysMap, obj) =>
Object.keys(obj).reduce(
(acc, key) => ({
...acc,
...{ [keysMap[key] || key]: obj[key] },
}),
{}
);
// Remove property from object with rest
const data = { id: 1, name: 'overment', www: 'overment.com' }
const { ['www']: removed, ...rest} = data;
console.log(rest);
// Inspiration from: Todd Motto
// Toggle visibility (CSS: .hidden { display: none })
const hide = (els, visibilityClass = 'hidden') => [...els].forEach(el => el.classList.toggle(visibilityClass));
// Example: hide all img elements
hide(document.querySelectorAll('img'));
// Smooth scroll to top
const scrollTop = () => {
const currentPosition = document.documentElement.scrollTop || document.body.scrollTop;
if (currentPosition > 0) {
window.requestAnimationFrame(scrollTop);
window.scrollTo(0, currentPosition - currentPosition / 8);
}
};
scrollTop();
// Check if the element contains another element
const contains = (element, child) => element !== child && element.contains(child);
const element = document.querySelector('.parent');
const child = document.querySelector('.child');
contains(element, child); // true | false