clone of repo on github
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

66 lines
1.4 KiB

export function formatDate(unixtimestamp: number) {
const months = [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec'
];
const date = new Date(unixtimestamp * 1000);
const day = date.getDate();
const month = months[date.getMonth()];
const year = date.getFullYear();
const formattedDate = `${day} ${month} ${year}`;
return formattedDate;
}
let serial = 0;
export function next(): number {
serial++;
return serial;
}
export function scrollTabIntoView(el: string | HTMLElement, wait: boolean) {
function scrollTab() {
const element =
typeof el === 'string' ? document.querySelector(`[id^="wikitab-v0-${el}"]`) : el;
if (!element) return;
element.scrollIntoView({
behavior: 'smooth',
inline: 'start'
});
}
if (wait) {
setTimeout(() => {
scrollTab();
}, 1);
} else {
scrollTab();
}
}
export function isElementInViewport(el: string | HTMLElement) {
const element = typeof el === 'string' ? document.querySelector(`[id^="wikitab-v0-${el}"]`) : el;
if (!element) return;
const rect = element.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
);
}