MainSettingsPage.kt 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package eu.mjdev.desktop.components.controlcenter.pages
  2. import androidx.compose.foundation.gestures.Orientation
  3. import androidx.compose.foundation.layout.*
  4. import androidx.compose.material.Divider
  5. import androidx.compose.material.icons.Icons
  6. import androidx.compose.material.icons.filled.Home
  7. import androidx.compose.ui.Alignment
  8. import androidx.compose.ui.Modifier
  9. import androidx.compose.ui.graphics.Color
  10. import androidx.compose.ui.unit.dp
  11. import eu.mjdev.desktop.components.controlcenter.ControlCenterPage
  12. import eu.mjdev.desktop.components.custom.DateTime
  13. import eu.mjdev.desktop.components.custom.PowerBlock
  14. import eu.mjdev.desktop.components.custom.UserAvatar
  15. import eu.mjdev.desktop.extensions.Modifier.rectShadow
  16. @Suppress("FunctionName")
  17. fun MainSettingsPage() = ControlCenterPage(
  18. icon = Icons.Filled.Home,
  19. name = "Home"
  20. ) {
  21. Box(
  22. modifier = Modifier.fillMaxSize()
  23. ) {
  24. Column(
  25. modifier = Modifier
  26. .fillMaxWidth()
  27. .align(Alignment.TopCenter)
  28. .rectShadow(8.dp, Color.Black.copy(alpha = 0.3f))
  29. ) {
  30. UserAvatar(
  31. backgroundColor = backgroundColor,
  32. avatarSize = 128.dp,
  33. orientation = Orientation.Vertical,
  34. onUserAvatarClick = {
  35. // todo
  36. }
  37. )
  38. Divider(
  39. modifier = Modifier.fillMaxWidth().height(2.dp),
  40. color = Color.Transparent,
  41. thickness = 2.dp
  42. )
  43. DateTime(
  44. backgroundColor = backgroundColor
  45. )
  46. }
  47. Box(
  48. modifier = Modifier
  49. .fillMaxWidth()
  50. .align(Alignment.BottomCenter)
  51. ) {
  52. // FlexibleBottomSheet(
  53. // onDismissRequest = {},
  54. // sheetState = rememberFlexibleBottomSheetState(
  55. // flexibleSheetSize = FlexibleSheetSize(
  56. // fullyExpanded = 0.9f,
  57. // intermediatelyExpanded = 0.5f,
  58. // slightlyExpanded = 0.15f,
  59. // ),
  60. // isModal = true,
  61. // skipSlightlyExpanded = true,
  62. // ),
  63. // containerColor = backgroundColor,
  64. // ) {
  65. // Text(
  66. // modifier = Modifier
  67. // .fillMaxWidth()
  68. // .padding(8.dp),
  69. // text = "This is Flexible Bottom Sheet",
  70. // textAlign = TextAlign.Center,
  71. // color = Color.White,
  72. // )
  73. // }
  74. Column(
  75. modifier = Modifier
  76. .fillMaxWidth()
  77. .wrapContentHeight()
  78. .align(Alignment.BottomCenter)
  79. ) {
  80. PowerBlock(
  81. backgroundColor = backgroundColor,
  82. onPowerButtonClick = {
  83. // todo : dialog
  84. api.shutdown()
  85. }
  86. )
  87. }
  88. }
  89. }
  90. }