Add deep debugging logs to PreviewScreen to trace fatal crashes during render/image load
This commit is contained in:
@@ -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({
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user