/**
* Confirmation Component
* Shows capture summary after submission
*/
const ConfirmationComponent = {
render() {
const capture = app.state.lastCapture;
if (!capture) {
return `
¡Captura guardada exitosamente!
${capture.synced ? '✅ Sincronizada con el servidor' : '⏳ Se sincronizará cuando haya conexión'}
Resumen de Captura
- 👤 Contacto y Puerto
-
Puerto: ${capture.port}
${capture.phone ? `Tel: ${capture.phone}` : ''}
- 📅 Fecha y Hora
- ${this.formatDate(capture.timestamp)}
- 📍 Ubicación
-
${capture.placeName ? `${capture.placeName}
` : ''}
Lat: ${capture.latitude.toFixed(6)}
Lon: ${capture.longitude.toFixed(6)}
- 🐟 Especies
-
${capture.items.map(item => `
${item.commonName || item.customName || this.getSpeciesName(item.speciesId)}:
${item.quantity} ${item.unit === 'lbs' ? 'libras' : 'unidades'}
`).join('
')}
- 📉 Otros Detalles
-
Método: ${capture.fishingMethod}
Profundidad: ${capture.depth} brazadas
`;
},
init() {
// Component initialized
},
formatDate(dateString) {
const date = new Date(dateString);
return date.toLocaleString('es-DO', {
year: 'numeric',
month: 'long',
day: 'numeric',
hour: '2-digit',
minute: '2-digit'
});
},
getSpeciesName(speciesId) {
if (speciesId === 'otro') return 'Otra Especie';
const species = SpeciesSelectorComponent.allSpecies.find(s => s.id === speciesId);
return species ? species.commonName : speciesId;
}
};