Refactor: Complete barcodeImage removal and hub3aText migration
This commit completes the migration from storing bitmap barcodes to using decoded HUB-3A text strings, removing all legacy code while maintaining backward compatibility during the transition period. Database & Server Actions: - billActions: Removed commented legacy barcodeImage code - locationActions: Updated field references in projections - monthActions: Use hub3aText when copying bills to new months - printActions: Support both hub3aText and barcodeImage during migration - Added @deprecated annotation to barcodeImage field - Filter includes bills with either field - Pass both fields to support gradual migration Barcode Decoder: - Removed barcodeImage field from DecodeResult type - Deleted copyBarcodeImage() function (58 lines) - No longer generating bitmaps during decode - Barcodes now generated on-demand from hub3aText - Cleaner separation: decoder extracts text, component renders barcode UI Components: - Pdf417Barcode: Added optional className prop for styling flexibility - Removed unnecessary wrapper div - Conditional styling (use className or default dimensions) - PrintPreview: Use Pdf417Barcode component with fallback to legacy barcodeImage - ViewBillCard: Major cleanup and migration support - Removed unused imports (React, updateOrAddBill, useLocale) - Removed unused middleware function - Removed unused variables and hidden input - Prefer hub3aText with Pdf417Barcode, fallback to barcodeImage - Clear legacy support comments Migration Strategy: All rendering code now follows the pattern: 1. Prefer hub3aText (new field) when available 2. Fallback to barcodeImage (legacy field) if needed 3. Clear comments marking legacy support code 4. Allows gradual migration without breaking existing bills Benefits: - More efficient storage (text vs base64 bitmap) - Barcodes generated on-demand (not stored) - Cleaner, more maintainable code - Consistent use of Pdf417Barcode component - Removed ~60 lines of unused code 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
'use client';
|
||||
|
||||
import { PrintBarcodeData } from '../lib/actions/printActions';
|
||||
import { Pdf417Barcode } from './Pdf417Barcode';
|
||||
|
||||
export interface PrintPreviewProps {
|
||||
data: PrintBarcodeData[];
|
||||
@@ -141,12 +142,21 @@ export const PrintPreview: React.FC<PrintPreviewProps> = ({ data, year, month, t
|
||||
</td>
|
||||
<td className="border-2 border-gray-800 px-3 py-1.5 text-center">
|
||||
<div className="flex justify-center items-center">
|
||||
<img
|
||||
src={item.barcodeImage.startsWith('data:') ? item.barcodeImage : `data:image/png;base64,${item.barcodeImage}`}
|
||||
alt={`Barcode for ${item.billName}`}
|
||||
className="max-h-28 w-auto border border-gray-300 rounded print-barcode-img"
|
||||
style={{ maxWidth: '270px' }}
|
||||
/>
|
||||
{
|
||||
item.hub3aText ?
|
||||
<Pdf417Barcode hub3aText={item.hub3aText} className="max-h-28 w-auto border border-gray-300 rounded print-barcode-img" />
|
||||
: (
|
||||
// LEGACY SUPPORT ... untill all bills have been migrated
|
||||
item.barcodeImage ?
|
||||
<img
|
||||
src={item.barcodeImage.startsWith('data:') ? item.barcodeImage : `data:image/png;base64,${item.barcodeImage}`}
|
||||
alt={`Barcode for ${item.billName}`}
|
||||
className="max-h-28 w-auto border border-gray-300 rounded print-barcode-img"
|
||||
style={{ maxWidth: '270px' }}
|
||||
/> : null
|
||||
)
|
||||
}
|
||||
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
Reference in New Issue
Block a user