feat: centralize field type mapping to improve code maintainability and readability
This commit is contained in:
+32
-54
@@ -711,6 +711,36 @@ private fun getDisplayTextForMeasure(field: Field, raw: String?): String {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Centralized mapping from canonical/legacy field type strings to user-facing labels
|
||||||
|
private fun fieldTypeToLabel(type: String): String {
|
||||||
|
return when (type.uppercase()) {
|
||||||
|
"TEXT", "STRING" -> "Text"
|
||||||
|
"MULTILINE_TEXT" -> "Multi-line Text"
|
||||||
|
"NUMBER" -> "Number"
|
||||||
|
"CURRENCY", "PRICE" -> "Currency"
|
||||||
|
"PERCENTAGE" -> "Percentage"
|
||||||
|
"DROPDOWN" -> "Dropdown"
|
||||||
|
"AUTOCOMPLETE" -> "Autocomplete"
|
||||||
|
"CHECKBOX" -> "Checkbox"
|
||||||
|
"SWITCH" -> "Switch"
|
||||||
|
"URL" -> "URL"
|
||||||
|
"EMAIL" -> "Email"
|
||||||
|
"PHONE" -> "Phone"
|
||||||
|
"DATE" -> "Date"
|
||||||
|
"TIME" -> "Time"
|
||||||
|
"DATETIME" -> "Date & Time"
|
||||||
|
"DURATION" -> "Duration"
|
||||||
|
"IMAGE" -> "Image"
|
||||||
|
"FILE" -> "File"
|
||||||
|
"BARCODE" -> "Barcode"
|
||||||
|
"SIGNATURE" -> "Signature"
|
||||||
|
"RATING" -> "Rating"
|
||||||
|
"COLOR" -> "Color"
|
||||||
|
"LOCATION" -> "Location"
|
||||||
|
else -> "Text"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalFoundationApi::class)
|
@OptIn(ExperimentalFoundationApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun FieldHeader(
|
fun FieldHeader(
|
||||||
@@ -1337,33 +1367,7 @@ fun AddFieldDialog(
|
|||||||
onExpandedChange = { expanded = !expanded },
|
onExpandedChange = { expanded = !expanded },
|
||||||
) {
|
) {
|
||||||
OutlinedTextField(
|
OutlinedTextField(
|
||||||
value =
|
value = fieldTypeToLabel(selectedFieldType),
|
||||||
when (selectedFieldType) {
|
|
||||||
"TEXT" -> "Text"
|
|
||||||
"MULTILINE_TEXT" -> "Multi-line Text"
|
|
||||||
"NUMBER" -> "Number"
|
|
||||||
"CURRENCY" -> "Currency"
|
|
||||||
"PERCENTAGE" -> "Percentage"
|
|
||||||
"DROPDOWN" -> "Dropdown"
|
|
||||||
"AUTOCOMPLETE" -> "Autocomplete"
|
|
||||||
"CHECKBOX" -> "Checkbox"
|
|
||||||
"SWITCH" -> "Switch"
|
|
||||||
"URL" -> "URL"
|
|
||||||
"EMAIL" -> "Email"
|
|
||||||
"PHONE" -> "Phone"
|
|
||||||
"DATE" -> "Date"
|
|
||||||
"TIME" -> "Time"
|
|
||||||
"DATETIME" -> "Date & Time"
|
|
||||||
"DURATION" -> "Duration"
|
|
||||||
"IMAGE" -> "Image"
|
|
||||||
"FILE" -> "File"
|
|
||||||
"BARCODE" -> "Barcode"
|
|
||||||
"SIGNATURE" -> "Signature"
|
|
||||||
"RATING" -> "Rating"
|
|
||||||
"COLOR" -> "Color"
|
|
||||||
"LOCATION" -> "Location"
|
|
||||||
else -> "Text"
|
|
||||||
},
|
|
||||||
onValueChange = {},
|
onValueChange = {},
|
||||||
readOnly = true,
|
readOnly = true,
|
||||||
label = { Text("Field Type") },
|
label = { Text("Field Type") },
|
||||||
@@ -1679,33 +1683,7 @@ fun EditFieldDialog(
|
|||||||
onExpandedChange = { expanded = !expanded },
|
onExpandedChange = { expanded = !expanded },
|
||||||
) {
|
) {
|
||||||
OutlinedTextField(
|
OutlinedTextField(
|
||||||
value =
|
value = fieldTypeToLabel(selectedFieldType),
|
||||||
when (selectedFieldType) {
|
|
||||||
"TEXT", "STRING" -> "Text"
|
|
||||||
"MULTILINE_TEXT" -> "Multi-line Text"
|
|
||||||
"NUMBER" -> "Number"
|
|
||||||
"CURRENCY", "PRICE" -> "Currency"
|
|
||||||
"PERCENTAGE" -> "Percentage"
|
|
||||||
"DROPDOWN" -> "Dropdown"
|
|
||||||
"AUTOCOMPLETE" -> "Autocomplete"
|
|
||||||
"CHECKBOX" -> "Checkbox"
|
|
||||||
"SWITCH" -> "Switch"
|
|
||||||
"URL" -> "URL"
|
|
||||||
"EMAIL" -> "Email"
|
|
||||||
"PHONE" -> "Phone"
|
|
||||||
"DATE" -> "Date"
|
|
||||||
"TIME" -> "Time"
|
|
||||||
"DATETIME" -> "Date & Time"
|
|
||||||
"DURATION" -> "Duration"
|
|
||||||
"IMAGE" -> "Image"
|
|
||||||
"FILE" -> "File"
|
|
||||||
"BARCODE" -> "Barcode"
|
|
||||||
"SIGNATURE" -> "Signature"
|
|
||||||
"RATING" -> "Rating"
|
|
||||||
"COLOR" -> "Color"
|
|
||||||
"LOCATION" -> "Location"
|
|
||||||
else -> "Text"
|
|
||||||
},
|
|
||||||
onValueChange = {},
|
onValueChange = {},
|
||||||
readOnly = true,
|
readOnly = true,
|
||||||
label = { Text("Field Type") },
|
label = { Text("Field Type") },
|
||||||
|
|||||||
Reference in New Issue
Block a user