+
+
{{ event.title }}
@@ -101,7 +106,8 @@ import { computed, ref, onMounted, onUnmounted } from 'vue'
import { isSameDay } from 'date-fns'
import type { CalendarEvent, CalendarDropPayload } from '../model/types'
import { isToday } from '../lib/week'
-import { getPriorityEventClasses } from '../lib/calendar-styles'
+import { DEFAULT_EVENT_CLASSES, EVENT_SIDE_STRIPE_CLASSES } from '../lib/calendar-styles'
+import { getPriorityStripeClass } from '@/features/tasks/lib/priority'
import { useCreateSlotDrag } from '../lib/use-create-slot-drag'
import { usePointerDnd } from '../lib/use-pointer-dnd'
import DayColumn from './DayColumn.vue'
@@ -156,7 +162,7 @@ const ghostClasses = computed(() => {
if (!draggedEvent.value) return ''
return draggedEvent.value.completed
? 'bg-muted border-border'
- : getPriorityEventClasses(draggedEvent.value.priority)
+ : DEFAULT_EVENT_CLASSES
})
const now = ref(new Date())
diff --git a/alfy-bot-frontend/src/features/tasks/lib/priority.ts b/alfy-bot-frontend/src/features/tasks/lib/priority.ts
index e067b87..8620908 100644
--- a/alfy-bot-frontend/src/features/tasks/lib/priority.ts
+++ b/alfy-bot-frontend/src/features/tasks/lib/priority.ts
@@ -17,6 +17,16 @@ export const getPriorityClasses = (priority?: Priority): string => {
return PRIORITY_COLORS[priority]
}
+const PRIORITY_STRIPE_COLORS: Record
= {
+ high: 'bg-red-500',
+ medium: 'bg-yellow-500',
+ low: 'bg-green-500',
+}
+
export const getPriorityColor = (priority: Priority): string => {
return PRIORITY_ICON_COLORS[priority]
}
+
+export const getPriorityStripeClass = (priority: Priority): string => {
+ return PRIORITY_STRIPE_COLORS[priority]
+}
diff --git a/alfy-bot-frontend/src/features/tasks/model/types.ts b/alfy-bot-frontend/src/features/tasks/model/types.ts
index 93933a4..80061a4 100644
--- a/alfy-bot-frontend/src/features/tasks/model/types.ts
+++ b/alfy-bot-frontend/src/features/tasks/model/types.ts
@@ -66,7 +66,8 @@ export interface TaskCardEmits {
(e: 'open', task: Task): void
}
-export type TaskPatch = Omit, 'dueDate'> & {
+export type TaskPatch = Omit, 'dueDate' | 'priority'> & {
rescheduleScope?: RescheduleScope
dueDate?: Date | null
+ priority?: Priority | null
}
diff --git a/alfy-bot-frontend/src/features/tasks/ui/PriorityPicker.vue b/alfy-bot-frontend/src/features/tasks/ui/PriorityPicker.vue
index c78bbdf..9700c21 100644
--- a/alfy-bot-frontend/src/features/tasks/ui/PriorityPicker.vue
+++ b/alfy-bot-frontend/src/features/tasks/ui/PriorityPicker.vue
@@ -13,10 +13,10 @@ import type { Priority } from '../model/types'
import PriorityPickerContent from './PriorityPickerContent.vue'
defineProps<{
- modelValue: Priority | undefined
+ modelValue: Priority | null | undefined
}>()
defineEmits<{
- (e: 'update:modelValue', value: Priority | undefined): void
+ (e: 'update:modelValue', value: Priority | null): void
}>()
diff --git a/alfy-bot-frontend/src/features/tasks/ui/PriorityPickerContent.vue b/alfy-bot-frontend/src/features/tasks/ui/PriorityPickerContent.vue
index e11f0a6..8deef1d 100644
--- a/alfy-bot-frontend/src/features/tasks/ui/PriorityPickerContent.vue
+++ b/alfy-bot-frontend/src/features/tasks/ui/PriorityPickerContent.vue
@@ -12,7 +12,7 @@