Add suggested values for variable dropdown (#9437)

<img width="378" alt="Capture d’écran 2025-01-07 à 15 37 20"
src="https://github.com/user-attachments/assets/c15abcac-684a-4c3b-ad12-62cf91afe927"
/>

Here is a first version:
- simple fields have a suggested value
- composite do not, but sub values of composite do
- json, arrays or complex values do not
This commit is contained in:
Thomas Trompette
2025-01-10 16:18:37 +01:00
committed by GitHub
parent 5648c3b31c
commit 92c119ed43
12 changed files with 89 additions and 24 deletions

View File

@ -7,13 +7,16 @@ type FakeValueTypes =
| Date
| FakeValueTypes[]
| FieldMetadataType
| { [key: string]: FakeValueTypes };
| { [key: string]: FakeValueTypes }
| null;
export const generateFakeValue = (valueType: string): FakeValueTypes => {
type TypeClassification = 'Primitive' | 'FieldMetadataType';
const generatePrimitiveValue = (valueType: string): FakeValueTypes => {
if (valueType === 'string') {
return 'generated-string-value';
return 'My text';
} else if (valueType === 'number') {
return 1;
return 20;
} else if (valueType === 'boolean') {
return true;
} else if (valueType === 'Date') {
@ -38,9 +41,51 @@ export const generateFakeValue = (valueType: string): FakeValueTypes => {
});
return objData;
} else if (valueType === FieldMetadataType.TEXT) {
return 'My text';
} else {
return 'generated-string-value';
return null;
}
};
const generateFieldMetadataTypeValue = (
valueType: string,
): FakeValueTypes | null => {
// composite types do not need to be generated
switch (valueType) {
case FieldMetadataType.TEXT:
return 'My text';
case FieldMetadataType.NUMBER:
return 20;
case FieldMetadataType.BOOLEAN:
return true;
case FieldMetadataType.DATE:
return '01/23/2025';
case FieldMetadataType.DATE_TIME:
return '01/23/2025 15:16';
case FieldMetadataType.ADDRESS:
return '123 Main St, Anytown, CA 12345';
case FieldMetadataType.FULL_NAME:
return 'Tim Cook';
case FieldMetadataType.RAW_JSON:
return null;
case FieldMetadataType.RICH_TEXT:
return 'My rich text';
case FieldMetadataType.UUID:
return '123e4567-e89b-12d3-a456-426614174000';
default:
return null;
}
};
export const generateFakeValue = (
valueType: string,
classification: TypeClassification = 'Primitive',
): FakeValueTypes => {
switch (classification) {
case 'Primitive':
return generatePrimitiveValue(valueType);
case 'FieldMetadataType':
return generateFieldMetadataTypeValue(valueType);
default:
return null;
}
};