Skip to content

Commit 4acdd8f

Browse files
committed
migrate file upload sample
1 parent 4d72e26 commit 4acdd8f

File tree

1 file changed

+16
-13
lines changed
  • sample/file-upload/common/src/desktopMain/kotlin/io/github/jan/supabase/common/ui/utils

1 file changed

+16
-13
lines changed

sample/file-upload/common/src/desktopMain/kotlin/io/github/jan/supabase/common/ui/utils/applyDragging.kt

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
11
package io.github.jan.supabase.common.ui.utils
22

3+
import androidx.compose.foundation.ExperimentalFoundationApi
4+
import androidx.compose.foundation.draganddrop.dragAndDropTarget
35
import androidx.compose.runtime.MutableState
4-
import androidx.compose.ui.DragData
56
import androidx.compose.ui.ExperimentalComposeUiApi
67
import androidx.compose.ui.Modifier
78
import androidx.compose.ui.composed
8-
import androidx.compose.ui.onExternalDrag
9+
import androidx.compose.ui.draganddrop.DragAndDropEvent
10+
import androidx.compose.ui.draganddrop.DragAndDropTarget
11+
import androidx.compose.ui.draganddrop.DragData
12+
import androidx.compose.ui.draganddrop.dragData
913

10-
@OptIn(ExperimentalComposeUiApi::class)
14+
@OptIn(ExperimentalComposeUiApi::class, ExperimentalFoundationApi::class)
1115
actual fun Modifier.applyDragging(isDragging: MutableState<Boolean>, onSuccess: (List<String>) -> Unit): Modifier {
1216
return composed {
13-
onExternalDrag(
14-
onDragStart = {
15-
isDragging.value = true
17+
dragAndDropTarget(
18+
shouldStartDragAndDrop = {
19+
it.dragData() is DragData.FilesList
1620
},
17-
onDragExit = {
18-
isDragging.value = false
19-
},
20-
onDrop = {
21-
isDragging.value = false
22-
if(it.dragData is DragData.FilesList) {
23-
onSuccess((it.dragData as DragData.FilesList).readFiles())
21+
target = object : DragAndDropTarget {
22+
override fun onDrop(event: DragAndDropEvent): Boolean {
23+
isDragging.value = false
24+
val dragData = event.dragData() as DragData.FilesList
25+
onSuccess(dragData.readFiles())
26+
return true;
2427
}
2528
}
2629
)

0 commit comments

Comments
 (0)