frontend_nyla/src/components/Popup/ViewForm.tsx
2025-08-22 13:09:24 +02:00

40 lines
No EOL
998 B
TypeScript

import styles from './ViewForm.module.css';
import { EditFieldConfig } from './EditForm';
// ViewForm props - for display-only purposes
export interface ViewFormProps<T = any> {
data: T;
fields: EditFieldConfig[];
className?: string;
}
// ViewForm component - displays data in read-only format
export function ViewForm<T extends Record<string, any>>({
data,
fields,
className = ''
}: ViewFormProps<T>) {
// Render field in view-only mode
const renderField = (field: EditFieldConfig) => {
const value = data[field.key];
return (
<div className={styles.fieldGroup} key={field.key}>
<label className={styles.fieldLabel}>{field.label}</label>
<div className={styles.fieldValue}>
{field.formatter ? field.formatter(value) : (value || 'N/A')}
</div>
</div>
);
};
return (
<div className={`${styles.viewForm} ${className}`}>
{fields.map(field => renderField(field))}
</div>
);
}
export default ViewForm;