import { useTranslation } from 'react-i18next'; import { extractApiError } from '@/api/client'; import type { C2Callback } from '@/api/types'; interface C2CallbackPickerProps { callbacks: C2Callback[]; isLoading: boolean; isError: boolean; error: unknown; selectedId: number | null; onSelect: (id: number) => void; rowTestId?: string; } export function C2CallbackPicker({ callbacks, isLoading, isError, error, selectedId, onSelect, rowTestId = 'c2-callback-row', }: C2CallbackPickerProps): JSX.Element { const { t } = useTranslation(); if (isLoading) { return
{t('state.loading')}
; } if (isError) { return ({extractApiError(error, t('state.error.desc'))}
); } if (callbacks.length === 0) { return{t('c2.modal.picker.empty')}
; } return (| {t('c2.modal.picker.col.displayId')} | {t('c2.modal.picker.col.active')} | {t('c2.modal.picker.col.host')} | {t('c2.modal.picker.col.user')} | {t('c2.modal.picker.col.domain')} | {t('c2.modal.picker.col.lastCheckin')} |
|---|---|---|---|---|---|
| {cb.display_id} | {cb.active ? t('c2.modal.picker.status.active') : t('c2.modal.picker.status.inactive')} | {cb.host} | {cb.user} | {cb.domain} | {cb.last_checkin} |