Skip to content

Commit 5545f37

Browse files
authored
Remove LaunchedEffect workaround (#379)
* Remove LaunchedEffect workaround for library bug * Apply Spotless * Changed single var to val --------- Co-authored-by: jakeroseman <[email protected]>
1 parent 4baf477 commit 5545f37

File tree

1 file changed

+4
-31
lines changed
  • compose/snippets/src/main/java/com/example/compose/snippets/components

1 file changed

+4
-31
lines changed

compose/snippets/src/main/java/com/example/compose/snippets/components/Tooltips.kt

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,9 @@ import androidx.compose.material3.Text
3434
import androidx.compose.material3.TextButton
3535
import androidx.compose.material3.TooltipBox
3636
import androidx.compose.material3.TooltipDefaults
37-
import androidx.compose.material3.TooltipState
37+
import androidx.compose.material3.rememberTooltipState
3838
import androidx.compose.runtime.Composable
39-
import androidx.compose.runtime.LaunchedEffect
4039
import androidx.compose.runtime.getValue
41-
import androidx.compose.runtime.mutableStateOf
42-
import androidx.compose.runtime.remember
4340
import androidx.compose.runtime.setValue
4441
import androidx.compose.ui.Alignment
4542
import androidx.compose.ui.Modifier
@@ -79,14 +76,13 @@ fun PlainTooltipExample(
7976
modifier: Modifier = Modifier,
8077
plainTooltipText: String = "Add to favorites"
8178
) {
82-
var tooltipState by remember { mutableStateOf(TooltipState()) }
8379
TooltipBox(
8480
modifier = modifier,
8581
positionProvider = TooltipDefaults.rememberPlainTooltipPositionProvider(),
8682
tooltip = {
8783
PlainTooltip { Text(plainTooltipText) }
8884
},
89-
state = tooltipState
85+
state = rememberTooltipState()
9086
) {
9187
IconButton(onClick = { /* Do something... */ }) {
9288
Icon(
@@ -95,13 +91,6 @@ fun PlainTooltipExample(
9591
)
9692
}
9793
}
98-
99-
// Reset tooltipState after closing the tooltip.
100-
LaunchedEffect(tooltipState.isVisible) {
101-
if (!tooltipState.isVisible) {
102-
tooltipState = TooltipState()
103-
}
104-
}
10594
}
10695

10796
// [END android_compose_components_plaintooltipexample]
@@ -120,8 +109,6 @@ fun RichTooltipExample(
120109
richTooltipSubheadText: String = "Rich Tooltip",
121110
richTooltipText: String = "Rich tooltips support multiple lines of informational text."
122111
) {
123-
var tooltipState by remember { mutableStateOf(TooltipState(isPersistent = true)) }
124-
125112
TooltipBox(
126113
modifier = modifier,
127114
positionProvider = TooltipDefaults.rememberRichTooltipPositionProvider(),
@@ -132,7 +119,7 @@ fun RichTooltipExample(
132119
Text(richTooltipText)
133120
}
134121
},
135-
state = tooltipState
122+
state = rememberTooltipState()
136123
) {
137124
IconButton(onClick = { /* Icon button's click event */ }) {
138125
Icon(
@@ -141,13 +128,6 @@ fun RichTooltipExample(
141128
)
142129
}
143130
}
144-
145-
// Reset tooltipState after closing the tooltip.
146-
LaunchedEffect(tooltipState.isVisible) {
147-
if (!tooltipState.isVisible) {
148-
tooltipState = TooltipState(isPersistent = true)
149-
}
150-
}
151131
}
152132
// [END android_compose_components_richtooltipexample]
153133

@@ -166,7 +146,7 @@ fun AdvancedRichTooltipExample(
166146
richTooltipText: String = "Rich tooltips support multiple lines of informational text.",
167147
richTooltipActionText: String = "Dismiss"
168148
) {
169-
var tooltipState by remember { mutableStateOf(TooltipState(isPersistent = true)) }
149+
val tooltipState = rememberTooltipState()
170150

171151
TooltipBox(
172152
modifier = modifier,
@@ -195,13 +175,6 @@ fun AdvancedRichTooltipExample(
195175
)
196176
}
197177
}
198-
199-
// Reset tooltipState after closing the tooltip.
200-
LaunchedEffect(tooltipState.isVisible) {
201-
if (!tooltipState.isVisible) {
202-
tooltipState = TooltipState(isPersistent = true)
203-
}
204-
}
205178
}
206179
// [END android_compose_components_advancedrichtooltipexample]
207180

0 commit comments

Comments
 (0)