project-nomad/admin/inertia/hooks/useServiceInstallationActivity.ts
2026-01-15 15:54:59 -08:00

29 lines
842 B
TypeScript

import { useEffect, useState } from 'react'
import { useTransmit } from 'react-adonis-transmit'
import { InstallActivityFeedProps } from '~/components/InstallActivityFeed'
export default function useServiceInstallationActivity() {
const { subscribe } = useTransmit()
const [installActivity, setInstallActivity] = useState<InstallActivityFeedProps['activity']>([])
useEffect(() => {
const unsubscribe = subscribe('service-installation', (data: any) => {
setInstallActivity((prev) => [
...prev,
{
service_name: data.service_name ?? 'unknown',
type: data.status ?? 'unknown',
timestamp: new Date().toISOString(),
message: data.message ?? 'No message provided',
},
])
})
return () => {
unsubscribe()
}
}, [])
return installActivity
}