Update trigger button functionality and remove unused code

This commit is contained in:
kwaroran
2024-04-10 10:34:45 +09:00
parent 1a750dc6c6
commit 3d7d34334c
4 changed files with 54 additions and 23 deletions

52
src/ts/observer.ts Normal file
View File

@@ -0,0 +1,52 @@
import { get } from "svelte/store";
import { runTrigger } from "./process/triggers";
import { CurrentCharacter, CurrentChat } from "./stores";
import { runCharacterJS } from "./plugins/embedscript";
export function startObserveDom(){
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
const node = mutation.target as HTMLElement;
const triggerName = node.getAttribute('risu-trigger');
const btnEvent = node.getAttribute('risu-btn');
if(triggerName){
node.addEventListener('click', async () => {
const currentChar = get(CurrentCharacter)
if(currentChar.type === 'group'){
return;
}
const triggerResult = await runTrigger(currentChar, 'manual', {
chat: get(CurrentChat),
manualName: triggerName,
});
if(triggerResult){
CurrentChat.set(triggerResult.chat);
}
}, {
passive: true,
});
}
if(btnEvent){
node.addEventListener('click',async ()=>{
await runCharacterJS({
code: null,
mode: 'onButtonClick',
data: btnEvent
})
}, {passive: true})
}
});
});
observer.observe(document.body, {
childList: true,
subtree: true,
attributeFilter: ['risu-trigger', 'risu-btn'],
});
}