feat: admin Visas tab — table + edit dialog + visibility toggle
Activates the previously-disabled Visas tab on /admin/logistics. VisasTab renders a flat table joined per attendee per project, sorted by status priority. Status filter pills mirror the Confirmations tab. The header carries a "Visible to teams" Switch backed by a new logistics.getVisaVisibility query and the existing setVisaVisibility mutation; toggling it controls whether members see their own status. VisaEditDialog is a per-row editor with a status dropdown, nationality input, three native date inputs (invitation / appointment / decision), and a notes textarea. No file uploads — the platform deliberately holds zero document artifacts. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -113,7 +113,11 @@ describe('logistics.listVisaApplications', () => {
|
||||
|
||||
expect(result).toHaveLength(3)
|
||||
// REQUESTED (0) → APPOINTMENT_BOOKED (2) → GRANTED (3)
|
||||
expect(result.map((r) => r.status)).toEqual(['REQUESTED', 'APPOINTMENT_BOOKED', 'GRANTED'])
|
||||
expect(result.map((r: (typeof result)[number]) => r.status)).toEqual([
|
||||
'REQUESTED',
|
||||
'APPOINTMENT_BOOKED',
|
||||
'GRANTED',
|
||||
])
|
||||
expect(result[0].id).toBe(app.id)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user