diff --git a/resources/js/components/tickets/detail/TicketDetailBlocker.vue b/resources/js/components/tickets/detail/TicketDetailBlocker.vue
new file mode 100644
index 0000000..a3ce18a
--- /dev/null
+++ b/resources/js/components/tickets/detail/TicketDetailBlocker.vue
@@ -0,0 +1,204 @@
+
+
+
+
+
diff --git a/resources/js/components/tickets/detail/TicketDetailContent.vue b/resources/js/components/tickets/detail/TicketDetailContent.vue
index 35012dd..4f6c36c 100644
--- a/resources/js/components/tickets/detail/TicketDetailContent.vue
+++ b/resources/js/components/tickets/detail/TicketDetailContent.vue
@@ -3,14 +3,13 @@ import { useLocalization } from '@/composables/useLocalization';
import { Card, CardContent, CardHeader } from '@/components/ui/card';
import { useForm, useRemember } from '@inertiajs/vue3';
-import { computed, ref, toRef, unref } from 'vue';
+import { computed, ref, toRef, unref, watch } from 'vue';
import ProjectTicketController from '@/actions/App/Http/Controllers/ProjectTicketController';
import InputError from '@/components/InputError.vue';
import FormFeedback from '@/components/FormFeedback.vue';
import { Button } from '@/components/ui/button';
import TicketFormField from '@/components/tickets/TicketFormField.vue';
import TicketFormFields from '@/components/tickets/TicketFormFields.vue';
-import { Label } from '@/components/ui/label';
import { useFormProtection } from '@/composables/useFormProtection';
import {
acceptanceCriteriaToEditorState,
@@ -77,6 +76,16 @@ const savedFormData = () => ({
const form = useForm(draftKey, savedFormData());
+watch(
+ () => [props.ticket.is_blocked, props.ticket.blocked_comment] as const,
+ ([isBlocked, blockedComment]) => {
+ form.is_blocked = isBlocked;
+ form.blocked_comment = blockedComment ?? '';
+ form.defaults('is_blocked', isBlocked);
+ form.defaults('blocked_comment', blockedComment ?? '');
+ },
+);
+
const acceptanceCriteriaPreviewItems = computed(
() => savedAcceptanceCriteria.value,
);
@@ -459,44 +468,6 @@ const submit = (): void => {
/>
-