'use client'; import { Text, View, StyleSheet } from '@react-pdf/renderer'; export interface PdfColumn { key: string; header: string; flex: number; align?: 'left' | 'center' | 'right'; } const styles = StyleSheet.create({ tableRow: { flexDirection: 'row', }, tableHeader: { backgroundColor: '#F5F5F5', }, tableCellHeader: { flex: 1, borderRightWidth: 1, borderRightColor: '#000000', borderRightStyle: 'solid', padding: 4, fontSize: 7, fontWeight: 'bold', backgroundColor: '#F5F5F5', borderBottomWidth: 1, borderBottomColor: '#000000', borderBottomStyle: 'solid', paddingVertical: 12, textAlign: 'center', }, tableCellHeaderRight: { flex: 1, borderRightWidth: 1, borderRightColor: '#000000', borderRightStyle: 'solid', padding: 4, fontSize: 7, fontWeight: 'bold', backgroundColor: '#F5F5F5', textAlign: 'right', borderBottomWidth: 1, borderBottomColor: '#000000', borderBottomStyle: 'solid', paddingVertical: 12, }, }); interface PdfTheadProps { columns: PdfColumn[]; } export const PdfThead = ({ columns }: PdfTheadProps) => { return ( {columns.map((column, index) => { const align = column.align || 'center'; const isLastColumn = index === columns.length - 1; const cellStyle = align === 'right' ? [ styles.tableCellHeaderRight, { flex: column.flex, textAlign: 'right' as const, borderRightWidth: isLastColumn ? 0 : 1, }, ] : [ styles.tableCellHeader, { flex: column.flex, textAlign: align as 'left' | 'center' | 'right', borderRightWidth: isLastColumn ? 0 : 1, }, ]; return ( {column.header} ); })} ); };