const MszRedirectsBsky = async () => {
const loading = new MszLoading({ element: '.js-loading', size: 2, inline: true });
const statusBig = document.querySelector('.js-status-big');
const statusSmall = document.querySelector('.js-status-small');
const setStatusSmall = body => {
$removeChildren(statusSmall);
$appendChild(statusSmall, body);
};
setStatusSmall(<>Resolving ATProto DID for @{BSKY_HANDLE}...>);
try {
const { body } = await $xhr.get(`${location.protocol}//${BSKY_HANDLE}/.well-known/atproto-did`);
if(typeof body !== 'string' || !body.startsWith('did:'))
throw new Error('Was unable to resolve the given handle.');
const url = BSKY_FORMAT.replace('%s', body);
setStatusSmall(<>Redirecting to {url}...>);
location.replace(url);
} catch(ex) {
await loading.icon.stop();
loading.icon.batsu();
let errorText = ex.toString();
if(errorText.startsWith('['))
errorText = 'Something went wrong.';
statusBig.textContent = 'Profile not found!';
setStatusSmall({errorText});
}
};