From 583b0d034e4f0eb413f8bd4c39051da3eb44344f Mon Sep 17 00:00:00 2001 From: orfelorfel23 Date: Sun, 5 Jul 2026 11:01:38 +0200 Subject: [PATCH] Add digital-only mode by allowing empty printer IP --- src/screens/AdminScreen.tsx | 10 ++++------ src/screens/PreviewScreen.tsx | 24 +++++++++++++----------- src/services/printer.ts | 5 +++-- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/screens/AdminScreen.tsx b/src/screens/AdminScreen.tsx index 79709b04..07810ff6 100644 --- a/src/screens/AdminScreen.tsx +++ b/src/screens/AdminScreen.tsx @@ -213,12 +213,10 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS const ipTrimmed = printerIp.trim(); const ipRegex = /^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/; - if (!ipTrimmed) { - Alert.alert('Ungültige Eingabe', 'Die Drucker-IP-Adresse darf nicht leer sein.'); - return; - } - if (!ipRegex.test(ipTrimmed)) { - Alert.alert('Ungültige Eingabe', 'Bitte gib eine gültige IP-Adresse ein (z.B. 192.168.1.100).'); + + // IP may be empty to enable digital-only mode + if (ipTrimmed !== '' && !ipRegex.test(ipTrimmed)) { + Alert.alert('Ungültige Eingabe', 'Bitte gib eine gültige IP-Adresse ein oder lass das Feld leer (für rein digitalen Modus).'); return; } diff --git a/src/screens/PreviewScreen.tsx b/src/screens/PreviewScreen.tsx index 13be1db5..7c7b4875 100644 --- a/src/screens/PreviewScreen.tsx +++ b/src/screens/PreviewScreen.tsx @@ -635,17 +635,19 @@ export default function PreviewScreen({ {/* Action Buttons */} - - - - JETZT DRUCKEN - - + {!!printerIp?.trim() && ( + + + + JETZT DRUCKEN + + + )} diff --git a/src/services/printer.ts b/src/services/printer.ts index 1473a82f..d474a918 100644 --- a/src/services/printer.ts +++ b/src/services/printer.ts @@ -18,8 +18,9 @@ export interface PrintOptions { export async function printImageLocal(imageUri: string, options: PrintOptions): Promise { const { ipAddress, jobName = 'Schnappix Photo', username = 'Schnappix Kiosk' } = options; - if (!ipAddress) { - throw new Error('Drucker-IP-Adresse ist erforderlich.'); + if (!ipAddress || ipAddress.trim() === '') { + console.log('Drucken übersprungen: Keine Drucker-IP-Adresse hinterlegt (Digitaler Modus).'); + return; } // 1. Read the image file from local storage as Base64 and convert to binary Buffer