Add deep debugging logs to PreviewScreen to trace fatal crashes during render/image load

This commit is contained in:
2026-05-31 20:46:06 +02:00
parent 63df4ae4f0
commit 858674c9d4
2 changed files with 33 additions and 4 deletions
+3 -1
View File
@@ -10,7 +10,8 @@ import {
TouchableWithoutFeedback,
} from 'react-native';
import { CameraView, useCameraPermissions } from 'expo-camera';
import { File, Paths } from 'expo-file-system';
import * as FileSystem from 'expo-file-system';
import { File, Paths } from 'expo-file-system/next';
import * as ImageManipulator from 'expo-image-manipulator';
import { LinearGradient } from 'expo-linear-gradient';
import Animated, {
@@ -282,6 +283,7 @@ export default function CameraScreen({
capturedUri = path;
} else {
// Fallback Camera Capture
logger.log(`Capturing from built-in camera fallback. Size constraint: ${pictureSize || 'default'}`);
console.log('Capturing from built-in camera fallback...');
if (expoCameraRef.current) {
const photo = await expoCameraRef.current.takePictureAsync({
+30 -3
View File
@@ -65,6 +65,10 @@ export default function PreviewScreen({
const [layout, setLayout] = useState<CollageLayout>('single');
const [isProcessing, setIsProcessing] = useState<boolean>(false);
const [statusMessage, setStatusMessage] = useState<string>('');
React.useEffect(() => {
logger.log('PreviewScreen: render function executed');
});
// Sticker state
const [stickers, setStickers] = useState<StickerData[]>([]);
@@ -320,7 +324,14 @@ export default function PreviewScreen({
<View style={[styles.collageCanvas, styles.stripCanvas]}>
<View style={styles.stripContent}>
{photoUris.slice(-3).map((uri, idx) => (
<Image key={idx} source={uri} style={styles.stripImage} contentFit="cover" />
<Image
key={idx}
source={uri}
style={styles.stripImage}
contentFit="cover"
onLoad={() => logger.log(`Image loaded successfully: ${uri}`)}
onError={(e) => logger.error(`Image load failed: ${uri}`, e)}
/>
))}
</View>
<View style={styles.collageFooter}>
@@ -334,7 +345,14 @@ export default function PreviewScreen({
<View style={[styles.collageCanvas, styles.gridCanvas]}>
<View style={styles.gridContainer}>
{photoUris.slice(-4).map((uri, idx) => (
<Image key={idx} source={uri} style={styles.gridImage} contentFit="cover" />
<Image
key={idx}
source={uri}
style={styles.gridImage}
contentFit="cover"
onLoad={() => logger.log(`Grid Image loaded successfully: ${uri}`)}
onError={(e) => logger.error(`Grid Image load failed: ${uri}`, e)}
/>
))}
</View>
<View style={styles.collageFooter}>
@@ -347,7 +365,14 @@ export default function PreviewScreen({
<View style={[styles.collageCanvas, styles.duoCanvas]}>
<View style={styles.duoContainer}>
{photoUris.slice(-2).map((uri, idx) => (
<Image key={idx} source={uri} style={styles.duoImage} contentFit="cover" />
<Image
key={idx}
source={uri}
style={styles.duoImage}
contentFit="cover"
onLoad={() => logger.log(`Duo Image loaded successfully: ${uri}`)}
onError={(e) => logger.error(`Duo Image load failed: ${uri}`, e)}
/>
))}
</View>
<View style={styles.collageFooter}>
@@ -362,6 +387,8 @@ export default function PreviewScreen({
source={currentPhoto}
style={styles.singleImage}
contentFit="cover"
onLoad={() => logger.log(`Single Image loaded successfully: ${currentPhoto}`)}
onError={(e) => logger.error(`Single Image load failed: ${currentPhoto}`, e)}
/>
</View>
);