Giter Club home page Giter Club logo

Comments (5)

irg1008 avatar irg1008 commented on July 24, 2024 1

Works a bit like useErrorStyles hook for custom classes. So much so that the component above can be simplify to just:

import { ComponentProps } from 'react'

import {
  Controller as RedwoodController,
  useErrorStyles,
} from '@redwoodjs/forms'

const ServerAwareController = (
  props: ComponentProps<typeof RedwoodController>
) => {
  useErrorStyles({ name: props.name })
  return <RedwoodController {...props} />
}

export default ServerAwareController

My personal opinion is this would make for a very easy and useful wrapper to rhf controller

from redwood.

irg1008 avatar irg1008 commented on July 24, 2024

I fixed it by making a custom wrapper for the react-hook-form controller like:

import { ComponentProps, useContext, useEffect } from 'react'

import {
  Controller as ReactHookFormController,
  ServerErrorsContext,
  useFormContext,
} from '@redwoodjs/forms'

const ServerAwareController = (
  props: ComponentProps<typeof ReactHookFormController>
) => {
  const { name } = props

  const { setError } = useFormContext()
  const serverError = useContext(ServerErrorsContext)[name]

  useEffect(() => {
    if (serverError) {
      setError(name, { type: 'server', message: serverError })
    }
  }, [serverError, name, setError])

  return <RedwoodController {...props} />
}

export default ServerAwareController

I think this would be nice to have it build it into the framework to able to use with existing FieldError and Label components

from redwood.

dac09 avatar dac09 commented on July 24, 2024

Thank you @irg1008 again for raising an interesting issue, and for the solution here.

I am not a forms expert, but the solution you've suggested here seems quite reasonable. Can you think of a case where you wouldn't want the error styles coming through in a controller?

i.e. Does it make sense to change the export of Controller to be ServerAwareController

from redwood.

dthyresson avatar dthyresson commented on July 24, 2024

Hi @irg1008

i.e. Does it make sense to change the export of Controller to be ServerAwareController

am following up here to see what you think of @dac09 proposal or if this scenario could just use some documentation that shows your solution?

from redwood.

irg1008 avatar irg1008 commented on July 24, 2024

Yeah I have been pretty busy this week, I will get that moving this weekend np

from redwood.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.