import Sqids from 'sqids';

let sqids = new Sqids({ minLength: 6, alphabet: 'abcdefghijklmnopqrstuvwxyz0123456789' });

export function hashcode(str) {
	for (var i = 0, h = 9; i < str.length; ) h = Math.imul(h ^ str.charCodeAt(i++), 9 ** 9);
	return h ^ (h >>> 9);
}

// for mnemonic display
export function shorthandCode(str) {
	return sqids.encode([hashcode(str) & 0xffff]);
}

// for tag display
export function hashColor(str) {
	const hash = hashcode(str);
	return `hsl(${hash % 360}, ${65 + (hash % 30) + 1}%, ${85 + (hash % 10) + 1}%)`;
}

export function formatSecondsToHms(s) {
	s = Number(s);
	var h = Math.floor(s / 3600);
	var m = Math.ceil((s % 3600) / 60);

	var hDisplay = h > 0 ? h + (h == 1 ? ' hr' : ' hrs') + (m > 0 ? ', ' : '') : '';
	var mDisplay = m > 0 ? m + (m == 1 ? ' min' : ' mins') : '';
	return hDisplay + mDisplay;
}

export function formatDate(unix_timestamp) {
	return new Date(unix_timestamp).toISOString().split('T')[0];
}

export function formatTrackTime(s) {
	return new Date(s * 1000).toISOString().slice(11, 19);
}
