Skip to content

Commit d5d295f

Browse files
committed
Up: improve UI HomeOrder
1 parent 32b76c6 commit d5d295f

1 file changed

Lines changed: 17 additions & 2 deletions

File tree

app/components/settings/HomeOrder.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ const HomeOrder = () => {
1212
const settings = React.useContext(SettingsContext)
1313
const setSettings = React.useContext(SetSettingsContext)
1414
const theme = React.useContext(ThemeContext)
15+
const [indexMoving, setIndexMoving] = React.useState(-1)
16+
const [moveToIndex, setMoveToIndex] = React.useState(-1)
1517

1618
const moveElement = (index, direction) => {
1719
let newIndex = index + direction
@@ -28,7 +30,7 @@ const HomeOrder = () => {
2830
}
2931
setSettings({ ...settings, homeOrderV2: newHomeOrder })
3032
}
31-
33+
3234
const onPressHomeOrder = (index) => {
3335
const newHomeOrder = [...settings.homeOrderV2]
3436
newHomeOrder[index].enable = !newHomeOrder[index].enable
@@ -47,12 +49,17 @@ const HomeOrder = () => {
4749
onPanResponderGrant: (_, gestureState) => {
4850
startMove.current = gestureState.y0
4951
position.setValue(0)
52+
setIndexMoving(index)
53+
setMoveToIndex(index)
5054
},
5155
onPanResponderMove: (_, gestureState) => {
5256
const move = gestureState.moveY - startMove.current
5357
position.setValue(move)
58+
setMoveToIndex(index + Math.round(move / 50))
5459
},
5560
onPanResponderRelease: () => {
61+
setIndexMoving(-1)
62+
setMoveToIndex(-1)
5663
if (position._value === 0) {
5764
onPressHomeOrder(index)
5865
}
@@ -63,14 +70,22 @@ const HomeOrder = () => {
6370
})
6471
const section = React.useMemo(() => homeSections.find(s => s.id === value.id), [value.id])
6572

73+
const translateY = () => {
74+
if (index === indexMoving) return position
75+
if (indexMoving === -1) return 0
76+
if (index > indexMoving && index <= moveToIndex) return -50
77+
if (index < indexMoving && index >= moveToIndex) return 50
78+
return 0
79+
}
80+
6681
return (
6782
<Animated.View
6883
key={index}
6984
style={[
7085
settingStyles.optionItem(theme, index == settings.homeOrderV2.length - 1),
7186
{
7287
cursor: 'pointer',
73-
transform: [{ translateY: position }]
88+
transform: [{ translateY: translateY() }]
7489
}
7590
]}
7691
>

0 commit comments

Comments
 (0)