|
@@ -1,19 +1,20 @@
|
|
|
package com.sirekanian.spacetime.ui
|
|
package com.sirekanian.spacetime.ui
|
|
|
|
|
|
|
|
-import androidx.compose.foundation.layout.PaddingValues
|
|
|
|
|
-import androidx.compose.foundation.layout.fillMaxSize
|
|
|
|
|
-import androidx.compose.foundation.layout.padding
|
|
|
|
|
-import androidx.compose.material.Button
|
|
|
|
|
-import androidx.compose.material.Text
|
|
|
|
|
-import androidx.compose.runtime.Composable
|
|
|
|
|
|
|
+import androidx.compose.foundation.layout.*
|
|
|
|
|
+import androidx.compose.material.icons.Icons
|
|
|
|
|
+import androidx.compose.material.icons.filled.ArrowBack
|
|
|
|
|
+import androidx.compose.material.icons.filled.Delete
|
|
|
|
|
+import androidx.compose.material.icons.filled.Edit
|
|
|
|
|
+import androidx.compose.runtime.*
|
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.Modifier
|
|
|
import androidx.compose.ui.layout.ContentScale
|
|
import androidx.compose.ui.layout.ContentScale
|
|
|
import androidx.compose.ui.platform.LocalContext
|
|
import androidx.compose.ui.platform.LocalContext
|
|
|
-import androidx.compose.ui.unit.dp
|
|
|
|
|
import coil.compose.AsyncImage
|
|
import coil.compose.AsyncImage
|
|
|
import coil.request.ImageRequest
|
|
import coil.request.ImageRequest
|
|
|
import com.sirekanian.spacetime.ImagePage
|
|
import com.sirekanian.spacetime.ImagePage
|
|
|
import com.sirekanian.spacetime.MainState
|
|
import com.sirekanian.spacetime.MainState
|
|
|
|
|
+import com.sirekanian.spacetime.ext.DefaultAnimatedVisibility
|
|
|
|
|
+import com.sirekanian.spacetime.ext.VectorIconButton
|
|
|
|
|
|
|
|
@Composable
|
|
@Composable
|
|
|
fun ImagePageContent(insets: PaddingValues, state: MainState, page: ImagePage, index: Int) {
|
|
fun ImagePageContent(insets: PaddingValues, state: MainState, page: ImagePage, index: Int) {
|
|
@@ -26,12 +27,18 @@ fun ImagePageContent(insets: PaddingValues, state: MainState, page: ImagePage, i
|
|
|
modifier = Modifier.fillMaxSize(),
|
|
modifier = Modifier.fillMaxSize(),
|
|
|
contentScale = ContentScale.Crop,
|
|
contentScale = ContentScale.Crop,
|
|
|
)
|
|
)
|
|
|
- Button(
|
|
|
|
|
- onClick = { state.removePage(index) },
|
|
|
|
|
- modifier = Modifier
|
|
|
|
|
- .padding(insets)
|
|
|
|
|
- .padding(16.dp),
|
|
|
|
|
- ) {
|
|
|
|
|
- Text("Delete")
|
|
|
|
|
|
|
+ var isEditMode by remember { mutableStateOf(false) }
|
|
|
|
|
+ DefaultAnimatedVisibility(visible = !isEditMode) {
|
|
|
|
|
+ Row(Modifier.padding(insets)) {
|
|
|
|
|
+ Spacer(Modifier.weight(1f))
|
|
|
|
|
+ VectorIconButton(Icons.Default.Edit, onClick = { isEditMode = true })
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ DefaultAnimatedVisibility(visible = isEditMode) {
|
|
|
|
|
+ Row(Modifier.padding(insets)) {
|
|
|
|
|
+ VectorIconButton(Icons.Default.ArrowBack, onClick = { isEditMode = false })
|
|
|
|
|
+ Spacer(Modifier.weight(1f))
|
|
|
|
|
+ VectorIconButton(Icons.Default.Delete, onClick = { state.removePage(index) })
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|