Skip to content

Commit e0524cc

Browse files
[crashmanager] Fix "assign existing bug" after vue3 migration
1 parent 5b46752 commit e0524cc

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

server/frontend/src/components/Signatures/AssignBtn.vue

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<script>
66
import swal from "sweetalert";
7-
import { createVNode, defineComponent, getCurrentInstance, render } from "vue";
7+
import { defineComponent, h, ref, render } from "vue";
88
import { assignExternalBug, errorParser } from "../../helpers";
99
import AssignBtnForm from "./AssignBtnForm.vue";
1010
@@ -26,16 +26,19 @@ export default defineComponent({
2626
},
2727
methods: {
2828
async link() {
29+
const externalBugId = ref(null);
30+
const selectedProvider = ref(null);
31+
2932
// Create a container div for the form
3033
const container = document.createElement("div");
3134
3235
// Create the form component with props
33-
const formCtor = createVNode(AssignBtnForm, {
36+
const formCtor = h(AssignBtnForm, {
3437
providers: this.providers,
38+
onUpdateBug: (bug) => (externalBugId.value = bug),
39+
onUpdateProvider: (provider) => (selectedProvider.value = provider),
3540
});
3641
37-
formCtor.appContext = getCurrentInstance()?.appContext;
38-
3942
// Mount the component to get the actual DOM element
4043
render(formCtor, container);
4144
@@ -49,8 +52,8 @@ export default defineComponent({
4952
try {
5053
const data = await assignExternalBug(
5154
this.bucket,
52-
formCtor.props.provider,
53-
formCtor.props.bug,
55+
externalBugId.value,
56+
selectedProvider.value,
5457
);
5558
window.location.href = data.url;
5659
} catch (err) {

server/frontend/src/components/Signatures/AssignBtnForm.vue

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,25 @@
22
<div class="table">
33
<div class="tr">
44
<label class="td" for="provider">Bug provider</label>
5-
<select v-model="selectedProvider" class="td" name="provider">
5+
<select
6+
v-model="selectedProvider"
7+
class="td"
8+
name="provider"
9+
@change="$emit('update-provider', selectedProvider)"
10+
>
611
<option v-for="p in providers" :key="p.id" :value="p.id">
712
{{ p.hostname }}
813
</option>
914
</select>
1015
</div>
1116
<div class="tr">
1217
<label class="td" for="bug_id">Bug ID</label>
13-
<input v-model="externalBugId" name="bug_id" maxlength="255" />
18+
<input
19+
v-model="externalBugId"
20+
maxlength="255"
21+
name="bug_id"
22+
@change="$emit('update-bug', externalBugId)"
23+
/>
1424
</div>
1525
</div>
1626
</template>
@@ -26,13 +36,14 @@ export default defineComponent({
2636
},
2737
},
2838
29-
setup(props) {
39+
setup(props, context) {
3040
const externalBugId = ref(null);
3141
const selectedProvider = ref(null);
3242
3343
onMounted(() => {
3444
if (props.providers.length > 0) {
3545
selectedProvider.value = props.providers[0].id;
46+
context.emit("update-provider", selectedProvider.value);
3647
}
3748
});
3849

0 commit comments

Comments
 (0)