desktop: files Drag & Drop support (#2843)

* desktop: files Drag&Drop support

* reduce diff

* move

* move 2

* move 3

---------

Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
This commit is contained in:
Stanislav Dmitrenko
2023-08-03 18:24:43 +03:00
committed by GitHub
parent 4e27a4ea4f
commit 65391756ef
5 changed files with 126 additions and 65 deletions
@@ -1,7 +1,8 @@
package chat.simplex.common.platform
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.*
import androidx.compose.ui.graphics.painter.Painter
actual fun Modifier.navigationBarsWithImePadding(): Modifier = this
@@ -13,3 +14,18 @@ actual fun ProvideWindowInsets(
) {
content()
}
@Composable
actual fun Modifier.desktopOnExternalDrag(
enabled: Boolean,
onFiles: (List<String>) -> Unit,
onImage: (Painter) -> Unit,
onText: (String) -> Unit
): Modifier =
onExternalDrag(enabled) {
when(val data = it.dragData) {
is DragData.FilesList -> onFiles(data.readFiles())
is DragData.Image -> onImage(data.readImage())
is DragData.Text -> onText(data.readText())
}
}