Skip to content

Commit 5bbe098

Browse files
committed
fix: prevent a visible tip showing after logging out
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 00ac1e5 commit 5bbe098

3 files changed

Lines changed: 17 additions & 0 deletions

File tree

  • app/src/main/java/com/getcode/ui/components
  • vendor/tipkit

app/src/main/java/com/getcode/ui/components/AuthCheck.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import com.getcode.util.DeeplinkHandler
2323
import com.getcode.util.DeeplinkResult
2424
import com.getcode.ui.utils.getActivity
2525
import com.getcode.utils.trace
26+
import dev.bmcreations.tipkit.engines.LocalTipsEngine
2627
import kotlinx.coroutines.CoroutineScope
2728
import kotlinx.coroutines.delay
2829
import kotlinx.coroutines.flow.Flow
@@ -45,6 +46,7 @@ fun AuthCheck(
4546
onSwitchAccounts: (String) -> Unit,
4647
) {
4748
val deeplinkHandler = LocalDeeplinks.current
49+
val tipsEngine = LocalTipsEngine.current
4850
val dataState by SessionManager.authState.collectAsState()
4951

5052
val isAuthenticated = dataState.isAuthenticated
@@ -139,6 +141,7 @@ fun AuthCheck(
139141
onNavigate(listOf(ScanScreen()))
140142
}
141143
} else {
144+
tipsEngine?.invalidateAllTips()
142145
if (!deeplinkRouted) {
143146
trace("Navigating to login")
144147
onNavigate(listOf(LoginScreen()))

vendor/tipkit/tipkit-m2/src/main/kotlin/dev/bmcreations/tipkit/TipScaffold.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import androidx.compose.material.icons.Icons
2525
import androidx.compose.material.icons.filled.Close
2626
import androidx.compose.runtime.Composable
2727
import androidx.compose.runtime.CompositionLocalProvider
28+
import androidx.compose.runtime.LaunchedEffect
2829
import androidx.compose.runtime.getValue
2930
import androidx.compose.runtime.mutableStateOf
3031
import androidx.compose.runtime.remember
@@ -238,6 +239,10 @@ fun TipScaffold(
238239
get() = emission != null
239240
}
240241

242+
LaunchedEffect(tipsEngine, tipProvider) {
243+
tipsEngine.setProvider(tipProvider)
244+
}
245+
241246
val density = LocalDensity.current
242247
val ldr = LocalLayoutDirection.current
243248
CompositionLocalProvider(

vendor/tipkit/tipkit/src/main/kotlin/dev/bmcreations/tipkit/engines/TipsEngine.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package dev.bmcreations.tipkit.engines
22

33
import androidx.compose.runtime.staticCompositionLocalOf
4+
import dev.bmcreations.tipkit.NoOpTipProvider
45
import dev.bmcreations.tipkit.Tip
6+
import dev.bmcreations.tipkit.TipProvider
57

68
interface TipInterface
79

@@ -13,13 +15,20 @@ class TipsEngine(
1315
var tips: TipInterface = object : TipInterface {}
1416
private set
1517

18+
private var provider: TipProvider = NoOpTipProvider()
19+
1620
val flows: MutableMap<String, List<Tip>> = mutableMapOf()
1721

1822
fun configure(implementation: TipInterface) {
1923
tips = implementation
2024
}
2125

26+
fun setProvider(provider: TipProvider) {
27+
this.provider = provider
28+
}
29+
2230
fun invalidateAllTips() {
31+
provider.dismiss()
2332
eventsEngine.clearCompletions()
2433
eventsEngine.removeAllOccurrences()
2534
}

0 commit comments

Comments
 (0)