mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Add confirmation when adding repo via URI (#1158)
* Add confirmation when adding repo via URI * Blank lines * Suggestions * Reverting Changes * Removing Unused Imports
This commit is contained in:
		| @@ -8,6 +8,7 @@ import androidx.compose.ui.platform.LocalContext | ||||
| import cafe.adriel.voyager.core.model.rememberScreenModel | ||||
| import cafe.adriel.voyager.navigator.LocalNavigator | ||||
| import cafe.adriel.voyager.navigator.currentOrThrow | ||||
| import eu.kanade.presentation.more.settings.screen.browse.components.ExtensionRepoConfirmDialog | ||||
| import eu.kanade.presentation.more.settings.screen.browse.components.ExtensionRepoConflictDialog | ||||
| import eu.kanade.presentation.more.settings.screen.browse.components.ExtensionRepoCreateDialog | ||||
| import eu.kanade.presentation.more.settings.screen.browse.components.ExtensionRepoDeleteDialog | ||||
| @@ -32,7 +33,7 @@ class ExtensionReposScreen( | ||||
|         val state by screenModel.state.collectAsState() | ||||
|  | ||||
|         LaunchedEffect(url) { | ||||
|             url?.let { screenModel.createRepo(it) } | ||||
|             url?.let { screenModel.showDialog(RepoDialog.Confirm(it)) } | ||||
|         } | ||||
|  | ||||
|         if (state is RepoScreenState.Loading) { | ||||
| @@ -67,7 +68,6 @@ class ExtensionReposScreen( | ||||
|                     repo = dialog.repo, | ||||
|                 ) | ||||
|             } | ||||
|  | ||||
|             is RepoDialog.Conflict -> { | ||||
|                 ExtensionRepoConflictDialog( | ||||
|                     onDismissRequest = screenModel::dismissDialog, | ||||
| @@ -76,6 +76,13 @@ class ExtensionReposScreen( | ||||
|                     newRepo = dialog.newRepo, | ||||
|                 ) | ||||
|             } | ||||
|             is RepoDialog.Confirm -> { | ||||
|                 ExtensionRepoConfirmDialog( | ||||
|                     onDismissRequest = screenModel::dismissDialog, | ||||
|                     onCreate = { screenModel.createRepo(dialog.url) }, | ||||
|                     repo = dialog.url, | ||||
|                 ) | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         LaunchedEffect(Unit) { | ||||
|   | ||||
| @@ -125,6 +125,7 @@ sealed class RepoDialog { | ||||
|     data object Create : RepoDialog() | ||||
|     data class Delete(val repo: String) : RepoDialog() | ||||
|     data class Conflict(val oldRepo: ExtensionRepo, val newRepo: ExtensionRepo) : RepoDialog() | ||||
|     data class Confirm(val url: String) : RepoDialog() | ||||
| } | ||||
|  | ||||
| sealed class RepoScreenState { | ||||
|   | ||||
| @@ -152,3 +152,35 @@ fun ExtensionRepoConflictDialog( | ||||
|         }, | ||||
|     ) | ||||
| } | ||||
|  | ||||
| @Composable | ||||
| fun ExtensionRepoConfirmDialog( | ||||
|     onDismissRequest: () -> Unit, | ||||
|     onCreate: () -> Unit, | ||||
|     repo: String, | ||||
| ) { | ||||
|     AlertDialog( | ||||
|         onDismissRequest = onDismissRequest, | ||||
|         title = { | ||||
|             Text(text = stringResource(MR.strings.action_add_repo)) | ||||
|         }, | ||||
|         text = { | ||||
|             Text(text = stringResource(MR.strings.add_repo_confirmation, repo)) | ||||
|         }, | ||||
|         confirmButton = { | ||||
|             TextButton( | ||||
|                 onClick = { | ||||
|                     onCreate() | ||||
|                     onDismissRequest() | ||||
|                 }, | ||||
|             ) { | ||||
|                 Text(text = stringResource(MR.strings.action_add)) | ||||
|             } | ||||
|         }, | ||||
|         dismissButton = { | ||||
|             TextButton(onClick = onDismissRequest) { | ||||
|                 Text(text = stringResource(MR.strings.action_cancel)) | ||||
|             } | ||||
|         }, | ||||
|     ) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user