Fix 5 hidden edge cases: IPP decode, settings race, PreviewScreen state sync, burst timeout leak, and logger spam
This commit is contained in:
@@ -66,9 +66,7 @@ export default function PreviewScreen({
|
||||
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[]>([]);
|
||||
@@ -224,11 +222,10 @@ export default function PreviewScreen({
|
||||
if (!mountedRef.current) return;
|
||||
if (isProcessing) return;
|
||||
setIsProcessing(true);
|
||||
setStatusMessage('Dein Foto wird vorbereitet...');
|
||||
try {
|
||||
setStatusMessage('Bild wird generiert...');
|
||||
const printUri = await captureComposite(currentPhoto);
|
||||
if (!mountedRef.current) return;
|
||||
setStatusMessage('Dein Foto wird vorbereitet...');
|
||||
|
||||
setStatusMessage('Druckauftrag wird an Drucker gesendet...');
|
||||
await printImageLocal(printUri, {
|
||||
@@ -259,10 +256,10 @@ export default function PreviewScreen({
|
||||
if (!mountedRef.current) return;
|
||||
if (isProcessing) return;
|
||||
setIsProcessing(true);
|
||||
setStatusMessage('Bild wird generiert...');
|
||||
try {
|
||||
const saveUri = await captureComposite(currentPhoto);
|
||||
if (!mountedRef.current) return;
|
||||
setStatusMessage('Bild wird generiert...');
|
||||
|
||||
setStatusMessage('Wird in Galerie gespeichert...');
|
||||
await saveToGallery(saveUri);
|
||||
@@ -293,10 +290,10 @@ export default function PreviewScreen({
|
||||
}
|
||||
|
||||
setIsProcessing(true);
|
||||
setStatusMessage('Wird gespeichert...');
|
||||
try {
|
||||
const capturedUri = await captureComposite(state.currentPhoto);
|
||||
if (!mountedRef.current) return;
|
||||
setStatusMessage('Wird gespeichert...');
|
||||
await saveToGallery(capturedUri);
|
||||
if (!mountedRef.current) return;
|
||||
setStatusMessage('Erfolgreich gespeichert!');
|
||||
@@ -333,10 +330,10 @@ export default function PreviewScreen({
|
||||
if (isProcessing) return;
|
||||
if (stickers.length > 0 || layout !== 'single' || activeFrame || dateOverlay !== 'off') {
|
||||
setIsProcessing(true);
|
||||
setStatusMessage('Wird vor dem Wiederholen gespeichert...');
|
||||
try {
|
||||
const capturedUri = await captureComposite(currentPhoto);
|
||||
if (!mountedRef.current) return;
|
||||
setStatusMessage('Wird vor dem Wiederholen gespeichert...');
|
||||
await saveToGallery(capturedUri);
|
||||
if (!mountedRef.current) return;
|
||||
} catch (e) {
|
||||
@@ -659,6 +656,8 @@ const styles = StyleSheet.create({
|
||||
height: 320,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
overflow: 'hidden',
|
||||
backgroundColor: THEME.colors.background,
|
||||
},
|
||||
controlPanel: {
|
||||
flex: 0.8,
|
||||
|
||||
Reference in New Issue
Block a user