47 lines
No EOL
1 KiB
TypeScript
47 lines
No EOL
1 KiB
TypeScript
import {
|
|
writable,
|
|
readable,
|
|
} from 'svelte/store'
|
|
import { _converse } from '@converse/headless/core'
|
|
|
|
export const titleStore = writable('Convo')
|
|
export const softkeysStore = writable({
|
|
left: {
|
|
label: 'Exit',
|
|
callback: function() { console.log('You clicked on SoftLeft') },
|
|
},
|
|
center: {
|
|
label: null,
|
|
callback: function() { console.log('You clicked on Enter') },
|
|
},
|
|
right: {
|
|
label: null,
|
|
callback: function() { console.log('You clicked on SoftRight') },
|
|
}
|
|
})
|
|
|
|
// XMPP info
|
|
export const xmppConnected = readable(false, function start(set) {
|
|
let interval = setInterval(() => {
|
|
let status = _converse.api.connection.connected() || false
|
|
set(status)
|
|
|
|
if (status) clearInterval(interval)
|
|
}, 1000)
|
|
|
|
return function stop() {
|
|
clearInterval(interval)
|
|
}
|
|
})
|
|
|
|
export const xmppChatboxes = readable([], function start(set) {
|
|
let interval = setInterval(() => {
|
|
if (_converse.chatboxes?.length) {
|
|
set([..._converse.chatboxes])
|
|
}
|
|
}, 1000)
|
|
|
|
return function stop() {
|
|
clearInterval(interval)
|
|
}
|
|
}) |