fix revoke issue, fix dialogs

This commit is contained in:
2026-08-08 19:09:46 +03:00
parent 1ca23ac699
commit e8b74e4152
9 changed files with 14 additions and 9 deletions
@@ -10,7 +10,7 @@ import ru.shadowsparky.vbox.backend.presentation.configureRouting
import ru.shadowsparky.vbox.backend.presentation.configureSerialization import ru.shadowsparky.vbox.backend.presentation.configureSerialization
import ru.shadowsparky.vbox.backend.presentation.configureWebSocket import ru.shadowsparky.vbox.backend.presentation.configureWebSocket
@KoinApplication @KoinApplication(modules = [BackendModule::class])
object VBoxBackend object VBoxBackend
fun main(args: Array<String>) { fun main(args: Array<String>) {
@@ -28,6 +28,10 @@ fun Routing.setupAuthMethods(
post(AuthTokenRepository.UPDATE_PATH) { post(AuthTokenRepository.UPDATE_PATH) {
call.respond(default.update(call.receive())) call.respond(default.update(call.receive()))
} }
post(AuthTokenRepository.REVOKE_PATH) {
default.revoke(call.receive())
call.respond(HttpStatusCode.OK)
}
authenticate(AUTH_JWT_NAME) { authenticate(AUTH_JWT_NAME) {
setupBaseMethods(routingEntryPoint.videoApi) setupBaseMethods(routingEntryPoint.videoApi)
setupSearch(searchFactory) setupSearch(searchFactory)
@@ -42,9 +46,5 @@ fun Routing.setupAuthMethods(
.changePassword(call.receive()) .changePassword(call.receive())
call.respond(HttpStatusCode.OK) call.respond(HttpStatusCode.OK)
} }
post(AuthTokenRepository.REVOKE_PATH) {
default.revoke(call.receive())
call.respond(HttpStatusCode.OK)
}
} }
} }
@@ -119,6 +119,7 @@ fun VideoScreenContent(
if (error != null) { if (error != null) {
ErrorContent( ErrorContent(
error, error,
modifier = Modifier.fillMaxSize(),
buttonText = stringResource(Res.string.retry) buttonText = stringResource(Res.string.retry)
) { onRefresh() } ) { onRefresh() }
} else if (items != null) { } else if (items != null) {
@@ -104,6 +104,7 @@ fun OverviewScreen(component: OverviewComponent) {
errorState != null -> ErrorContent( errorState != null -> ErrorContent(
errorState!!, errorState!!,
modifier = Modifier.fillMaxSize(),
buttonText = stringResource(Res.string.retry) buttonText = stringResource(Res.string.retry)
) { component.loadDetailsIfNeeded() } ) { component.loadDetailsIfNeeded() }
@@ -179,6 +179,7 @@ fun EpisodesOverviewList(
if (errorCode != null) { if (errorCode != null) {
ErrorContent( ErrorContent(
errorCode, errorCode,
modifier = Modifier.fillMaxSize(),
buttonText = stringResource(Res.string.retry) buttonText = stringResource(Res.string.retry)
) { loadLinks() } ) { loadLinks() }
} else if (episodes != null) { } else if (episodes != null) {
@@ -4,6 +4,7 @@ import androiddev.apps.vbox.client.shared.generated.resources.Res
import androiddev.apps.vbox.client.shared.generated.resources.retry import androiddev.apps.vbox.client.shared.generated.resources.retry
import androiddev.apps.vbox.client.shared.generated.resources.seasons_overview import androiddev.apps.vbox.client.shared.generated.resources.seasons_overview
import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Text import androidx.compose.material3.Text
@@ -41,6 +42,7 @@ fun SeasonOverviewScreen(component: SeasonOverviewComponent) {
if (err.value != null) { if (err.value != null) {
ErrorContent( ErrorContent(
err.value!!, err.value!!,
modifier = Modifier.fillMaxSize(),
buttonText = stringResource(Res.string.retry) buttonText = stringResource(Res.string.retry)
) { component.load() } ) { component.load() }
} else if (seasons.value != null) { } else if (seasons.value != null) {
@@ -49,7 +49,7 @@ fun PlayerScreen(component: PlayerComponent) {
is PlayerEvent.Error -> { is PlayerEvent.Error -> {
ErrorContent( ErrorContent(
state.message, state.message,
modifier = Modifier.padding(it), modifier = Modifier.fillMaxSize().padding(it),
buttonText = stringResource(Res.string.retry), buttonText = stringResource(Res.string.retry),
) { component.load() } ) { component.load() }
} }
@@ -12,6 +12,7 @@ import ru.shadowsparky.hasAndroidSupport
import ru.shadowsparky.hasMultiplatformSupport import ru.shadowsparky.hasMultiplatformSupport
import ru.shadowsparky.implementation import ru.shadowsparky.implementation
import ru.shadowsparky.isAndroidApp import ru.shadowsparky.isAndroidApp
import ru.shadowsparky.isBackendApp
import ru.shadowsparky.isWebApp import ru.shadowsparky.isWebApp
class Koin : Plugin<Project> { class Koin : Plugin<Project> {
@@ -19,7 +20,7 @@ class Koin : Plugin<Project> {
val libs = findLibs() val libs = findLibs()
plugins.apply(libs.findPlugin("koin.compiler").get().get().pluginId) plugins.apply(libs.findPlugin("koin.compiler").get().get().pluginId)
koinCompiler { koinCompiler {
val checkSafety = isAndroidApp || isWebApp // || isBackendApp val checkSafety = isAndroidApp || isWebApp || isBackendApp
compileSafety.set(checkSafety) compileSafety.set(checkSafety)
} }
dependencies { dependencies {
@@ -6,7 +6,6 @@ import androiddev.libs.ui.generated.resources.ok
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
@@ -32,7 +31,7 @@ fun ErrorContent(
Column( Column(
verticalArrangement = Arrangement.Center, verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
modifier = modifier.fillMaxSize().padding(4.dp) modifier = modifier.padding(4.dp)
) { ) {
Text( Text(
text = stringResource(Res.string.error_title), text = stringResource(Res.string.error_title),