Skip to content

Commit 2cff2cc

Browse files
committed
feat: Render undefined if value doesn't exist. Added codify test file
1 parent 161a7e2 commit 2cff2cc

3 files changed

Lines changed: 53 additions & 1 deletion

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
"scripts": {
3737
"start": "ts-node-esm src/demo/overview.tsx",
3838
"demo:overview": "tsx src/demo/overview.tsx",
39+
"demo:codify": "tsx src/demo/codify.tsx",
3940
"demo:packagejson": "tsx src/demo/packagejson.tsx",
4041
"demo:custommanager": "tsx src/demo/custommanager.tsx",
4142
"demo:imperative": "tsx src/demo/imperative.ts",

src/FormFieldRenderer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export const FormFieldRenderer: React.FC<FormFieldRendererProps<any>> = props =>
6161
{props.field.required && <Text color="red">*</Text>}
6262
<Text>: </Text>
6363
<Text dimColor>
64-
<RenderValue value={props.value as any} field={props.field} />
64+
<RenderValue value={props.value as any ?? '<undefined>'} field={props.field} />
6565
</Text>
6666
</Text>
6767
</Box>

src/demo/codify.tsx

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import { render } from 'ink';
2+
import { Form } from '../Form.js';
3+
import React from 'react';
4+
5+
const options = [
6+
{label: 'Millenium Falcon', value: 'falcon'},
7+
{label: 'TIE Advanced X1', value: 'tieadv'},
8+
{label: 'X-Wing', value: 'xwing'},
9+
{label: 'Raizorcrest', value: 'mando'},
10+
];
11+
12+
render(
13+
<Form
14+
onSubmit={value => console.log(`Submitted: `, value)}
15+
form={{
16+
title: "Form title",
17+
sections: [
18+
{
19+
title: "asdf-global",
20+
fields: [
21+
{ type: 'string', name: 'plugin', label: 'plugin', required: true },
22+
{ type: 'string', name: 'version', label: 'version', required: true },
23+
]
24+
},
25+
{
26+
title: "asdf-install",
27+
fields: [
28+
{ type: 'string', name: 'directory', label: 'directory', required: true },
29+
]
30+
},
31+
{
32+
title: "asdf-local",
33+
fields: [
34+
{ type: 'string', name: 'plugin', label: 'plugin', required: true },
35+
{ type: 'string', name: 'version', label: 'version', required: true },
36+
{ type: 'string', name: 'directory', label: 'directory' },
37+
{ type: 'string', name: 'directories', label: 'directories' },
38+
]
39+
},
40+
{
41+
title: "asdf-plugin",
42+
fields: [
43+
{ type: 'string', name: 'plugin', label: 'plugin', required: true },
44+
{ type: 'string', name: 'versions', label: 'version'},
45+
{ type: 'string', name: 'gitUrl', label: 'plugin' },
46+
]
47+
},
48+
]
49+
}}
50+
/>
51+
);

0 commit comments

Comments
 (0)