Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
AppUms_Lecturer
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tungnq
AppUms_Lecturer
Commits
5fe2ad7c
Commit
5fe2ad7c
authored
Sep 11, 2025
by
tungnq
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FIX: Sửa thành công lỗi bấm nhiều lần ko vào mail luôn
parent
cdff63f7
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
25 deletions
+47
-25
view.js
src/screens/email/view.js
+47
-25
No files found.
src/screens/email/view.js
View file @
5fe2ad7c
...
...
@@ -57,41 +57,57 @@ const EmailHomeView = props => {
const
panResponder
=
PanResponder
.
create
({
onMoveShouldSetPanResponder
:
(
evt
,
gestureState
)
=>
{
// console.log('gestureState', gestureState);
// console.log('gestureState
L1
', gestureState);
const
moveX
=
Math
.
abs
(
gestureState
.
dx
);
console
.
log
(
'moveX'
,
moveX
);
//
console.log('moveX', moveX);
const
isSwipingLeft
=
moveX
<
deleteThreshold
;
console
.
log
(
'isSwipingLeft'
,
isSwipingLeft
);
//
console.log('isSwipingLeft', isSwipingLeft);
return
isSwipingLeft
;
},
// onPanResponderMove: (evt, gestureState) => {
// console.log('gestureState', gestureState.dx);
onPanResponderMove
:
(
evt
,
gestureState
)
=>
{
// console.log('gestureState L2', gestureState.dx);
if
(
gestureState
.
vx
<
0
&&
gestureState
.
dx
>
-
100
&&
gestureState
.
dx
<
0
)
{
console
.
log
(
'gestureState L2'
,
gestureState
.
dx
,
gestureState
.
vx
,);
translateX
.
setValue
(
-
100
);
setSwipedEmailId
(
item
.
id
);
}
else
{
translateX
.
setValue
(
0
);
}
// if (gestureState.dx > -100 && gestureState.dx < 0 ) {
// translateX.setValue(-100);
// }else if(gestureState.dx >0){
// translateX.setValue(0);
// }
//
},
},
onPanResponderRelease
:
(
evt
,
gestureState
)
=>
{
console
.
log
(
'deleteThreshold'
,
-
deleteThreshold
);
// console.log('gestureState L3', gestureState);
if
(
Math
.
abs
(
gestureState
.
dx
)
>=
0
&&
gestureState
.
vx
===
0
)
{
console
.
log
(
'gestureState L3'
,
gestureState
.
dx
,
gestureState
.
vx
,);
// // Nếu di chuyển đủ lớn, vuốt để xóa
// if (gestureState.dx < -deleteThreshold ) {
// // Hiển thị nút xóa
// Animated.timing(translateX, {
// toValue: -100,
// duration: 300,
// useNativeDriver: true,
// }).start();
// setSwipedEmailId(item.id);
// } else {
// // Nếu di chuyển sang phải (hoặc không vuốt đủ xa), quay lại vị trí ban đầu
// Animated.spring(translateX, {
// toValue: 0,
// useNativeDriver: true,
// }).start(() => {
// setSwipedEmailId(null);
// });
// }
if
(
gestureState
.
dx
<
-
deleteThreshold
)
{
// Show delete button
Animated
.
timing
(
translateX
,
{
toValue
:
-
100
,
duration
:
300
,
useNativeDriver
:
true
,
}).
start
();
setSwipedEmailId
(
item
.
id
);
}
else
{
Animated
.
spring
(
translateX
,
{
toValue
:
0
,
useNativeDriver
:
true
,
}).
start
(()
=>
{
setSwipedEmailId
(
null
);
});
}
navigation
.
navigate
(
SCREENNAME
.
DETAILEMAIL
);
}
// } else {
// // Nếu không có chuyển động đủ lớn (chỉ bấm), chuyển tới màn hình chi tiết
// navigation.navigate(SCREENNAME.DETAILEMAIL);
// }
},
});
...
...
@@ -116,6 +132,12 @@ const EmailHomeView = props => {
setSwipedEmailId
(
null
);
});
};
const
handleEmailPress
=
()
=>
{
// Chỉ điều hướng nếu email chưa bị vuốt
if
(
swipedEmailId
===
null
)
{
navigation
.
navigate
(
SCREENNAME
.
DETAILEMAIL
);
}
};
return
(
<
View
style
=
{
styles
.
swipeContainer
}
>
...
...
@@ -136,7 +158,7 @@ const EmailHomeView = props => {
{...
panResponder
.
panHandlers
}
>
<
TouchableOpacity
style
=
{[
styles
.
emailItem
,
!
item
.
isRead
&&
styles
.
unreadEmail
]}
onPress
=
{
()
=>
navigation
.
navigate
(
SCREENNAME
.
DETAILEMAIL
)
}
>
onPress
=
{
handleEmailPress
}
>
<
View
style
=
{
styles
.
avatarContainer
}
>
<
View
style
=
{
styles
.
avatar
}
>
<
Text
style
=
{
styles
.
avatarText
}
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment