Skip to content

Commit

Permalink
Merge pull request #487 from InsanusMokrassar/0.22.3
Browse files Browse the repository at this point in the history
0.22.3
  • Loading branch information
InsanusMokrassar authored Sep 20, 2024
2 parents 625db02 + 837cac6 commit 16463d0
Show file tree
Hide file tree
Showing 9 changed files with 123 additions and 12 deletions.
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Changelog

## 0.22.3

* `Versions`:
* `Serialization`: `1.7.2` -> `1.7.3`
* `Coroutines`: `1.8.1` -> `1.9.0`
* `Compose`: `1.7.0-alpha03` -> `1.7.0-beta02`
* `Koin`: `3.5.6` -> `4.0.0`
* `Okio`: `3.9.0` -> `3.9.1`
* `AndroidFragment`: `1.8.2` -> `1.8.3`
* `androidx.compose.material3:material3` has been replaced with `org.jetbrains.compose.material3:material3`
* `Common`:
* `JS`:
* Add several useful extensions
* `Compose`:
* `JS`:
* Add several useful extensions

## 0.22.2

* `Versions`:
Expand Down
2 changes: 1 addition & 1 deletion android/smalltextfield/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ kotlin {
sourceSets {
androidMain {
dependencies {
api libs.android.compose.material3
api libs.jb.compose.material3
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package dev.inmo.micro_utils.common.compose

import org.jetbrains.compose.web.dom.AttrBuilderContext
import org.w3c.dom.Element

operator fun <T : Element> AttrBuilderContext<T>?.plus(
other: AttrBuilderContext<T>?
) = when (this) {
null -> other ?: {}
else -> when (other) {
null -> this ?: {}
else -> {
{
invoke(this)
other(this)
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package dev.inmo.micro_utils.common.compose

import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.DisposableEffectResult
import androidx.compose.runtime.DisposableEffectScope
import org.jetbrains.compose.web.attributes.AttrsScope
import org.jetbrains.compose.web.dom.ElementScope
import org.w3c.dom.Element

/**
* This function must be called in the context of your tag content. It works like default [AttrsScope.ref],
* but able to be used several times. Uses [DisposableEffect] under the hood
*/
@Composable
fun <T : Element> ElementScope<T>.ref(
block: DisposableEffectScope.(T) -> DisposableEffectResult
) {
DisposableEffect(0) {
block(scopeElement)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package dev.inmo.micro_utils.common.compose

import org.jetbrains.compose.web.dom.AttrBuilderContext

fun tagClasses(vararg classnames: String): AttrBuilderContext<*> = {
classes(*classnames)
}

fun tagId(id: String): AttrBuilderContext<*> = {
id(id)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package dev.inmo.micro_utils.common

import kotlinx.browser.window

fun copyToClipboard(text: String): Boolean {
return runCatching {
window.navigator.clipboard.writeText(
text
)
}.onFailure {
it.printStackTrace()
}.isSuccess
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package dev.inmo.micro_utils.common

import kotlinx.browser.window
import org.w3c.files.Blob
import org.w3c.files.BlobPropertyBag
import kotlin.js.json

external class ClipboardItem(data: dynamic)

inline fun Blob.convertToClipboardItem(): ClipboardItem {
val itemData: dynamic = json(this.type to this)
return ClipboardItem(itemData)
}

suspend fun copyImageURLToClipboard(imageUrl: String): Boolean {
return runCatching {
val response = window.fetch(imageUrl).await()
val blob = response.blob().await()
val data = arrayOf(
Blob(
arrayOf(blob),
BlobPropertyBag("image/png")
).convertToClipboardItem()
).asDynamic()
window.navigator.clipboard.write(data)
}.onFailure {
it.printStackTrace()
}.isSuccess
}
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ crypto_js_version=4.1.1
# Project data

group=dev.inmo
version=0.22.2
android_code_version=268
version=0.22.3
android_code_version=269
18 changes: 9 additions & 9 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[versions]

kt = "2.0.20"
kt-serialization = "1.7.2"
kt-coroutines = "1.8.1"
kt-serialization = "1.7.3"
kt-coroutines = "1.9.0"

kslog = "1.3.6"

jb-compose = "1.7.0-alpha03"
jb-compose = "1.7.0-beta02"
jb-exposed = "0.54.0"
jb-dokka = "1.9.20"

Expand All @@ -19,11 +19,11 @@ ktor = "2.3.12"

gh-release = "2.5.2"

koin = "3.5.6"
koin = "4.0.0"

okio = "3.9.0"
okio = "3.9.1"

ksp = "2.0.20-1.0.24"
ksp = "2.0.20-1.0.25"
kotlin-poet = "1.18.1"

versions = "0.51.0"
Expand All @@ -34,10 +34,10 @@ dexcount = "4.0.0"
android-coreKtx = "1.13.1"
android-recyclerView = "1.3.2"
android-appCompat = "1.7.0"
android-fragment = "1.8.2"
android-fragment = "1.8.3"
android-espresso = "3.6.1"
android-test = "1.2.1"
android-compose-material3 = "1.2.1"
android-compose-material3 = "1.3.0"

android-props-minSdk = "21"
android-props-compileSdk = "35"
Expand Down Expand Up @@ -85,11 +85,11 @@ jb-exposed = { module = "org.jetbrains.exposed:exposed-core", version.ref = "jb-
jb-exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "jb-exposed" }
sqlite = { module = "org.xerial:sqlite-jdbc", version.ref = "sqlite" }

jb-compose-material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "jb-compose" }

android-coreKtx = { module = "androidx.core:core-ktx", version.ref = "android-coreKtx" }
android-recyclerView = { module = "androidx.recyclerview:recyclerview", version.ref = "android-recyclerView" }
android-appCompat-resources = { module = "androidx.appcompat:appcompat-resources", version.ref = "android-appCompat" }
android-compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "android-compose-material3" }
android-fragment = { module = "androidx.fragment:fragment", version.ref = "android-fragment" }
android-espresso = { module = "androidx.test.espresso:espresso-core", version.ref = "android-espresso" }
android-test-junit = { module = "androidx.test.ext:junit", version.ref = "android-test" }
Expand Down

0 comments on commit 16463d0

Please sign in to comment.