Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(Forms): make it possible to reuse and extend internal validators #3908

Merged
merged 9 commits into from
Sep 9, 2024

Conversation

tujoworker
Copy link
Member

Quick example:

const MyField = (props) => {
  const myInternalValidator = useCallback(() => {
    if (value === 'fail now') {
      return new Error('Internal validation error')
    }
  }, [])
  return (
    <Field.String exportValidators={{ myInternalValidator }} {...props} />
  )
}

const myValidator = (value, { validators: { myInternalValidator } }) => {
  if (value === 'fail') {
    return new Error('My error')
  }

  return [myInternalValidator] // optional
}

render(<MyField onBlurValidator={myValidator} />)

@tujoworker tujoworker requested a review from langz September 6, 2024 11:10
Copy link

vercel bot commented Sep 6, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
eufemia ✅ Ready (Inspect) Visit Preview 💬 Add feedback Sep 9, 2024 9:40am

@tujoworker tujoworker force-pushed the feat/extend-validators branch from 1b1db60 to 20e5b08 Compare September 6, 2024 11:14
Copy link

codesandbox-ci bot commented Sep 6, 2024

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

…rms/create-component/useFieldProps/info.mdx

Co-authored-by: Anders <[email protected]>
Copy link
Contributor

@langz langz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good :)

Locally, I've rebased this PR into #3888, and working on using exportValidators there :)

@tujoworker tujoworker merged commit 7c97bf5 into main Sep 9, 2024
10 checks passed
@tujoworker tujoworker deleted the feat/extend-validators branch September 9, 2024 10:13
tujoworker pushed a commit that referenced this pull request Sep 10, 2024
## [10.47.0](v10.46.0...v10.47.0) (2024-09-10)

### 📝 Documentation

* add component translations table to properties docs ([#3902](#3902)) ([66dd12e](66dd12e))
* **useTheme:** updates docs to match TS type definitions ([#3901](#3901)) ([52aaab3](52aaab3))

### ✨ Features

* **Button:** rewise documented `title` prop with aria-label documentation ([#3863](#3863)) ([ea444c0](ea444c0))
* **CopyOnClick:** adds copyContent prop ([e5a91b6](e5a91b6))
* **countries:** Added missing countries from ISO 3166 [#3894](#3894) ([2992084](2992084))
* **countries:** Added missing countries from ISO 3166 [#3894](#3894) ([#3899](#3899)) ([ada0e92](ada0e92))
* **Forms:** extend validations in `Field.NationalIdentityNumber` ([#3888](#3888)) ([50cc26b](50cc26b))
* **Forms:** make it possible to reuse and extend internal validators ([#3908](#3908)) ([7c97bf5](7c97bf5))
* **Forms:** provide `connectWithPath` in the validator and onBlurValidator to get values from other fields/paths ([#3895](#3895)) ([f4cf06f](f4cf06f))
* **Value.Date:** adds numeric variant ([#3907](#3907)) ([b03e199](b03e199))

### 🐛 Bug Fixes

* **Accordion:** deprecate (rename) expandBehaviour in favor of expandBehavior ([#3905](#3905)) ([76143b0](76143b0))
* **Breakpoint:** ensure matching breakpoint ranges in mixins with docs & hooks ([#3896](#3896)) ([260fcaf](260fcaf))
* **Flex:** enhance handling of React fragments ([#3892](#3892)) ([156c805](156c805))
* **Forms:** enhance cleanup routine of fields ([#3885](#3885)) ([388e0b2](388e0b2)), closes [#3877](#3877)
* **Forms:** ensure label supports HTML formatting ([#3911](#3911)) ([227569c](227569c))
* **Forms:** ensure labels do update when they change (async fields) ([#3910](#3910)) ([bc40449](bc40449))
* **Forms:** warn on value prop usage on fields inside iterate with itemPath ([#3886](#3886)) ([116820d](116820d)), closes [#3877](#3877) [#3882](#3882)
* **LabelDescription:** nothing was returned ([#3898](#3898)) ([3452855](3452855))
@tujoworker
Copy link
Member Author

🎉 This PR is included in version 10.47.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging this pull request may close these issues.

2 participants