Merge remote-tracking branch 'parent/main' into upstream-20240817

This commit is contained in:
KMY 2024-08-17 09:38:31 +09:00
commit 82ffc95733
97 changed files with 1377 additions and 472 deletions

View file

@ -1,36 +1,20 @@
export const logOut = () => {
const form = document.createElement('form');
import api from 'mastodon/api';
const methodInput = document.createElement('input');
methodInput.setAttribute('name', '_method');
methodInput.setAttribute('value', 'delete');
methodInput.setAttribute('type', 'hidden');
form.appendChild(methodInput);
export async function logOut() {
try {
const response = await api(false).delete<{ redirect_to?: string }>(
'/auth/sign_out',
{ headers: { Accept: 'application/json' }, withCredentials: true },
);
const csrfToken = document.querySelector<HTMLMetaElement>(
'meta[name=csrf-token]',
);
const csrfParam = document.querySelector<HTMLMetaElement>(
'meta[name=csrf-param]',
);
if (csrfParam && csrfToken) {
const csrfInput = document.createElement('input');
csrfInput.setAttribute('name', csrfParam.content);
csrfInput.setAttribute('value', csrfToken.content);
csrfInput.setAttribute('type', 'hidden');
form.appendChild(csrfInput);
if (response.status === 200 && response.data.redirect_to)
window.location.href = response.data.redirect_to;
else
console.error(
'Failed to log out, got an unexpected non-redirect response from the server',
response,
);
} catch (error) {
console.error('Failed to log out, response was an error', error);
}
const submitButton = document.createElement('input');
submitButton.setAttribute('type', 'submit');
form.appendChild(submitButton);
form.method = 'post';
form.action = '/auth/sign_out';
form.style.display = 'none';
document.body.appendChild(form);
submitButton.click();
};
}