События
Для отлеживания изменений на странице вы можете использовать шину событий.
vue
<script lang="ts" setup>
import { Injections, type Issue } from "luna";
import { onMounted } from "vue";
import { inject } from "@vue/runtime-core";
const $bus = inject(Injections.$bus);
const onIssueUpdated = (data: {issue: Issue, initiator: string, fields?: string[]}) => {
console.log(data.issue);
}
onMounted(() => {
$bus.on('issue.updated', onIssueUpdated)
})
</script>Пользовательские события
Если вы на бекэнде добавили WebItem с событием, вы можете подписаться на него:
vue
<script lang="ts" setup>
import { Injections, type Issue } from "luna";
import { onMounted } from "vue";
import { inject } from "@vue/runtime-core";
const $bus = inject(Injections.$bus);
const onMyActions = (data: {name: string, issue?: Issue, initiator?: string, params: Record<string, string>}) => {
console.log(data.issue);
}
onMounted(() => {
$bus.on('action.custom', onMyActions)
})
</script>