Сравнить коммиты

...

6 Коммитов

10 изменённых файлов: 241 добавлений и 58 удалений

Просмотреть файл

@ -1,3 +1,5 @@
[Последний стабильный деплой](https://bee.csasq.ru/)
Запуск для дебага: `./gradlew wasmJsBrowserRun -t` Запуск для дебага: `./gradlew wasmJsBrowserRun -t`
Компиляция для деплоя: `./gradlew wasmJsBrowserDistribution` Компиляция для деплоя: `./gradlew wasmJsBrowserDistribution`

Просмотреть файл

@ -1,36 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="600dp"
android:height="600dp"
android:viewportWidth="600"
android:viewportHeight="600">
<path
android:pathData="M301.21,418.53C300.97,418.54 300.73,418.56 300.49,418.56C297.09,418.59 293.74,417.72 290.79,416.05L222.6,377.54C220.63,376.43 219,374.82 217.85,372.88C216.7,370.94 216.09,368.73 216.07,366.47L216.07,288.16C216.06,287.32 216.09,286.49 216.17,285.67C216.38,283.54 216.91,281.5 217.71,279.6L199.29,268.27L177.74,256.19C175.72,260.43 174.73,265.23 174.78,270.22L174.79,387.05C174.85,393.89 178.57,400.2 184.53,403.56L286.26,461.02C290.67,463.51 295.66,464.8 300.73,464.76C300.91,464.76 301.09,464.74 301.27,464.74C301.24,449.84 301.22,439.23 301.22,439.23L301.21,418.53Z"
android:fillColor="#041619"
android:fillType="nonZero"/>
<path
android:pathData="M409.45,242.91L312.64,188.23C303.64,183.15 292.58,183.26 283.68,188.51L187.92,245C183.31,247.73 179.93,251.62 177.75,256.17L177.74,256.19L199.29,268.27L217.71,279.6C217.83,279.32 217.92,279.02 218.05,278.74C218.24,278.36 218.43,277.98 218.64,277.62C219.06,276.88 219.52,276.18 220.04,275.51C221.37,273.8 223.01,272.35 224.87,271.25L289.06,233.39C290.42,232.59 291.87,231.96 293.39,231.51C295.53,230.87 297.77,230.6 300,230.72C302.98,230.88 305.88,231.73 308.47,233.2L373.37,269.85C375.54,271.08 377.49,272.68 379.13,274.57C379.68,275.19 380.18,275.85 380.65,276.53C380.86,276.84 381.05,277.15 381.24,277.47L397.79,266.39L420.34,252.93L420.31,252.88C417.55,248.8 413.77,245.35 409.45,242.91Z"
android:fillColor="#37BF6E"
android:fillType="nonZero"/>
<path
android:pathData="M381.24,277.47C381.51,277.92 381.77,278.38 382.01,278.84C382.21,279.24 382.39,279.65 382.57,280.06C382.91,280.88 383.19,281.73 383.41,282.59C383.74,283.88 383.92,285.21 383.93,286.57L383.93,361.1C383.96,363.95 383.35,366.77 382.16,369.36C381.93,369.86 381.69,370.35 381.42,370.83C379.75,373.79 377.32,376.27 374.39,378L310.2,415.87C307.47,417.48 304.38,418.39 301.21,418.53L301.22,439.23C301.22,439.23 301.24,449.84 301.27,464.74C306.1,464.61 310.91,463.3 315.21,460.75L410.98,404.25C419.88,399 425.31,389.37 425.22,379.03L425.22,267.85C425.17,262.48 423.34,257.34 420.34,252.93L397.79,266.39L381.24,277.47Z"
android:fillColor="#3870B2"
android:fillType="nonZero"/>
<path
android:pathData="M177.75,256.17C179.93,251.62 183.31,247.73 187.92,245L283.68,188.51C292.58,183.26 303.64,183.15 312.64,188.23L409.45,242.91C413.77,245.35 417.55,248.8 420.31,252.88L420.34,252.93L498.59,206.19C494.03,199.46 487.79,193.78 480.67,189.75L320.86,99.49C306.01,91.1 287.75,91.27 273.07,99.95L114.99,193.2C107.39,197.69 101.81,204.11 98.21,211.63L177.74,256.19L177.75,256.17ZM301.27,464.74C301.09,464.74 300.91,464.76 300.73,464.76C295.66,464.8 290.67,463.51 286.26,461.02L184.53,403.56C178.57,400.2 174.85,393.89 174.79,387.05L174.78,270.22C174.73,265.23 175.72,260.43 177.74,256.19L98.21,211.63C94.86,218.63 93.23,226.58 93.31,234.82L93.31,427.67C93.42,438.97 99.54,449.37 109.4,454.92L277.31,549.77C284.6,553.88 292.84,556.01 301.2,555.94L301.2,555.8C301.39,543.78 301.33,495.26 301.27,464.74Z"
android:strokeWidth="10"
android:fillColor="#00000000"
android:strokeColor="#083042"
android:fillType="nonZero"/>
<path
android:pathData="M498.59,206.19L420.34,252.93C423.34,257.34 425.17,262.48 425.22,267.85L425.22,379.03C425.31,389.37 419.88,399 410.98,404.25L315.21,460.75C310.91,463.3 306.1,464.61 301.27,464.74C301.33,495.26 301.39,543.78 301.2,555.8L301.2,555.94C309.48,555.87 317.74,553.68 325.11,549.32L483.18,456.06C497.87,447.39 506.85,431.49 506.69,414.43L506.69,230.91C506.6,222.02 503.57,213.5 498.59,206.19Z"
android:strokeWidth="10"
android:fillColor="#00000000"
android:strokeColor="#083042"
android:fillType="nonZero"/>
<path
android:pathData="M301.2,555.94C292.84,556.01 284.6,553.88 277.31,549.76L109.4,454.92C99.54,449.37 93.42,438.97 93.31,427.67L93.31,234.82C93.23,226.58 94.86,218.63 98.21,211.63C101.81,204.11 107.39,197.69 114.99,193.2L273.07,99.95C287.75,91.27 306.01,91.1 320.86,99.49L480.67,189.75C487.79,193.78 494.03,199.46 498.59,206.19C503.57,213.5 506.6,222.02 506.69,230.91L506.69,414.43C506.85,431.49 497.87,447.39 483.18,456.06L325.11,549.32C317.74,553.68 309.48,555.87 301.2,555.94Z"
android:strokeWidth="10"
android:fillColor="#00000000"
android:strokeColor="#083042"
android:fillType="nonZero"/>
</vector>

Просмотреть файл

@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="#ffffff" android:pathData="M16,11c1.66,0 2.99,-1.34 2.99,-3S17.66,5 16,5s-3,1.34 -3,3 1.34,3 3,3zM8,11c1.66,0 2.99,-1.34 2.99,-3S9.66,5 8,5 5,6.34 5,8s1.34,3 3,3zM8,13c-2.33,0 -7,1.17 -7,3.5L1,18c0,0.55 0.45,1 1,1h12c0.55,0 1,-0.45 1,-1v-1.5c0,-2.33 -4.67,-3.5 -7,-3.5zM16,13c-0.29,0 -0.62,0.02 -0.97,0.05 0.02,0.01 0.03,0.03 0.04,0.04 1.14,0.83 1.93,1.94 1.93,3.41L17,18c0,0.35 -0.07,0.69 -0.18,1L22,19c0.55,0 1,-0.45 1,-1v-1.5c0,-2.33 -4.67,-3.5 -7,-3.5z"/>
</vector>

Просмотреть файл

@ -28,8 +28,13 @@ import org.jetbrains.compose.resources.painterResource
import bee_app_frontend.composeapp.generated.resources.Res import bee_app_frontend.composeapp.generated.resources.Res
import bee_app_frontend.composeapp.generated.resources.round_accessible_forward_24 import bee_app_frontend.composeapp.generated.resources.round_accessible_forward_24
import bee_app_frontend.composeapp.generated.resources.round_elderly_24 import bee_app_frontend.composeapp.generated.resources.round_elderly_24
import bee_app_frontend.composeapp.generated.resources.round_group_24
import bee_app_frontend.composeapp.generated.resources.round_sports_kabaddi_24 import bee_app_frontend.composeapp.generated.resources.round_sports_kabaddi_24
import org.jetbrains.compose.resources.DrawableResource import org.jetbrains.compose.resources.DrawableResource
import ru.csasq.beeapp.ui.screens.AuthorRequestsScreen
import ru.csasq.beeapp.ui.screens.CustomerRequestsScreen
import ru.csasq.beeapp.ui.screens.SignaturesScreen
import ru.csasq.beeapp.ui.screens.UsersScreen
import ru.csasq.beeapp.ui.theme.darkScheme import ru.csasq.beeapp.ui.theme.darkScheme
sealed class Screen( sealed class Screen(
@ -37,17 +42,22 @@ sealed class Screen(
val title: String, val title: String,
val icon: DrawableResource, val icon: DrawableResource,
) { ) {
data object Dashboard : Screen( data object Users : Screen(
route = "users",
title = "Пользователи",
icon = Res.drawable.round_group_24,
)
data object AuthorRequests : Screen(
route = "author-requests", route = "author-requests",
title = "Запросы авторов", title = "Запросы авторов",
icon = Res.drawable.round_elderly_24, icon = Res.drawable.round_elderly_24,
) )
data object Scenarios : Screen( data object CustomerRequests : Screen(
route = "customer-requests", route = "customer-requests",
title = "Запросы пользователей", title = "Запросы пользователей",
icon = Res.drawable.round_sports_kabaddi_24, icon = Res.drawable.round_sports_kabaddi_24,
) )
data object Chats : Screen( data object Signatures : Screen(
route = "signatures", route = "signatures",
title = "Подписи", title = "Подписи",
icon = Res.drawable.round_accessible_forward_24, icon = Res.drawable.round_accessible_forward_24,
@ -93,9 +103,10 @@ fun App() {
NavigationBar { NavigationBar {
val navBackStackEntry = navController.currentBackStackEntryAsState() val navBackStackEntry = navController.currentBackStackEntryAsState()
val items = listOf( val items = listOf(
Screen.Dashboard, Screen.Users,
Screen.Scenarios, Screen.AuthorRequests,
Screen.Chats, Screen.CustomerRequests,
Screen.Signatures,
) )
items.forEach { screen -> items.forEach { screen ->
NavigationBarItem( NavigationBarItem(
@ -142,16 +153,31 @@ fun App() {
) { ) {
paddingValues -> NavHost( paddingValues -> NavHost(
navController = navController, navController = navController,
startDestination = Screen.Dashboard.route, startDestination = Screen.Users.route,
) { ) {
composable(Screen.Dashboard.route) { composable(Screen.Users.route) {
UsersScreen(
navController = navController,
paddingValues = paddingValues,
)
} }
composable(Screen.Scenarios.route) { composable(Screen.AuthorRequests.route) {
AuthorRequestsScreen(
navController = navController,
paddingValues = paddingValues,
)
} }
composable(Screen.Chats.route) { composable(Screen.CustomerRequests.route) {
CustomerRequestsScreen(
navController = navController,
paddingValues = paddingValues,
)
}
composable(Screen.Signatures.route) {
SignaturesScreen(
navController = navController,
paddingValues = paddingValues,
)
} }
} }
} }

Просмотреть файл

@ -1,9 +0,0 @@
package ru.csasq.beeapp
class Greeting {
private val platform = getPlatform()
fun greet(): String {
return "Hello, ${platform.name}!"
}
}

Просмотреть файл

@ -0,0 +1,44 @@
package ru.csasq.beeapp.ui.components
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
@Composable
fun UserButton(
title: String,
caption: String,
onClick: (() -> Unit),
) {
Column(
modifier = Modifier
.fillMaxWidth()
.clickable(
onClick = onClick,
)
.padding(
horizontal = 16.dp,
vertical = 16.dp,
),
) {
Text(
text = title,
style = MaterialTheme.typography.titleLarge,
)
Spacer(
modifier = Modifier.height(4.dp),
)
Text(
text = caption,
style = MaterialTheme.typography.bodyMedium,
)
}
}

Просмотреть файл

@ -0,0 +1,38 @@
package ru.csasq.beeapp.ui.screens
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
@Composable
fun AuthorRequestsScreen(
navController: NavController,
paddingValues: PaddingValues,
) {
Column(
modifier = Modifier
.padding(
paddingValues = paddingValues,
)
.fillMaxSize()
.verticalScroll(
state = rememberScrollState(),
),
) {
Text (
text = "Здесь будет список обращений авторов",
modifier = Modifier
.padding(
horizontal = 16.dp,
)
)
}
}

Просмотреть файл

@ -0,0 +1,38 @@
package ru.csasq.beeapp.ui.screens
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
@Composable
fun CustomerRequestsScreen(
navController: NavController,
paddingValues: PaddingValues,
) {
Column(
modifier = Modifier
.padding(
paddingValues = paddingValues,
)
.fillMaxSize()
.verticalScroll(
state = rememberScrollState(),
),
) {
Text (
text = "Здесь будет список обращений пользователей",
modifier = Modifier
.padding(
horizontal = 16.dp,
)
)
}
}

Просмотреть файл

@ -0,0 +1,38 @@
package ru.csasq.beeapp.ui.screens
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
@Composable
fun SignaturesScreen(
navController: NavController,
paddingValues: PaddingValues,
) {
Column(
modifier = Modifier
.padding(
paddingValues = paddingValues,
)
.fillMaxSize()
.verticalScroll(
state = rememberScrollState(),
),
) {
Text (
text = "Здесь будет список подписей",
modifier = Modifier
.padding(
horizontal = 16.dp,
)
)
}
}

Просмотреть файл

@ -0,0 +1,37 @@
package ru.csasq.beeapp.ui.screens
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.navigation.NavController
import ru.csasq.beeapp.ui.components.UserButton
@Composable
fun UsersScreen(
navController: NavController,
paddingValues: PaddingValues,
) {
Column(
modifier = Modifier
.padding(
paddingValues = paddingValues,
)
.fillMaxSize()
.verticalScroll(
state = rememberScrollState(),
),
) {
repeat(25) {
UserButton(
title = "Иваницкий Глеб Олегович",
caption = "Гавносос последней степени критенизма",
onClick = {},
)
}
}
}