From 210aca00a5f27bde327bc444236e647546a0831e Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Mon, 14 Aug 2023 09:47:55 +0200 Subject: [PATCH] Allow null as Tooltip composable text --- .../briar/desktop/blog/BlogPostView.kt | 2 +- .../briarproject/briar/desktop/ui/Tooltip.kt | 45 +++++++++++-------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/BlogPostView.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/BlogPostView.kt index 75554b64df..ecbaf9658d 100644 --- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/BlogPostView.kt +++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/BlogPostView.kt @@ -208,7 +208,7 @@ private fun RepeatAuthorView( modifier = modifier, ) { Tooltip( - text = authorClickTooltip ?: "", + text = authorClickTooltip, modifier = Modifier.weight(1f), ) { Row( diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/ui/Tooltip.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/ui/Tooltip.kt index 932b7aef8a..686a3add41 100644 --- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/ui/Tooltip.kt +++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/ui/Tooltip.kt @@ -1,6 +1,6 @@ /* * Briar Desktop - * Copyright (C) 2021-2022 The Briar Project + * Copyright (C) 2021-2023 The Briar Project * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -21,6 +21,7 @@ package org.briarproject.briar.desktop.ui import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.TooltipArea import androidx.compose.foundation.TooltipPlacement +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.Surface @@ -34,27 +35,35 @@ import androidx.compose.ui.unit.dp @Composable @OptIn(ExperimentalFoundationApi::class) fun Tooltip( - text: String, + text: String?, modifier: Modifier = Modifier, delayMillis: Int = 500, tooltipPlacement: TooltipPlacement = TooltipPlacement.CursorPoint( offset = DpOffset(0.dp, 16.dp) ), content: @Composable () -> Unit, -) = TooltipArea( - tooltip = { - Surface( - modifier = Modifier.shadow(4.dp), - shape = RoundedCornerShape(4.dp), - ) { - Text( - text = text, - modifier = Modifier.padding(4.dp), - ) +) { + if (text.isNullOrEmpty()) { + Box(modifier = modifier) { + content() } - }, - delayMillis = delayMillis, - tooltipPlacement = tooltipPlacement, - modifier = modifier, // todo: use tooltip text for semantic description - content = content, -) + } else { + TooltipArea( + tooltip = { + Surface( + modifier = Modifier.shadow(4.dp), + shape = RoundedCornerShape(4.dp), + ) { + Text( + text = text, + modifier = Modifier.padding(4.dp), + ) + } + }, + delayMillis = delayMillis, + tooltipPlacement = tooltipPlacement, + modifier = modifier, // todo: use tooltip text for semantic description + content = content, + ) + } +} -- GitLab