Giter VIP home page Giter VIP logo

Comments (11)

alexnm avatar alexnm commented on May 26, 2024 1

not sure if we want to support too much inconsistency in terms of props, but fair point

from teleport-code-generators.

JayaKrishnaNamburu avatar JayaKrishnaNamburu commented on May 26, 2024 1

for required i have something like this, How about we add a additational flag to the UIDL as isRequired. So, the UIDL will look something like this

"name": {
  "type": "string",
  "defaultValue": "Hello",
  "isRequired": true / false
}

In PropTypes generation we can use this to add it to the expression.

from teleport-code-generators.

alexnm avatar alexnm commented on May 26, 2024 1

I like the idea, however, this requires changes in both the React Proptypes and the Vue Base plugins

from teleport-code-generators.

vladnicula avatar vladnicula commented on May 26, 2024

I think we should move this out of the Beta 0.5/0.6 release. We wont take care of it till then.

from teleport-code-generators.

JayaKrishnaNamburu avatar JayaKrishnaNamburu commented on May 26, 2024

And how about we start supporting OneOfType to make it more flexible like ability to map one or more values, I can't currently come up with a specific use case for this, but as we might have a discussion on this, i thought if we will to support in future the UIDL must go a little change if i am not wrong and in 0.6 as UIDL is undergoing some change, just mentioning.

TimeSince.propTypes = {
  time: PropTypes.oneOfType([
    PropTypes.number,
    PropTypes.instanceOf(Date)
  ])
}

from teleport-code-generators.

JayaKrishnaNamburu avatar JayaKrishnaNamburu commented on May 26, 2024

Yes it opens gates for lot of possible inconsistencies, lets see what @vladnicula and others have to say about this and i am not sure about this support for Vue, will check that 👍

from teleport-code-generators.

JayaKrishnaNamburu avatar JayaKrishnaNamburu commented on May 26, 2024

Hey @alexnm i think we currently support objects for the prop-types right? Here is an example that i generated from master.

const ComponentWithAttrProp = (props) => {
  return (
    <div
      style={{
        flexDirection: props.direction,
        height: props.config.height,
        alignSelf: 'center',
      }}
    />
  )
}

ComponentWithAttrProp.defaultProps = {
  direction: 'row',
  config: {
    height: 32,
  },
}

ComponentWithAttrProp.propTypes = {
  direction: PropTypes.string,
  config: PropTypes.object,
}

from teleport-code-generators.

JayaKrishnaNamburu avatar JayaKrishnaNamburu commented on May 26, 2024

And are we not going to make the requirement for defaultValue to be mandatory?

from teleport-code-generators.

alexnm avatar alexnm commented on May 26, 2024

This should work, but it's not 100% safe at this point. simply saying that the prop is of type object doesn't tell you anything about its shape. but it should work for now.

Not sure about the default value, I think it's debatable at this point. Also, there's the point of making some prop required, which is again translated into something else in React/Vue

from teleport-code-generators.

alexnm avatar alexnm commented on May 26, 2024

close by accident because of #219. we should think about the default / required thing before moving further

from teleport-code-generators.

JayaKrishnaNamburu avatar JayaKrishnaNamburu commented on May 26, 2024

I will give it a try and implement this then 👍

from teleport-code-generators.

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.