UI: Make preview canvas responsive, scale sizes

This commit is contained in:
2026-06-12 23:54:42 +02:00
parent b8969415f4
commit e13cb05d48
2 changed files with 24 additions and 24 deletions
+7 -7
View File
@@ -77,7 +77,7 @@ export default function App() {
await saveSettings(updated);
setSettings(updated);
setShowEventModal(false);
// Resume start
setPhotoUris([]);
setCaptureHistory([]);
@@ -117,7 +117,7 @@ export default function App() {
const removedUris = updatedUris.splice(-lastCaptureCount, lastCaptureCount);
setPhotoUris(updatedUris);
setCaptureHistory((prev) => prev.slice(0, -1));
// Clean up temp files
for (const uri of removedUris) {
try {
@@ -126,7 +126,7 @@ export default function App() {
console.warn('Failed to delete temp file:', e);
}
}
// Always let user retake
setCurrentScreen('camera');
};
@@ -163,13 +163,13 @@ export default function App() {
<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}
<View
style={StyleSheet.absoluteFill}
pointerEvents={(currentScreen === 'preview' || currentScreen === 'admin') ? 'none' : 'auto'}
>
<CameraScreen
@@ -233,7 +233,7 @@ export default function App() {
</Text>
<TextInput
style={styles.modalInput}
placeholder="Schnappix-Party"
placeholder="z.B. Schnappix-Party"
placeholderTextColor="#666"
value={tempEventName}
onChangeText={setTempEventName}
+17 -17
View File
@@ -699,8 +699,8 @@ const styles = StyleSheet.create({
backgroundColor: '#030308',
},
viewShotContainer: {
width: 480,
height: 320,
width: '100%',
aspectRatio: 1.5,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: THEME.colors.background,
@@ -897,8 +897,8 @@ const styles = StyleSheet.create({
},
// ── Photo Canvases ──
singleCanvas: {
width: 480,
height: 320,
width: '100%',
height: '100%',
backgroundColor: '#fff',
padding: 0,
shadowColor: THEME.colors.gradientGlow,
@@ -913,30 +913,30 @@ const styles = StyleSheet.create({
resizeMode: 'cover',
},
collageCanvas: {
width: 480,
height: 320,
width: '100%',
height: '100%',
backgroundColor: '#ffffff',
padding: 12,
padding: 16,
alignItems: 'center',
justifyContent: 'space-between',
},
collageFooter: {
height: 35,
height: 50,
justifyContent: 'center',
alignItems: 'center',
width: '100%',
borderTopWidth: 0.5,
borderTopWidth: 1,
borderTopColor: '#e0e0e0',
marginTop: 6,
marginTop: 10,
},
collageFooterText: {
fontSize: 10,
fontSize: 16,
fontWeight: 'bold',
color: '#333333',
letterSpacing: 2,
letterSpacing: 3,
},
collageFooterDate: {
fontSize: 8,
fontSize: 12,
color: '#666666',
},
stripCanvas: {},
@@ -987,16 +987,16 @@ const styles = StyleSheet.create({
zIndex: 12,
},
dateOverlayText: {
fontSize: 11,
fontSize: 16,
fontWeight: 'bold',
color: '#FFFFFF',
textShadowColor: 'rgba(0, 0, 0, 0.8)',
textShadowOffset: { width: 1, height: 1 },
textShadowRadius: 3,
backgroundColor: 'rgba(0, 0, 0, 0.35)',
paddingVertical: 2,
paddingHorizontal: 6,
borderRadius: 3,
paddingVertical: 4,
paddingHorizontal: 8,
borderRadius: 6,
},
// ── Loading ──
loadingOverlay: {