/** * assignment-drawer.js * ===================== * Right overlay drawer: agent profile, shift assignment buttons, * save / cancel actions. */ import { rightDrawer, editMode, selectedAgent, selectedDate, pendingShift, formatDateForId } from '../../services/planner-state.js'; import { SHIFTS, getAssignment, assignments, saveAssignment as doSave } from '../../services/data-service.js'; export default { name: 'AssignmentDrawer', setup() { const currentAssignmentLabel = Vue.computed(() => { if (pendingShift.value) return pendingShift.value.label; if (!selectedAgent.value || !selectedDate.value) return null; const a = getAssignment(selectedAgent.value.id, selectedDate.value); return a ? a.label : null; }); const setPendingShift = (shift) => { pendingShift.value = shift; }; const saveAssignment = () => { doSave(selectedAgent, selectedDate, pendingShift, rightDrawer); }; return { rightDrawer, editMode, selectedAgent, selectedDate, pendingShift, formatDateForId, shifts: SHIFTS, currentAssignmentLabel, setPendingShift, saveAssignment }; }, template: `
{{ editMode === 'assignment' ? 'Edit Assignment' : 'Agent Details' }}
{{ selectedAgent.name }}
{{ selectedAgent.dept }} • {{ selectedAgent.role }}
{{ selectedAgent.hubName }}
` };