Refactor renderMediaServerList to use callbacks. Use addServerList.

This commit is contained in:
KotlinGeekDev
2024-06-28 22:26:24 +01:00
parent feee845d31
commit b26355097d
@@ -146,7 +146,15 @@ fun MediaServersListView(
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
contentPadding = FeedPadding, contentPadding = FeedPadding,
) { ) {
renderMediaServerList(mediaServersState, mediaServersViewModel) renderMediaServerList(
mediaServersState = mediaServersState,
onAddServer = { server ->
mediaServersViewModel.addServer(server)
},
onDeleteServer = {
mediaServersViewModel.removeServer(serverUrl = it)
},
)
Nip96MediaServers.DEFAULT.let { Nip96MediaServers.DEFAULT.let {
item { item {
@@ -156,9 +164,7 @@ fun MediaServersListView(
action = { action = {
OutlinedButton( OutlinedButton(
onClick = { onClick = {
it.forEach { server -> mediaServersViewModel.addServerList(it.map { s -> s.baseUrl })
mediaServersViewModel.addServer(server.baseUrl)
}
}, },
) { ) {
Text(text = "Use Default List") Text(text = "Use Default List")
@@ -168,8 +174,7 @@ fun MediaServersListView(
} }
itemsIndexed( itemsIndexed(
it, it,
key = { key = { index: Int, server: Nip96MediaServers.ServerName ->
index: Int, server: Nip96MediaServers.ServerName ->
server.baseUrl server.baseUrl
}, },
) { index, server -> ) { index, server ->
@@ -190,7 +195,8 @@ fun MediaServersListView(
fun LazyListScope.renderMediaServerList( fun LazyListScope.renderMediaServerList(
mediaServersState: List<Nip96MediaServers.ServerName>, mediaServersState: List<Nip96MediaServers.ServerName>,
mediaServersViewModel: MediaServersViewModel, onAddServer: (String) -> Unit,
onDeleteServer: (String) -> Unit,
) { ) {
if (mediaServersState.isEmpty()) { if (mediaServersState.isEmpty()) {
item { item {
@@ -206,16 +212,19 @@ fun LazyListScope.renderMediaServerList(
server.baseUrl server.baseUrl
}, },
) { index, entry -> ) { index, entry ->
MediaServerEntry(serverEntry = entry) { MediaServerEntry(
mediaServersViewModel.removeServer(serverUrl = it) serverEntry = entry,
} onAddOrDelete = {
onDeleteServer(it)
},
)
} }
} }
item { item {
Spacer(modifier = StdVertSpacer) Spacer(modifier = StdVertSpacer)
MediaServerEditField { MediaServerEditField {
mediaServersViewModel.addServer(it) onAddServer(it)
} }
} }
} }
@@ -239,7 +248,7 @@ fun MediaServerEntry(
) { ) {
serverEntry.let { serverEntry.let {
Text( Text(
text = it.name, text = it.name.replaceFirstChar(Char::titlecase),
style = MaterialTheme.typography.bodyLarge, style = MaterialTheme.typography.bodyLarge,
) )
Spacer(modifier = StdVertSpacer) Spacer(modifier = StdVertSpacer)