feat: initial FormControl, FormGroup, Form.astro

This commit is contained in:
Ayo 2022-09-25 21:25:09 +02:00
parent 4a9653d3a5
commit 70599b48bf
8 changed files with 41 additions and 7 deletions

View file

@ -3,3 +3,6 @@
// What you should do here is re-exports all the things you want your user to access, ex:
// export { HelloWorld } from "./src/main.ts"
// export type { HelloWorldResult } from "./src/types.ts"
import Form from './src/Form.astro';
export default Form;
export {FormGroup, FormControl} from './src/index';

View file

@ -1,16 +1,25 @@
{
"name": "astro-component-name",
"version": "0.1.0",
"name": "astro-reactive-form",
"version": "0.0.0",
"repository": "https://github.com/ayoayco/astro-reactive-form",
"homepage": "https://github.com/ayoayco/astro-reactive-form",
"type": "module",
"exports": {
".": "./index.ts"
},
"author": {
"name": "Ayo Ayco",
"email": "ramon.aycojr@gmail.com",
"url": "https://ayco.io"
},
"files": [
"src",
"index.ts"
],
"keywords": [
"astro-component"
"astro-component",
"css",
"ui"
],
"scripts": {
"test": "mocha --parallel --timeout 15000",

View file

@ -1,3 +0,0 @@
---
// Write your component code in this file!
---

8
src/Form.astro Normal file
View file

@ -0,0 +1,8 @@
---
import {FormGroup} from './form-group';
const form: FormGroup = Astro.props.formGroup;
---
<form>
<label>{form.controls[0].label}</label>
<input type={form.controls[0].type} value={form.controls[0].value} />
</form>

6
src/form-control.ts Normal file
View file

@ -0,0 +1,6 @@
export class FormControl {
name: string;
type?: 'text' | 'checkbox' | 'radio' = 'text'; // add more
value?: string | number | null | string[];
label?: string;
}

9
src/form-group.ts Normal file
View file

@ -0,0 +1,9 @@
import { FormControl } from "./form-control";
export class FormGroup {
controls: FormControl[];
constructor(controls: FormControl[]) {
this.controls = controls;
}
}

3
src/index.ts Normal file
View file

@ -0,0 +1,3 @@
export * from './Form.astro';
export * from './form-group';
export * from './form-control';

View file

@ -1 +0,0 @@
// Write your component's code here!