1.0.2 • Published 8 months ago

ginwa-form v1.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

Ginwa form

My first lib, my simple way to use form in react :D

Install

npm i ginwa-form

Usage

function App() {
    const { data, dataErr, setUpForm, resetForm, validate } = useForm<{ input1: string }>({
        defaultValue: {
            input1: "",
        },
        rules: {
            input1: {
                validator: (val) => {
                    let listErrMsg: string[] = []
                    if (!val) {
                        listErrMsg = [...listErrMsg, "input1 cannot be empty"]
                    }

                    if (listErrMsg.length > 0) {
                        return Promise.reject(listErrMsg)
                    }
                    return Promise.resolve()
                },
            },
        },
        showErrOnChange: { // showErrOnChange mean validator always trigger if value true
            input1: true,
        },
    })

    const onBtnClick = async () => {
        const isErrForm = (await validate()).valueOf()
        if (isErrForm) return
        const input1 = data.form.input1
        // do your logic
    }

    const onBtnClickResetForm = () => {
        resetForm() // reset form to defaultValue
    }

    const onBtnClickClearForm = () => {
        clearForm({names: ["input1"]}) // clear spesific form
    }
    return (
        <div>
        <input type="text"{...setUpForm({name: "input1",})} />
        <br>
        <div>{dataErr({ name: "input1" }).at(0)?.msg}</div>
        </div>
    );
}
1.0.2

8 months ago

1.0.1

8 months ago

1.0.0

8 months ago