@@ -42,6 +42,7 @@ import androidx.compose.ui.platform.LocalUriHandler
4242import androidx.compose.ui.res.painterResource
4343import androidx.compose.ui.unit.dp
4444import androidx.navigation.NavController
45+ import com.instructure.horizon.R
4546import com.instructure.horizon.horizonui.foundation.HorizonColors
4647import com.instructure.horizon.horizonui.foundation.HorizonCornerRadius
4748import com.instructure.horizon.horizonui.foundation.HorizonSpace
@@ -81,7 +82,12 @@ fun AccountScreen(
8182}
8283
8384@Composable
84- private fun AccountContentScreen (state : AccountUiState , navController : NavController , onLogout : () -> Unit , switchExperience : () -> Unit ) {
85+ private fun AccountContentScreen (
86+ state : AccountUiState ,
87+ navController : NavController ,
88+ onLogout : () -> Unit ,
89+ switchExperience : () -> Unit
90+ ) {
8591 LazyColumn (
8692 contentPadding = PaddingValues (24 .dp)
8793 ) {
@@ -136,6 +142,7 @@ private fun AccountContentScreen(state: AccountUiState, navController: NavContro
136142 navController,
137143 onLogout,
138144 switchExperience,
145+ state.onShowSnackbar,
139146 clipModifier
140147 )
141148
@@ -156,8 +163,16 @@ private fun AccountContentScreen(state: AccountUiState, navController: NavContro
156163}
157164
158165@Composable
159- private fun AccountItem (item : AccountItemState , navController : NavController , onLogout : () -> Unit , switchExperience : () -> Unit , modifier : Modifier = Modifier ) {
166+ private fun AccountItem (
167+ item : AccountItemState ,
168+ navController : NavController ,
169+ onLogout : () -> Unit ,
170+ switchExperience : () -> Unit ,
171+ onShowSnackbar : (String ) -> Unit ,
172+ modifier : Modifier = Modifier
173+ ) {
160174 val uriHandler = LocalUriHandler .current
175+ val context = LocalContext .current
161176 Row (
162177 verticalAlignment = Alignment .CenterVertically ,
163178 modifier = modifier
@@ -168,7 +183,11 @@ private fun AccountItem(item: AccountItemState, navController: NavController, on
168183 is AccountItemType .Open -> navController.navigate(item.type.route.route)
169184
170185 is AccountItemType .OpenExternal -> {
171- uriHandler.openUri(item.type.url)
186+ try {
187+ uriHandler.openUri(item.type.url)
188+ } catch (_: Exception ) {
189+ onShowSnackbar(context.getString(R .string.accountFailedtoOpenLinkMessage))
190+ }
172191 }
173192
174193 is AccountItemType .LogOut -> {
0 commit comments