Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import androidx.compose.material3.SnackbarDuration
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
Expand All @@ -37,6 +36,7 @@ import com.nativeapptemplate.nativeapptemplatefree.R
import com.nativeapptemplate.nativeapptemplatefree.ui.common.LoadingView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.MainButtonView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.NatAlertDialog
import com.nativeapptemplate.nativeapptemplatefree.ui.common.SnackbarMessageEffect
import com.nativeapptemplate.nativeapptemplatefree.utils.Utility.restartApp

@Composable
Expand All @@ -46,12 +46,11 @@ fun AcceptPrivacyView(
) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()

LaunchedEffect(uiState.message) {
if (uiState.message.isNotBlank()) {
onShowSnackbar(uiState.message, "dismiss", SnackbarDuration.Indefinite)
viewModel.snackbarMessageShown()
}
}
SnackbarMessageEffect(
message = uiState.message,
onShowSnackbar = onShowSnackbar,
onMessageShown = viewModel::snackbarMessageShown,
)

if (uiState.isUpdated) {
val context = LocalContext.current
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import androidx.compose.material3.SnackbarDuration
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
Expand All @@ -37,6 +36,7 @@ import com.nativeapptemplate.nativeapptemplatefree.R
import com.nativeapptemplate.nativeapptemplatefree.ui.common.LoadingView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.MainButtonView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.NatAlertDialog
import com.nativeapptemplate.nativeapptemplatefree.ui.common.SnackbarMessageEffect
import com.nativeapptemplate.nativeapptemplatefree.utils.Utility.restartApp

@Composable
Expand All @@ -46,12 +46,11 @@ fun AcceptTermsView(
) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()

LaunchedEffect(uiState.message) {
if (uiState.message.isNotBlank()) {
onShowSnackbar(uiState.message, "dismiss", SnackbarDuration.Indefinite)
viewModel.snackbarMessageShown()
}
}
SnackbarMessageEffect(
message = uiState.message,
onShowSnackbar = onShowSnackbar,
onMessageShown = viewModel::snackbarMessageShown,
)

if (uiState.isUpdated) {
val context = LocalContext.current
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import androidx.compose.material3.SnackbarDuration
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
Expand All @@ -41,6 +40,7 @@ import com.nativeapptemplate.nativeapptemplatefree.NatConstants
import com.nativeapptemplate.nativeapptemplatefree.R
import com.nativeapptemplate.nativeapptemplatefree.ui.common.LoadingView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.NatAlertDialog
import com.nativeapptemplate.nativeapptemplatefree.ui.common.SnackbarMessageEffect

@Composable
fun ForgotPasswordView(
Expand All @@ -50,12 +50,11 @@ fun ForgotPasswordView(
) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()

LaunchedEffect(uiState.message) {
if (uiState.message.isNotBlank()) {
onShowSnackbar(uiState.message, "dismiss", SnackbarDuration.Indefinite)
viewModel.snackbarMessageShown()
}
}
SnackbarMessageEffect(
message = uiState.message,
onShowSnackbar = onShowSnackbar,
onMessageShown = viewModel::snackbarMessageShown,
)

if (uiState.isSent) {
NatAlertDialog(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import androidx.compose.material3.SnackbarDuration
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
Expand All @@ -41,6 +40,7 @@ import com.nativeapptemplate.nativeapptemplatefree.NatConstants
import com.nativeapptemplate.nativeapptemplatefree.R
import com.nativeapptemplate.nativeapptemplatefree.ui.common.LoadingView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.NatAlertDialog
import com.nativeapptemplate.nativeapptemplatefree.ui.common.SnackbarMessageEffect

@Composable
fun ResendConfirmationInstructionsView(
Expand All @@ -50,12 +50,11 @@ fun ResendConfirmationInstructionsView(
) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()

LaunchedEffect(uiState.message) {
if (uiState.message.isNotBlank()) {
onShowSnackbar(uiState.message, "dismiss", SnackbarDuration.Indefinite)
viewModel.snackbarMessageShown()
}
}
SnackbarMessageEffect(
message = uiState.message,
onShowSnackbar = onShowSnackbar,
onMessageShown = viewModel::snackbarMessageShown,
)

if (uiState.isSent) {
NatAlertDialog(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import androidx.compose.material3.SnackbarDuration
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
Expand All @@ -44,6 +43,7 @@ import com.nativeapptemplate.nativeapptemplatefree.NatConstants
import com.nativeapptemplate.nativeapptemplatefree.R
import com.nativeapptemplate.nativeapptemplatefree.ui.common.LoadingView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.MainButtonView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.SnackbarMessageEffect

@Composable
fun SignInEmailAndPasswordView(
Expand Down Expand Up @@ -117,12 +117,11 @@ fun SignInEmailAndPasswordContentView(
) {
var passwordVisible by rememberSaveable { mutableStateOf(false) }

LaunchedEffect(uiState.message) {
if (uiState.message.isNotBlank()) {
onShowSnackbar(uiState.message, "dismiss", SnackbarDuration.Indefinite)
viewModel.snackbarMessageShown()
}
}
SnackbarMessageEffect(
message = uiState.message,
onShowSnackbar = onShowSnackbar,
onMessageShown = viewModel::snackbarMessageShown,
)

Scaffold(
topBar = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ import androidx.compose.material3.Text
import androidx.compose.material3.TextField
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
Expand All @@ -55,6 +54,7 @@ import com.nativeapptemplate.nativeapptemplatefree.R
import com.nativeapptemplate.nativeapptemplatefree.model.TimeZones
import com.nativeapptemplate.nativeapptemplatefree.ui.common.LoadingView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.NatAlertDialog
import com.nativeapptemplate.nativeapptemplatefree.ui.common.SnackbarMessageEffect

@Composable
fun SignUpView(
Expand All @@ -64,12 +64,11 @@ fun SignUpView(
) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()

LaunchedEffect(uiState.message) {
if (uiState.message.isNotBlank()) {
onShowSnackbar(uiState.message, "dismiss", SnackbarDuration.Indefinite)
viewModel.snackbarMessageShown()
}
}
SnackbarMessageEffect(
message = uiState.message,
onShowSnackbar = onShowSnackbar,
onMessageShown = viewModel::snackbarMessageShown,
)

if (uiState.isCreated) {
NatAlertDialog(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.nativeapptemplate.nativeapptemplatefree.ui.common

import androidx.compose.material3.SnackbarDuration
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect

/**
* Composable that displays a snackbar when [message] is non-blank,
* then notifies the caller so it can clear the message from state.
*/
@Composable
fun SnackbarMessageEffect(
message: String,
onShowSnackbar: suspend (String, String?, SnackbarDuration) -> Boolean,
onMessageShown: () -> Unit,
) {
LaunchedEffect(message) {
if (message.isNotBlank()) {
onShowSnackbar(message, "dismiss", SnackbarDuration.Indefinite)
onMessageShown()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ import com.nativeapptemplate.nativeapptemplatefree.ui.common.ErrorView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.LoadingView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.MainButtonView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.NonScaledSp.nonScaledSp
import com.nativeapptemplate.nativeapptemplatefree.ui.common.SnackbarMessageEffect
import kotlinx.coroutines.launch

enum class ScanPage(
Expand All @@ -74,12 +75,11 @@ internal fun ScanView(
viewModel.reload()
}

LaunchedEffect(uiState.message) {
if (uiState.message.isNotBlank()) {
onShowSnackbar(uiState.message, "dismiss", SnackbarDuration.Indefinite)
viewModel.snackbarMessageShown()
}
}
SnackbarMessageEffect(
message = uiState.message,
onShowSnackbar = onShowSnackbar,
onMessageShown = viewModel::snackbarMessageShown,
)

LaunchedEffect(uiState.userData.shouldFetchItemTagForShowTagInfoScan) {
if (uiState.userData.shouldFetchItemTagForShowTagInfoScan) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.nativeapptemplate.nativeapptemplatefree.NatConstants
import com.nativeapptemplate.nativeapptemplatefree.R
import com.nativeapptemplate.nativeapptemplatefree.ui.common.LoadingView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.SnackbarMessageEffect

@Composable
fun PasswordEditView(
Expand All @@ -57,12 +58,11 @@ fun PasswordEditView(
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
val passwordUpdatedMessage = stringResource(R.string.message_password_updated)

LaunchedEffect(uiState.message) {
if (uiState.message.isNotBlank()) {
onShowSnackbar(uiState.message, "dismiss", SnackbarDuration.Indefinite)
viewModel.snackbarMessageShown()
}
}
SnackbarMessageEffect(
message = uiState.message,
onShowSnackbar = onShowSnackbar,
onMessageShown = viewModel::snackbarMessageShown,
)

LaunchedEffect(uiState.isUpdated) {
if (uiState.isUpdated) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import androidx.compose.material3.SnackbarDuration
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
Expand All @@ -52,6 +51,7 @@ import com.nativeapptemplate.nativeapptemplatefree.model.DarkThemeConfig
import com.nativeapptemplate.nativeapptemplatefree.ui.common.ErrorView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.LoadingView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.MainButtonView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.SnackbarMessageEffect
import com.nativeapptemplate.nativeapptemplatefree.utils.Utility

@Composable
Expand All @@ -67,12 +67,11 @@ internal fun SettingsView(
viewModel.reload()
}

LaunchedEffect(uiState.message) {
if (uiState.message.isNotBlank()) {
onShowSnackbar(uiState.message, "dismiss", SnackbarDuration.Indefinite)
viewModel.snackbarMessageShown()
}
}
SnackbarMessageEffect(
message = uiState.message,
onShowSnackbar = onShowSnackbar,
onMessageShown = viewModel::snackbarMessageShown,
)

SettingsView(
viewModel = viewModel,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ import com.nativeapptemplate.nativeapptemplatefree.model.TimeZones
import com.nativeapptemplate.nativeapptemplatefree.ui.common.ErrorView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.LoadingView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.MainButtonView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.SnackbarMessageEffect

@Composable
fun ShopkeeperEditView(
Expand All @@ -72,12 +73,11 @@ fun ShopkeeperEditView(
viewModel.reload()
}

LaunchedEffect(uiState.message) {
if (uiState.message.isNotBlank()) {
onShowSnackbar(uiState.message, "dismiss", SnackbarDuration.Indefinite)
viewModel.snackbarMessageShown()
}
}
SnackbarMessageEffect(
message = uiState.message,
onShowSnackbar = onShowSnackbar,
onMessageShown = viewModel::snackbarMessageShown,
)

LaunchedEffect(uiState.isUpdated) {
if (uiState.isUpdated) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import androidx.compose.material3.pulltorefresh.PullToRefreshDefaults.Indicator
import androidx.compose.material3.pulltorefresh.pullToRefresh
import androidx.compose.material3.pulltorefresh.rememberPullToRefreshState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
Expand All @@ -56,6 +55,7 @@ import com.nativeapptemplate.nativeapptemplatefree.model.ItemTagState.*
import com.nativeapptemplate.nativeapptemplatefree.ui.common.ActionText
import com.nativeapptemplate.nativeapptemplatefree.ui.common.ErrorView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.LoadingView
import com.nativeapptemplate.nativeapptemplatefree.ui.common.SnackbarMessageEffect
import com.nativeapptemplate.nativeapptemplatefree.ui.common.SwipeableItemWithActions

@Composable
Expand All @@ -71,12 +71,11 @@ internal fun ShopDetailView(
viewModel.reload()
}

LaunchedEffect(uiState.message) {
if (uiState.message.isNotBlank()) {
onShowSnackbar(uiState.message, "dismiss", SnackbarDuration.Indefinite)
viewModel.snackbarMessageShown()
}
}
SnackbarMessageEffect(
message = uiState.message,
onShowSnackbar = onShowSnackbar,
onMessageShown = viewModel::snackbarMessageShown,
)

ShopDetailView(
viewModel = viewModel,
Expand Down
Loading
Loading