misuzu/assets/typescript/User.ts

47 lines
1 KiB
TypeScript
Raw Normal View History

interface CurrentUserInfo {
user_id: number;
username: string;
user_background_settings: number;
user_colour: number;
colour: Colour;
}
let userInfo: CurrentUserInfo;
function getRawCurrentUserInfo(): CurrentUserInfo
{
const userInfoElement: HTMLDivElement = document.getElementById('js-user-info') as HTMLDivElement;
if (!userInfoElement)
return null;
return JSON.parse(userInfoElement.textContent) as CurrentUserInfo;
}
function refreshCurrentUserInfo(): void
{
userInfo = getRawCurrentUserInfo();
if (userInfo)
userInfo.colour = new Colour(userInfo.user_colour);
}
function getCurrentUser(attribute: string = null)
{
if (attribute) {
if (!userInfo) {
return '';
}
return userInfo[attribute] || '';
}
return userInfo || null;
}
function userInit(): void
{
refreshCurrentUserInfo();
console.log(`You are ${getCurrentUser('username')} with user id ${getCurrentUser('user_id')} and colour ${getCurrentUser('colour').hex}.`);
}