feat(psa): add Update Ticket modal with note posting and status update

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Michael Chihlas
2026-03-14 23:39:49 -04:00
parent 5ade3be44e
commit 74875d74e1
6 changed files with 400 additions and 11 deletions

View File

@@ -25,6 +25,7 @@ import { Button } from '@/components/ui/Button'
import { integrationsApi, sessionPsaApi } from '@/api/integrations'
import { TicketPickerModal } from '@/components/session/TicketPickerModal'
import { TicketLinkIndicator } from '@/components/session/TicketLinkIndicator'
import { UpdateTicketModal } from '@/components/session/UpdateTicketModal'
import type { PSATicketInfo } from '@/types/integrations'
interface LocationState {
@@ -72,6 +73,7 @@ export function TreeNavigationPage() {
// PSA ticket link state
const [hasConnection, setHasConnection] = useState(false)
const [showTicketPicker, setShowTicketPicker] = useState(false)
const [showUpdateModal, setShowUpdateModal] = useState(false)
const [ticketInfo, setTicketInfo] = useState<PSATicketInfo | null>(null)
const handleCopyCommand = (text: string) => {
@@ -697,6 +699,7 @@ export function TreeNavigationPage() {
hasConnection={hasConnection}
onLinkClick={() => setShowTicketPicker(true)}
onUnlink={handleTicketUnlink}
onUpdateClick={session.psa_ticket_id ? () => setShowUpdateModal(true) : undefined}
ticketInfo={ticketInfo}
/>
)}
@@ -1305,6 +1308,13 @@ export function TreeNavigationPage() {
onLinked={handleTicketLinked}
/>
)}
{session && (
<UpdateTicketModal
open={showUpdateModal}
onClose={() => setShowUpdateModal(false)}
sessionId={session.id}
/>
)}
</div>
</div>