2024-07-25 16:03:46 +00:00
|
|
|
// SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
|
|
|
|
//
|
|
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
|
|
|
|
// FIXME: this function is copied from @converse. Should not do so.
|
|
|
|
export function getOpenPromise (): any {
|
|
|
|
const wrapper: any = {
|
|
|
|
isResolved: false,
|
|
|
|
isPending: true,
|
|
|
|
isRejected: false
|
|
|
|
}
|
|
|
|
const promise: any = new Promise((resolve, reject) => {
|
|
|
|
wrapper.resolve = resolve
|
|
|
|
wrapper.reject = reject
|
|
|
|
})
|
|
|
|
Object.assign(promise, wrapper)
|
|
|
|
promise.then(
|
|
|
|
function (v: any) {
|
|
|
|
promise.isResolved = true
|
|
|
|
promise.isPending = false
|
|
|
|
promise.isRejected = false
|
|
|
|
return v
|
|
|
|
},
|
|
|
|
function (e: any) {
|
|
|
|
promise.isResolved = false
|
|
|
|
promise.isPending = false
|
|
|
|
promise.isRejected = true
|
2024-09-09 18:01:25 +00:00
|
|
|
throw (e as Error)
|
2024-07-25 16:03:46 +00:00
|
|
|
}
|
|
|
|
)
|
|
|
|
return promise
|
|
|
|
}
|
|
|
|
|
|
|
|
export async function destroyMUC (_converse: any, model: any): Promise<void> {
|
|
|
|
const __ = _converse.__
|
|
|
|
const messages = [__('Are you sure you want to destroy this groupchat?')]
|
|
|
|
// Note: challenge and newjid make no sens for peertube-plugin-livechat,
|
|
|
|
// we remove them comparing to the original function.
|
|
|
|
let fields = [
|
|
|
|
{
|
|
|
|
name: 'reason',
|
|
|
|
label: __('Optional reason for destroying this groupchat'),
|
|
|
|
placeholder: __('Reason'),
|
|
|
|
value: undefined
|
|
|
|
}
|
|
|
|
]
|
|
|
|
try {
|
|
|
|
fields = await _converse.api.confirm(__('Confirm'), messages, fields)
|
|
|
|
const reason = fields.filter(f => f.name === 'reason').pop()?.value
|
|
|
|
const newjid = undefined
|
|
|
|
return model.sendDestroyIQ(reason, newjid).then(() => model.close())
|
|
|
|
} catch (e) {
|
|
|
|
console.error(e)
|
|
|
|
}
|
|
|
|
}
|