42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import {getCurrentlySelectedList} from "../userlists";
|
|
|
|
export function init() {
|
|
const modalElem = document.querySelector<HTMLDivElement>('#delete-list-modal');
|
|
|
|
if (!modalElem) {
|
|
return;
|
|
}
|
|
|
|
modalElem.addEventListener('show.bs.modal', () => {
|
|
const listSelect = document.querySelector<HTMLSelectElement>('#list-select');
|
|
const text = listSelect?.selectedOptions[0].text ?? '';
|
|
|
|
const listnameElem = modalElem.querySelector<HTMLSpanElement>('.list-name');
|
|
if (!listnameElem) {
|
|
return;
|
|
}
|
|
listnameElem.textContent = text;
|
|
})
|
|
|
|
modalElem.querySelector<HTMLButtonElement>('.js--yes')
|
|
?.addEventListener('click', async () => {
|
|
const id = getCurrentlySelectedList();
|
|
|
|
const formData = new FormData();
|
|
formData.append('id', id?.toString() ?? '-1');
|
|
|
|
const response = await fetch(
|
|
`/api/web/keys/list/delete`,
|
|
{
|
|
method: 'POST',
|
|
body: formData
|
|
}
|
|
);
|
|
|
|
if (!response.ok) {
|
|
throw new Error(response.statusText);
|
|
}
|
|
|
|
window.location.reload();
|
|
})
|
|
}
|