Compose Snackbar

@Composable fun ListScreen( vm: UIViewModel, onItemSelected: (Kiroku) -> Unit, onClickFAB: () ->Unit, onClickSearch: () -> Unit, onClickReference: () -> Unit, ) { //表示画面 val scaffoldState = rememberScaffoldState()

if (vm.snackbarMessages.size != 0) {
    LaunchedEffect(scaffoldState.snackbarHostState) {
        while (vm.snackbarMessages.size != 0) {
            scaffoldState.snackbarHostState.showSnackbar("${vm.snackbarMessages[0]}")
            vm.snackbarMessages = vm.snackbarMessages.drop(1)
        }
    }
}

Scaffold(
    scaffoldState = scaffoldState,
    topBar = { ListTopBar(onClickSearch, onClickReference) },
    floatingActionButton = { ListFAB(vm, onClickFAB)},
    //drawerContent = {},
    //content = { KirokuContent() },
    bottomBar = { KirokuBottomBar() },
) {
    ListContent(vm, onItemSelected)
}

}

他の場所でこのvm.snackbarMessagesに要素を追加する fun onClickSave() { Graph.repo.update(vm.kirokuEditting.value) vm.snackbarMessages = vm.snackbarMessages + “保存しました id:${vm.kirokuEditting.value.id}” }