I asked chatgpt with my code, but it kept giving me the code all in one line, half of the code was structured correctly, and the ending was all collapsed into one line, here some part of the code
const toggleSearchView = () => {
setShowSearch(!showSearch);
if (!showSearch) setShowPlaylist(true);
if (showSearch) setSearchQuery("");
};
const pickImage = async () => {
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.Images,
allowsEditing: true,
aspect: [4, 3],
quality: 1,
});
if (!result.canceled && result.assets?.length) {
setNewPlaylistImage(result.assets[0].uri);
}
};
// ---------- SWIPE & FLIP LOGIC ----------
// Updated panResponder: if swiped beyond threshold, call previous or next track.
const panResponder = useRef(
PanResponder.create({
onStartShouldSetPanResponder: (evt, gestureState) => {
const { pageX, pageY } = evt.nativeEvent;
// If touch is inside card area, let tap-to-flip handle it.
if (
pageX >= CARD_X_START &&
pageX <= CARD_X_START + CARD_WIDTH &&
pageY >= CARD_Y_START &&
pageY <= CARD_Y_START + CARD_HEIGHT
) {
return false;
}
return true;
},
onMoveShouldSetPanResponder: (evt, gestureState) =>
Math.abs(gestureState.dx) > Math.abs(gestureState.dy) &&
Math.abs(gestureState.dx) > 5,
onPanResponderMove: (evt, gestureState) => {
swipeX.setValue(gestureState.dx);
},
onPanResponderRelease: (evt, gestureState) => {
if (gestureState.dx < -SWIPE_THRESHOLD) {
// Swiped left: next track\n playNextTrack();\n } else if (gestureState.dx > SWIPE_THRESHOLD) {\n // Swiped right: previous track\n playPreviousTrack();\n // And the Code in one line continues till the end