Upgrade logs to track all button interactions for debugging
This commit is contained in:
@@ -205,6 +205,7 @@ export default function CameraScreen({
|
||||
|
||||
// Cancel capture process
|
||||
const handleLocalCancel = async () => {
|
||||
logger.log('Action: Cancelled camera burst capture');
|
||||
isCancelledRef.current = true;
|
||||
if (burstTimerRef.current) clearTimeout(burstTimerRef.current);
|
||||
if (countdownTimerRef.current) clearTimeout(countdownTimerRef.current);
|
||||
@@ -380,12 +381,14 @@ export default function CameraScreen({
|
||||
};
|
||||
|
||||
const handleSettingsTap = () => {
|
||||
logger.log('Action: Tapped settings button');
|
||||
setEnteredPassword('');
|
||||
setErrorText('');
|
||||
setPasswordModalVisible(true);
|
||||
};
|
||||
|
||||
const handlePasswordSubmit = () => {
|
||||
logger.log(`Action: Submitted admin password (correct: ${enteredPassword === adminPassword})`);
|
||||
if (enteredPassword === adminPassword) {
|
||||
setPasswordModalVisible(false);
|
||||
setTimeout(() => {
|
||||
|
||||
@@ -162,14 +162,17 @@ export default function PreviewScreen({
|
||||
}, []);
|
||||
|
||||
const handleAddEmoji = useCallback((emoji: string) => {
|
||||
logger.log(`Action: Added emoji sticker: ${emoji}`);
|
||||
addSticker('emoji', emoji);
|
||||
}, [addSticker]);
|
||||
|
||||
const handleAddDateSticker = useCallback((format: 'date' | 'datetime') => {
|
||||
logger.log(`Action: Added date sticker: ${format}`);
|
||||
addSticker('text', formatDate(format));
|
||||
}, [addSticker, formatDate]);
|
||||
|
||||
const handleAddEventSticker = useCallback(() => {
|
||||
logger.log('Action: Added event sticker');
|
||||
const date = formatDate('date');
|
||||
addSticker('text', `${eventText} • ${date}`);
|
||||
}, [addSticker, formatDate, eventText]);
|
||||
@@ -179,6 +182,7 @@ export default function PreviewScreen({
|
||||
}, []);
|
||||
|
||||
const handleStickerDelete = useCallback((id: string) => {
|
||||
logger.log(`Action: Deleted sticker: ${id}`);
|
||||
setStickers((prev) => prev.filter((s) => s.id !== id));
|
||||
setSelectedStickerId(null);
|
||||
}, []);
|
||||
@@ -227,6 +231,7 @@ export default function PreviewScreen({
|
||||
|
||||
// ── Actions ──
|
||||
const handlePrint = async () => {
|
||||
logger.log('Action: Clicked Print button');
|
||||
if (idleTimerRef.current) clearTimeout(idleTimerRef.current);
|
||||
if (!mountedRef.current) return;
|
||||
if (isProcessing) return;
|
||||
@@ -262,6 +267,7 @@ export default function PreviewScreen({
|
||||
|
||||
// Saves to gallery without printing
|
||||
const handleSaveOnly = async () => {
|
||||
logger.log('Action: Clicked Save button');
|
||||
if (idleTimerRef.current) clearTimeout(idleTimerRef.current);
|
||||
if (!mountedRef.current) return;
|
||||
if (isProcessing) return;
|
||||
@@ -342,6 +348,7 @@ export default function PreviewScreen({
|
||||
}, [resetIdleTimer]);
|
||||
|
||||
const handleRetakeClick = async () => {
|
||||
logger.log('Action: Clicked Retake button');
|
||||
if (idleTimerRef.current) clearTimeout(idleTimerRef.current);
|
||||
if (!mountedRef.current) return;
|
||||
if (isProcessing) return;
|
||||
@@ -509,9 +516,9 @@ export default function PreviewScreen({
|
||||
|
||||
{/* Layout Selection */}
|
||||
<View style={styles.layoutSelector}>
|
||||
<TouchableOpacity
|
||||
<TouchableOpacity
|
||||
style={[styles.layoutBtn, layout === 'single' && styles.layoutBtnActive]}
|
||||
onPress={() => setLayout('single')}
|
||||
onPress={() => { logger.log('Action: Selected layout single'); setLayout('single'); }}
|
||||
>
|
||||
<Text style={styles.layoutBtnText}>Einzelbild</Text>
|
||||
</TouchableOpacity>
|
||||
@@ -523,7 +530,7 @@ export default function PreviewScreen({
|
||||
layout === 'duo' && styles.layoutBtnActive,
|
||||
]}
|
||||
disabled={photoUris.length < 2}
|
||||
onPress={() => setLayout('duo')}
|
||||
onPress={() => { logger.log('Action: Selected layout duo'); setLayout('duo'); }}
|
||||
>
|
||||
<Text style={styles.layoutBtnText}>Duo (2)</Text>
|
||||
</TouchableOpacity>
|
||||
@@ -535,7 +542,7 @@ export default function PreviewScreen({
|
||||
layout === 'strip' && styles.layoutBtnActive,
|
||||
]}
|
||||
disabled={photoUris.length < 3}
|
||||
onPress={() => setLayout('strip')}
|
||||
onPress={() => { logger.log('Action: Selected layout strip'); setLayout('strip'); }}
|
||||
>
|
||||
<Text style={styles.layoutBtnText}>Streifen (3)</Text>
|
||||
</TouchableOpacity>
|
||||
@@ -547,7 +554,7 @@ export default function PreviewScreen({
|
||||
layout === 'grid' && styles.layoutBtnActive,
|
||||
]}
|
||||
disabled={photoUris.length < 4}
|
||||
onPress={() => setLayout('grid')}
|
||||
onPress={() => { logger.log('Action: Selected layout grid'); setLayout('grid'); }}
|
||||
>
|
||||
<Text style={styles.layoutBtnText}>Raster (4)</Text>
|
||||
</TouchableOpacity>
|
||||
@@ -559,9 +566,9 @@ export default function PreviewScreen({
|
||||
|
||||
{/* Editing Tools Row */}
|
||||
<View style={styles.editToolsRow}>
|
||||
<TouchableOpacity
|
||||
<TouchableOpacity
|
||||
style={[styles.editToolBtn, showStickerTray && styles.editToolBtnActive]}
|
||||
onPress={() => setShowStickerTray(!showStickerTray)}
|
||||
onPress={() => { logger.log(`Action: Toggled sticker tray ${!showStickerTray}`); setShowStickerTray(!showStickerTray); }}
|
||||
>
|
||||
<FontAwesomeIcon
|
||||
icon={faFaceGrinStars}
|
||||
@@ -573,12 +580,35 @@ export default function PreviewScreen({
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
|
||||
<TouchableOpacity
|
||||
style={[styles.editToolBtn, dateOverlay !== 'off' && styles.editToolBtnActive]}
|
||||
onPress={() => {
|
||||
setDateOverlay((prev) => {
|
||||
const nextMode = prev === 'off' ? 'date' : prev === 'date' ? 'datetime' : 'off';
|
||||
logger.log(`Action: Toggled date overlay to ${nextMode}`);
|
||||
return nextMode;
|
||||
});
|
||||
}}
|
||||
>
|
||||
<FontAwesomeIcon
|
||||
icon={faCalendarDays}
|
||||
size={16}
|
||||
color={dateOverlay !== 'off' ? THEME.colors.text : THEME.colors.accent}
|
||||
/>
|
||||
<Text style={[styles.editToolText, dateOverlay !== 'off' && styles.editToolTextActive]}>
|
||||
Datum
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
|
||||
{frameMode === 'available' && photoUris.length === 1 && (
|
||||
<TouchableOpacity
|
||||
style={[styles.editToolBtn, selectedFrameId !== null && styles.editToolBtnActive]}
|
||||
onPress={() => {
|
||||
if (selectedFrameId !== null) {
|
||||
logger.log('Action: Removed frame');
|
||||
setSelectedFrameId(null);
|
||||
} else {
|
||||
logger.log('Action: Toggled frame selection');
|
||||
}
|
||||
// FramePicker is shown below
|
||||
}}
|
||||
@@ -599,7 +629,10 @@ export default function PreviewScreen({
|
||||
{frameMode === 'available' && photoUris.length === 1 && (
|
||||
<FramePicker
|
||||
selectedFrameId={selectedFrameId}
|
||||
onSelectFrame={setSelectedFrameId}
|
||||
onSelectFrame={(id) => {
|
||||
logger.log(`Action: Selected frame ID: ${id}`);
|
||||
setSelectedFrameId(id);
|
||||
}}
|
||||
availableFrameIds={availableFrameIds}
|
||||
/>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user