Skip to content

Commit bdbc65f

Browse files
committed
Bugfix with switching between different files and UI change for top row
1 parent d85d0ff commit bdbc65f

File tree

5 files changed

+1086
-23
lines changed

5 files changed

+1086
-23
lines changed

workflow-trace-viewer/src/jvmMain/kotlin/com/squareup/workflow1/traceviewer/App.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ public fun App(
5454
InfoPanel(selectedNode)
5555

5656
// Bottom right upload button
57-
UploadFile(resetSelectedNode = { selectedNode = null }, onFileSelect = { selectedFile = it })
57+
val onReset = {
58+
selectedNode = null
59+
snapshotIndex = 0
60+
}
61+
UploadFile(onReset = onReset, onFileSelect = { selectedFile = it })
5862
}
5963
}

workflow-trace-viewer/src/jvmMain/kotlin/com/squareup/workflow1/traceviewer/ui/StateSelectTab.kt

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package com.squareup.workflow1.traceviewer.ui
22

3+
import androidx.compose.foundation.clickable
34
import androidx.compose.foundation.layout.padding
45
import androidx.compose.foundation.lazy.LazyRow
56
import androidx.compose.foundation.lazy.rememberLazyListState
6-
import androidx.compose.material.Button
7-
import androidx.compose.material.ButtonDefaults
7+
import androidx.compose.foundation.shape.RoundedCornerShape
8+
import androidx.compose.material.Surface
89
import androidx.compose.material.Text
910
import androidx.compose.runtime.Composable
1011
import androidx.compose.ui.Modifier
12+
import androidx.compose.ui.draw.clip
1113
import androidx.compose.ui.graphics.Color
1214
import androidx.compose.ui.unit.dp
1315
import com.squareup.workflow1.traceviewer.model.WorkflowNode
@@ -21,20 +23,25 @@ public fun StateSelectTab(
2123
) {
2224
val state = rememberLazyListState()
2325

24-
LazyRow(
25-
modifier = modifier,
26-
state = state
26+
Surface(
27+
modifier = modifier
28+
.padding(4.dp),
29+
color = Color.White,
2730
) {
28-
items(trace.size) { index ->
29-
Button(
30-
modifier = Modifier
31-
.padding(10.dp),
32-
onClick = { onIndexChange(index) },
33-
colors = ButtonDefaults.buttonColors(
34-
backgroundColor = if (index == currentIndex) Color.DarkGray else Color.LightGray
31+
LazyRow(
32+
modifier = Modifier
33+
.padding(8.dp),
34+
state = state
35+
) {
36+
items(trace.size) { index ->
37+
Text(
38+
text = "State ${index + 1}",
39+
color = if (index == currentIndex) Color.Black else Color.LightGray,
40+
modifier = Modifier
41+
.clip(RoundedCornerShape(16.dp))
42+
.clickable { onIndexChange(index) }
43+
.padding(10.dp)
3544
)
36-
) {
37-
Text("State ${index + 1}")
3845
}
3946
}
4047
}

workflow-trace-viewer/src/jvmMain/kotlin/com/squareup/workflow1/traceviewer/ui/WorkflowInfoPanel.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ import androidx.compose.material.icons.Icons.AutoMirrored.Filled
1414
import androidx.compose.material.icons.automirrored.filled.KeyboardArrowLeft
1515
import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight
1616
import androidx.compose.runtime.Composable
17+
import androidx.compose.runtime.getValue
1718
import androidx.compose.runtime.mutableStateOf
1819
import androidx.compose.runtime.remember
20+
import androidx.compose.runtime.setValue
1921
import androidx.compose.ui.Alignment
2022
import androidx.compose.ui.Modifier
2123
import androidx.compose.ui.graphics.Color
@@ -35,26 +37,26 @@ public fun InfoPanel(
3537
modifier: Modifier = Modifier
3638
) {
3739
Row {
38-
val panelOpen = remember { mutableStateOf(false) }
40+
var panelOpen by remember { mutableStateOf(false) }
3941

4042
// based on open/close, display the node details (Column)
41-
if (panelOpen.value) {
43+
if (panelOpen) {
4244
PanelDetails(
4345
selectedNode,
4446
Modifier.fillMaxWidth(.35f)
4547
)
4648
}
4749

4850
IconButton(
49-
onClick = { panelOpen.value = !panelOpen.value },
51+
onClick = { panelOpen = !panelOpen },
5052
modifier = Modifier
5153
.padding(8.dp)
5254
.size(30.dp)
5355
.align(Alignment.Top)
5456
) {
5557
Icon(
56-
imageVector = if (panelOpen.value) Filled.KeyboardArrowLeft else Filled.KeyboardArrowRight,
57-
contentDescription = if (panelOpen.value) "Close Panel" else "Open Panel",
58+
imageVector = if (panelOpen) Filled.KeyboardArrowLeft else Filled.KeyboardArrowRight,
59+
contentDescription = if (panelOpen) "Close Panel" else "Open Panel",
5860
modifier = Modifier
5961
)
6062
}

workflow-trace-viewer/src/jvmMain/kotlin/com/squareup/workflow1/traceviewer/utils/UploadFile.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import io.github.vinceglb.filekit.dialogs.compose.rememberFilePickerLauncher
2323
*/
2424
@Composable
2525
public fun UploadFile(
26-
resetSelectedNode: () -> Unit,
26+
onReset: () -> Unit,
2727
onFileSelect: (PlatformFile?) -> Unit,
2828
modifier: Modifier = Modifier,
2929
) {
@@ -36,7 +36,7 @@ public fun UploadFile(
3636
type = FileKitType.File(listOf("json", "txt")),
3737
title = "Select Workflow Trace File"
3838
) {
39-
resetSelectedNode()
39+
onReset()
4040
onFileSelect(it)
4141
}
4242
Button(

0 commit comments

Comments
 (0)