|
|
@@ -19,8 +19,13 @@ import androidx.compose.material3.Text
|
|
|
import androidx.compose.material3.TextButton
|
|
|
import androidx.compose.material3.TextFieldColors
|
|
|
import androidx.compose.runtime.Composable
|
|
|
+import androidx.compose.runtime.LaunchedEffect
|
|
|
+import androidx.compose.runtime.remember
|
|
|
+import androidx.compose.runtime.withFrameNanos
|
|
|
import androidx.compose.ui.Alignment
|
|
|
import androidx.compose.ui.Modifier
|
|
|
+import androidx.compose.ui.focus.FocusRequester
|
|
|
+import androidx.compose.ui.focus.focusRequester
|
|
|
import androidx.compose.ui.res.stringResource
|
|
|
import androidx.compose.ui.unit.dp
|
|
|
import com.example.torus.R
|
|
|
@@ -56,8 +61,16 @@ fun NamedExerciseEditor(
|
|
|
modifier: Modifier = Modifier,
|
|
|
onMoveUp: (() -> Unit)? = null,
|
|
|
onMoveDown: (() -> Unit)? = null,
|
|
|
- onRemove: (() -> Unit)? = null
|
|
|
+ onRemove: (() -> Unit)? = null,
|
|
|
+ autoFocusName: Boolean = false
|
|
|
) {
|
|
|
+ val nameFocusRequester = remember { FocusRequester() }
|
|
|
+ LaunchedEffect(autoFocusName) {
|
|
|
+ if (autoFocusName) {
|
|
|
+ withFrameNanos { }
|
|
|
+ nameFocusRequester.requestFocus()
|
|
|
+ }
|
|
|
+ }
|
|
|
val shape = RoundedCornerShape(14.dp)
|
|
|
Column(
|
|
|
modifier = modifier
|
|
|
@@ -85,7 +98,8 @@ fun NamedExerciseEditor(
|
|
|
TorusTextField(
|
|
|
value = name,
|
|
|
onValueChange = onNameChange,
|
|
|
- label = stringResource(R.string.exercise_name)
|
|
|
+ label = stringResource(R.string.exercise_name),
|
|
|
+ modifier = Modifier.focusRequester(nameFocusRequester)
|
|
|
)
|
|
|
if (onMoveUp != null || onMoveDown != null || onRemove != null) {
|
|
|
Row(
|