Skip to content

Commit 55d297e

Browse files
committed
feat: add form component
1 parent 3363dd2 commit 55d297e

9 files changed

Lines changed: 29 additions & 5 deletions

File tree

src/components/Form/Form.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import * as React from 'react';
2+
3+
import { Box } from '../Layout';
4+
5+
export interface FormProps {
6+
children: React.ReactNode;
7+
onSubmit: () => void;
8+
}
9+
10+
// In React Native there is no corresponding <form> tag
11+
const Form = ({ children }: FormProps) => <Box>{children}</Box>;
12+
13+
export default Form;

src/components/Form/Form.web.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import * as React from 'react';
2+
3+
import { FormProps } from './Form';
4+
5+
// On the web <form> enables native behavior such as `Enter` to submit
6+
const Form = ({ children, onSubmit }: FormProps) => (
7+
<form onSubmit={onSubmit}>{children}</form>
8+
);
9+
10+
export default Form;
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export { default as FormField, FormFieldProps } from './FormField';
2+
export { default as Form, FormProps } from './Form';

src/components/Picker/PickerField.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as React from 'react';
22
import { PickerProps } from 'react-native';
33

44
import { withTheme } from '../../theme';
5-
import { FormField, FormFieldProps } from '../FormField';
5+
import { FormField, FormFieldProps } from '../Form';
66
import Picker from './Picker';
77

88
export interface PickerFieldProps extends FormFieldProps, PickerProps {}

src/components/SelectList/SelectListField.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from 'react';
22

33
import { withTheme } from '../../theme';
4-
import { FormField, FormFieldProps } from '../FormField';
4+
import { FormField, FormFieldProps } from '../Form';
55
import SelectList, { SelectListProps } from './SelectList';
66

77
export interface SelectListFieldProps extends FormFieldProps, SelectListProps {}

src/components/TextArea/TextAreaField.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from 'react';
22

33
import { withTheme } from '../../theme';
4-
import { FormField, FormFieldProps } from '../FormField';
4+
import { FormField, FormFieldProps } from '../Form';
55
import TextArea, { TextAreaProps } from './TextArea';
66

77
export interface TextAreaFieldProps extends FormFieldProps, TextAreaProps {}

src/components/TextInput/TextInputField.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from 'react';
22

33
import { withTheme } from '../../theme';
4-
import { FormField, FormFieldProps } from '../FormField';
4+
import { FormField, FormFieldProps } from '../Form';
55
import TextInput, { TextInputProps } from './TextInput';
66

77
export interface TextInputFieldProps extends FormFieldProps, TextInputProps {}

src/components/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export * from './Counter';
77
export * from './Dialog';
88
export * from './Divider';
99
export * from './Helpers';
10-
export * from './FormField';
10+
export * from './Form';
1111
export * from './Layout';
1212
export * from './Loading';
1313
export * from './Modal';

0 commit comments

Comments
 (0)