feat: Implement UI enhancements and fix burst bug
This commit is contained in:
@@ -6,6 +6,7 @@ import {
|
||||
Image,
|
||||
TouchableOpacity,
|
||||
ActivityIndicator,
|
||||
BackHandler,
|
||||
} from 'react-native';
|
||||
import ViewShot from 'react-native-view-shot';
|
||||
import { LinearGradient } from 'expo-linear-gradient';
|
||||
@@ -96,6 +97,18 @@ export default function PreviewScreen({
|
||||
// Idle Timer state
|
||||
const idleTimerRef = useRef<any>(null);
|
||||
|
||||
// Hardware Back Press
|
||||
useEffect(() => {
|
||||
const onBackPress = () => {
|
||||
onReset();
|
||||
return true; // Prevent default behavior (closing the app)
|
||||
};
|
||||
BackHandler.addEventListener('hardwareBackPress', onBackPress);
|
||||
return () => {
|
||||
BackHandler.removeEventListener('hardwareBackPress', onBackPress);
|
||||
};
|
||||
}, [onReset]);
|
||||
|
||||
// Frame state
|
||||
const [selectedFrameId, setSelectedFrameId] = useState<string | null>(
|
||||
frameMode === 'always' ? initialFrameId : null
|
||||
@@ -106,7 +119,7 @@ export default function PreviewScreen({
|
||||
const currentPhoto = photoUris[photoUris.length - 1];
|
||||
|
||||
// Get the active frame asset
|
||||
const activeFrame = selectedFrameId && photoUris.length === 1
|
||||
const activeFrame = selectedFrameId
|
||||
? FRAMES.find((f) => f.id === selectedFrameId)
|
||||
: null;
|
||||
|
||||
@@ -578,7 +591,7 @@ export default function PreviewScreen({
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
|
||||
{frameMode === 'available' && photoUris.length === 1 && (
|
||||
{frameMode === 'available' && (
|
||||
<TouchableOpacity
|
||||
style={[styles.editToolBtn, selectedFrameId !== null && styles.editToolBtnActive]}
|
||||
onPress={() => {
|
||||
@@ -603,8 +616,8 @@ export default function PreviewScreen({
|
||||
)}
|
||||
</View>
|
||||
|
||||
{/* Frame Picker (when mode = available and only 1 photo) */}
|
||||
{frameMode === 'available' && photoUris.length === 1 && (
|
||||
{/* Frame Picker (when mode = available) */}
|
||||
{frameMode === 'available' && (
|
||||
<FramePicker
|
||||
selectedFrameId={selectedFrameId}
|
||||
onSelectFrame={(id) => {
|
||||
|
||||
Reference in New Issue
Block a user