Skip to content

Commit 7b3555c

Browse files
committed
feat(DraggableStack): add resetSortOrder on DraggableStack handle
1 parent adc6087 commit 7b3555c

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

example/src/App.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {DraggableStackExample as DraggableExample} from './pages/DraggableStackE
55
import {DraggableBasicExample} from './pages/DraggableBasicExample';
66
import {SafeAreaView, StyleSheet} from 'react-native';
77
import {configureReanimatedLogger} from 'react-native-reanimated';
8+
import HomeScreen from './pages/OtherExample';
89

910
// This is the default configuration
1011
configureReanimatedLogger({
@@ -18,7 +19,7 @@ export const App: FunctionComponent = () => {
1819
<GestureHandlerRootView>
1920
{/* <DraggableBasicExample /> */}
2021
{/* <DraggableGridExample /> */}
21-
<DraggableExample />
22+
<HomeScreen />
2223
</GestureHandlerRootView>
2324
</SafeAreaView>
2425
);

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,6 @@
6060
"tsc-alias": "^1.8.10",
6161
"tsup": "^8.3.5",
6262
"typescript": "^5.6.3"
63-
}
63+
},
64+
"packageManager": "[email protected]+sha512.76e2379760a4328ec4415815bcd6628dee727af3779aaa4c914e3944156c4299921a89f976381ee107d41f12cfa4b66681ca9c718f0668fa0831ed4c6d8ba56c"
6465
}

src/features/sort/components/DraggableStack.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export const DraggableStack = forwardRef<DraggableStackHandle, PropsWithChildren
4141

4242
const horizontal = ["row", "row-reverse"].includes(style.flexDirection);
4343

44-
const { refreshOffsets } = useDraggableStack({
44+
const { refreshOffsets, resetSortOrder } = useDraggableStack({
4545
gap: style.gap,
4646
horizontal,
4747
childrenIds,
@@ -53,8 +53,9 @@ export const DraggableStack = forwardRef<DraggableStackHandle, PropsWithChildren
5353
useImperativeHandle(ref, () => {
5454
return {
5555
refreshOffsets,
56+
resetSortOrder,
5657
};
57-
}, [refreshOffsets]);
58+
}, [refreshOffsets, resetSortOrder]);
5859

5960
useEffect(() => {
6061
// Refresh offsets when children change

src/features/sort/hooks/useDraggableStack.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,13 @@ export const useDraggableStack = ({
113113
horizontal,
114114
]);
115115

116+
const resetSortOrder = useCallback(() => {
117+
// Reset the expected sort order
118+
draggableSortOrder.value = childrenIds.slice();
119+
// Refresh all offsets
120+
refreshOffsets();
121+
}, [childrenIds, draggableSortOrder, refreshOffsets]);
122+
116123
// Track items being added or removed from the stack
117124
useAnimatedReaction(
118125
() => childrenIds,
@@ -125,7 +132,7 @@ export const useDraggableStack = ({
125132
return;
126133
}
127134
// Reset the expected sort order
128-
draggableSortOrder.value = next;
135+
// draggableSortOrder.value = next;
129136
// Refresh all offsets
130137
refreshOffsets();
131138
},
@@ -189,5 +196,5 @@ export const useDraggableStack = ({
189196
[horizontal],
190197
);
191198

192-
return { draggablePlaceholderIndex, draggableSortOrder, refreshOffsets };
199+
return { draggablePlaceholderIndex, draggableSortOrder, resetSortOrder, refreshOffsets };
193200
};

0 commit comments

Comments
 (0)