From 2fb208bda9af98b5a4bde9f2de6e751d728d5a45 Mon Sep 17 00:00:00 2001 From: PJ Date: Sun, 26 Apr 2026 16:05:36 +0700 Subject: [PATCH] fix(folio): expect/actual testTagsAsResourceId so iOS link succeeds Compose's androidx.compose.ui.semantics.testTagsAsResourceId is Android-only. Calling it directly from commonMain broke linkDebugFrameworkIosSimulatorArm64. Replace with an expect Modifier extension that wires the semantics on Android and is a no-op on iOS / wasmJs. --- .../kotlin/app/folio/ui/TestTagBridge.android.kt | 10 ++++++++++ .../commonMain/kotlin/app/folio/ui/TestTagBridge.kt | 5 +++++ .../iosMain/kotlin/app/folio/ui/TestTagBridge.ios.kt | 5 +++++ .../kotlin/app/folio/ui/TestTagBridge.wasmJs.kt | 5 +++++ 4 files changed, 25 insertions(+) create mode 100644 examples/folio/app/shared/src/androidMain/kotlin/app/folio/ui/TestTagBridge.android.kt create mode 100644 examples/folio/app/shared/src/commonMain/kotlin/app/folio/ui/TestTagBridge.kt create mode 100644 examples/folio/app/shared/src/iosMain/kotlin/app/folio/ui/TestTagBridge.ios.kt create mode 100644 examples/folio/app/shared/src/wasmJsMain/kotlin/app/folio/ui/TestTagBridge.wasmJs.kt diff --git a/examples/folio/app/shared/src/androidMain/kotlin/app/folio/ui/TestTagBridge.android.kt b/examples/folio/app/shared/src/androidMain/kotlin/app/folio/ui/TestTagBridge.android.kt new file mode 100644 index 0000000..5896d35 --- /dev/null +++ b/examples/folio/app/shared/src/androidMain/kotlin/app/folio/ui/TestTagBridge.android.kt @@ -0,0 +1,10 @@ +package app.folio.ui + +import androidx.compose.ui.ExperimentalComposeUiApi +import androidx.compose.ui.Modifier +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.testTagsAsResourceId + +@OptIn(ExperimentalComposeUiApi::class) +actual fun Modifier.testTagsAsResourceId(): Modifier = + semantics { testTagsAsResourceId = true } diff --git a/examples/folio/app/shared/src/commonMain/kotlin/app/folio/ui/TestTagBridge.kt b/examples/folio/app/shared/src/commonMain/kotlin/app/folio/ui/TestTagBridge.kt new file mode 100644 index 0000000..1da4fa5 --- /dev/null +++ b/examples/folio/app/shared/src/commonMain/kotlin/app/folio/ui/TestTagBridge.kt @@ -0,0 +1,5 @@ +package app.folio.ui + +import androidx.compose.ui.Modifier + +expect fun Modifier.testTagsAsResourceId(): Modifier diff --git a/examples/folio/app/shared/src/iosMain/kotlin/app/folio/ui/TestTagBridge.ios.kt b/examples/folio/app/shared/src/iosMain/kotlin/app/folio/ui/TestTagBridge.ios.kt new file mode 100644 index 0000000..b0f567e --- /dev/null +++ b/examples/folio/app/shared/src/iosMain/kotlin/app/folio/ui/TestTagBridge.ios.kt @@ -0,0 +1,5 @@ +package app.folio.ui + +import androidx.compose.ui.Modifier + +actual fun Modifier.testTagsAsResourceId(): Modifier = this diff --git a/examples/folio/app/shared/src/wasmJsMain/kotlin/app/folio/ui/TestTagBridge.wasmJs.kt b/examples/folio/app/shared/src/wasmJsMain/kotlin/app/folio/ui/TestTagBridge.wasmJs.kt new file mode 100644 index 0000000..b0f567e --- /dev/null +++ b/examples/folio/app/shared/src/wasmJsMain/kotlin/app/folio/ui/TestTagBridge.wasmJs.kt @@ -0,0 +1,5 @@ +package app.folio.ui + +import androidx.compose.ui.Modifier + +actual fun Modifier.testTagsAsResourceId(): Modifier = this