Fix add feed when there are no feeds

This commit is contained in:
Jobobby04 2022-10-08 20:46:41 -04:00
parent 06d2e631be
commit 7d8f89826f

View File

@ -86,28 +86,57 @@ fun FeedScreen(
FeedList( FeedList(
state = presenter, state = presenter,
getMangaState = { item, source -> presenter.getManga(item, source) }, getMangaState = { item, source -> presenter.getManga(item, source) },
onClickAdd = onClickAdd,
onClickCreate = onClickCreate,
onClickSavedSearch = onClickSavedSearch, onClickSavedSearch = onClickSavedSearch,
onClickSource = onClickSource, onClickSource = onClickSource,
onClickDelete = onClickDelete, onClickDelete = onClickDelete,
onClickDeleteConfirm = onClickDeleteConfirm,
onClickManga = onClickManga, onClickManga = onClickManga,
) )
} }
} }
when (val dialog = presenter.dialog) {
is FeedPresenter.Dialog.AddFeed -> {
FeedAddDialog(
sources = dialog.options,
onDismiss = { presenter.dialog = null },
onClickAdd = {
presenter.dialog = null
onClickAdd(it ?: return@FeedAddDialog)
},
)
}
is FeedPresenter.Dialog.AddFeedSearch -> {
FeedAddSearchDialog(
source = dialog.source,
savedSearches = dialog.options,
onDismiss = { presenter.dialog = null },
onClickAdd = { source, savedSearch ->
presenter.dialog = null
onClickCreate(source, savedSearch)
},
)
}
is FeedPresenter.Dialog.DeleteFeed -> {
FeedDeleteConfirmDialog(
feed = dialog.feed,
onDismiss = { presenter.dialog = null },
onClickDeleteConfirm = {
presenter.dialog = null
onClickDeleteConfirm(it)
},
)
}
null -> Unit
}
} }
@Composable @Composable
fun FeedList( fun FeedList(
state: FeedState, state: FeedState,
getMangaState: @Composable ((Manga, CatalogueSource?) -> State<Manga>), getMangaState: @Composable ((Manga, CatalogueSource?) -> State<Manga>),
onClickAdd: (CatalogueSource) -> Unit,
onClickCreate: (CatalogueSource, SavedSearch?) -> Unit,
onClickSavedSearch: (SavedSearch, CatalogueSource) -> Unit, onClickSavedSearch: (SavedSearch, CatalogueSource) -> Unit,
onClickSource: (CatalogueSource) -> Unit, onClickSource: (CatalogueSource) -> Unit,
onClickDelete: (FeedSavedSearch) -> Unit, onClickDelete: (FeedSavedSearch) -> Unit,
onClickDeleteConfirm: (FeedSavedSearch) -> Unit,
onClickManga: (Manga) -> Unit, onClickManga: (Manga) -> Unit,
) { ) {
ScrollbarLazyColumn( ScrollbarLazyColumn(
@ -128,41 +157,6 @@ fun FeedList(
) )
} }
} }
when (val dialog = state.dialog) {
is FeedPresenter.Dialog.AddFeed -> {
FeedAddDialog(
sources = dialog.options,
onDismiss = { state.dialog = null },
onClickAdd = {
state.dialog = null
onClickAdd(it ?: return@FeedAddDialog)
},
)
}
is FeedPresenter.Dialog.AddFeedSearch -> {
FeedAddSearchDialog(
source = dialog.source,
savedSearches = dialog.options,
onDismiss = { state.dialog = null },
onClickAdd = { source, savedSearch ->
state.dialog = null
onClickCreate(source, savedSearch)
},
)
}
is FeedPresenter.Dialog.DeleteFeed -> {
FeedDeleteConfirmDialog(
feed = dialog.feed,
onDismiss = { state.dialog = null },
onClickDeleteConfirm = {
state.dialog = null
onClickDeleteConfirm(it)
},
)
}
null -> Unit
}
} }
@Composable @Composable