Compare commits
2
Commits
2b5a259fe5
...
96e3e5c0e6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96e3e5c0e6 | ||
|
|
ac8f0722d1 |
@@ -81,54 +81,22 @@ export default function App() {
|
||||
};
|
||||
|
||||
// 3. Conditional Screen Rendering
|
||||
const renderScreen = () => {
|
||||
switch (currentScreen) {
|
||||
case 'camera':
|
||||
return (
|
||||
return (
|
||||
<GestureHandlerRootView style={styles.container}>
|
||||
<SafeAreaView style={styles.container}>
|
||||
<StatusBar hidden={true} />
|
||||
|
||||
{/*
|
||||
Keep CameraScreen ALWAYS mounted in the background to prevent
|
||||
Android expo-camera hardware crashes when unmounting right after capture
|
||||
*/}
|
||||
<View style={StyleSheet.absoluteFill}>
|
||||
<CameraScreen
|
||||
countdownDuration={settings.countdownDuration}
|
||||
onPhotoCaptured={handlePhotoCaptured}
|
||||
onBurstComplete={handleBurstComplete}
|
||||
onCancel={handleReset}
|
||||
isIdle={false}
|
||||
burstCount={settings.burstCount}
|
||||
burstIntervalSec={settings.burstIntervalSec}
|
||||
frameMode={settings.frameMode}
|
||||
selectedFrameId={settings.selectedFrameId}
|
||||
/>
|
||||
);
|
||||
case 'preview':
|
||||
return (
|
||||
<PreviewScreen
|
||||
photoUris={photoUris}
|
||||
printerIp={settings.printerIp}
|
||||
onRetakeLast={handleRetakeLast}
|
||||
onAddAnother={handleAddAnother}
|
||||
onReset={handleReset}
|
||||
frameMode={settings.frameMode}
|
||||
initialFrameId={settings.selectedFrameId}
|
||||
availableFrameIds={settings.availableFrameIds}
|
||||
dateOverlay={settings.dateOverlay}
|
||||
dateOverlayPosition={settings.dateOverlayPosition}
|
||||
eventText={settings.eventText}
|
||||
/>
|
||||
);
|
||||
case 'admin':
|
||||
return (
|
||||
<AdminScreen
|
||||
currentSettings={settings}
|
||||
onSave={handleSaveSettings}
|
||||
onClose={() => setCurrentScreen('home')}
|
||||
/>
|
||||
);
|
||||
default:
|
||||
return (
|
||||
<CameraScreen
|
||||
countdownDuration={settings.countdownDuration}
|
||||
onPhotoCaptured={handlePhotoCaptured}
|
||||
onBurstComplete={handleBurstComplete}
|
||||
onCancel={handleReset}
|
||||
isIdle={true}
|
||||
isIdle={currentScreen === 'home'}
|
||||
onStartBooth={handleStartBooth}
|
||||
onNavigateToAdmin={handleOpenAdmin}
|
||||
adminPassword={settings.adminPassword}
|
||||
@@ -138,15 +106,37 @@ export default function App() {
|
||||
frameMode={settings.frameMode}
|
||||
selectedFrameId={settings.selectedFrameId}
|
||||
/>
|
||||
);
|
||||
}
|
||||
};
|
||||
</View>
|
||||
|
||||
return (
|
||||
<GestureHandlerRootView style={styles.container}>
|
||||
<SafeAreaView style={styles.container}>
|
||||
<StatusBar hidden={true} />
|
||||
{renderScreen()}
|
||||
{/* Overlay PreviewScreen if active */}
|
||||
{currentScreen === 'preview' && (
|
||||
<View style={StyleSheet.absoluteFill}>
|
||||
<PreviewScreen
|
||||
photoUris={photoUris}
|
||||
printerIp={settings.printerIp}
|
||||
onRetakeLast={handleRetakeLast}
|
||||
|
||||
Reference in New Issue
Block a user