+
+
\ No newline at end of file
diff --git a/compose-recyclerview/src/main/java/com/example/compose_recyclerview/ComposeRecyclerView.kt b/compose-recyclerview/src/main/java/com/example/compose_recyclerview/ComposeRecyclerView.kt
index 3c82810..2e550d2 100644
--- a/compose-recyclerview/src/main/java/com/example/compose_recyclerview/ComposeRecyclerView.kt
+++ b/compose-recyclerview/src/main/java/com/example/compose_recyclerview/ComposeRecyclerView.kt
@@ -14,6 +14,8 @@ import androidx.core.os.bundleOf
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.ItemTouchHelper.DOWN
import androidx.recyclerview.widget.ItemTouchHelper.END
+import androidx.recyclerview.widget.ItemTouchHelper.LEFT
+import androidx.recyclerview.widget.ItemTouchHelper.RIGHT
import androidx.recyclerview.widget.ItemTouchHelper.START
import androidx.recyclerview.widget.ItemTouchHelper.UP
import androidx.recyclerview.widget.LinearLayoutManager
@@ -95,7 +97,9 @@ fun ComposeRecyclerView(
}
val itemTouchHelper = remember {
- ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(UP or DOWN or START or END, 0) {
+ ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(
+ config.dragDirs ?: (UP or DOWN or START or END), config.swipeDirs ?: (LEFT or RIGHT)
+ ) {
override fun onMove(
recyclerView: RecyclerView,
viewHolder: RecyclerView.ViewHolder,
diff --git a/compose-recyclerview/src/main/java/com/example/compose_recyclerview/utils/ItemTouchHelperConfig.kt b/compose-recyclerview/src/main/java/com/example/compose_recyclerview/utils/ItemTouchHelperConfig.kt
index 926cb65..7084e0b 100644
--- a/compose-recyclerview/src/main/java/com/example/compose_recyclerview/utils/ItemTouchHelperConfig.kt
+++ b/compose-recyclerview/src/main/java/com/example/compose_recyclerview/utils/ItemTouchHelperConfig.kt
@@ -64,4 +64,14 @@ class ItemTouchHelperConfig {
* Flag to enable or disable long press drag behavior.
*/
var isLongPressDragEnabled: Boolean = true
+
+ /**
+ * Swipe directions for items. If not provided, all directions are enabled by default.
+ */
+ var swipeDirs: Int? = null
+
+ /**
+ * Drag directions for items. If not provided, left or right directions are enabled by default.
+ */
+ var dragDirs: Int? = null
}