import type { IAuditLog, IRoom } from '@rocket.chat/core-typings'; import { Box, Field, FieldLabel, FieldRow, FieldError, TextInput, Button, ButtonGroup } from '@rocket.chat/fuselage'; import type { Dispatch, SetStateAction } from 'react'; import { useController } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import type { AuditFields } from '../hooks/useAuditForm'; import { useAuditForm } from '../hooks/useAuditForm'; import { useSendTelemetryMutation } from '../hooks/useSendTelemetryMutation'; import DateRangePicker from './forms/DateRangePicker'; import DirectTab from './tabs/DirectTab'; import OmnichannelTab from './tabs/OmnichannelTab'; import RoomsTab from './tabs/RoomsTab'; import UsersTab from './tabs/UsersTab'; export type AuditFormProps = { type: IAuditLog['fields']['type']; onSubmit?: (payload: { type: IAuditLog['fields']['type'] } & AuditFields) => void; setSelectedRoom: Dispatch>; }; const AuditForm = ({ type, onSubmit, setSelectedRoom }: AuditFormProps) => { const { t } = useTranslation(); const form = useAuditForm(); const { control, handleSubmit, register } = form; const { field: dateRangeField, fieldState: dateRangeFieldState } = useController({ name: 'dateRange', control }); const sendTelemetryMutation = useSendTelemetryMutation(); const submit = () => { sendTelemetryMutation.mutate({ params: [{ eventName: 'updateCounter', settingsId: 'Message_Auditing_Apply_Count', timestamp: Date.now() }], }); onSubmit?.({ type, ...form.getValues() }); }; return (
{t('Message')} {t('Date')} {dateRangeFieldState.error?.type === 'required' && {t('Required_field', { field: t('Date') })}} {dateRangeFieldState.error?.type === 'validate' && {dateRangeFieldState.error.message}} {type === '' && } {type === 'u' && } {type === 'd' && } {type === 'l' && }
); }; export default AuditForm;