Comments (11)
not sure if we want to support too much inconsistency in terms of props, but fair point
from teleport-code-generators.
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.
I like the idea, however, this requires changes in both the React Proptypes and the Vue Base plugins
from teleport-code-generators.
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.
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.
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.
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.
And are we not going to make the requirement for defaultValue
to be mandatory?
from teleport-code-generators.
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.
close by accident because of #219. we should think about the default / required thing before moving further
from teleport-code-generators.
I will give it a try and implement this then 👍
from teleport-code-generators.
Related Issues (20)
- Guide on how to setup editor locally HOT 3
- Component styles are missing in the generated code in `NextJS` if the component has state declarations
- How to get UIDL from form components? HOT 1
- Accordian and navbar throws an error in nextjs generated code
- Scripts in Components throws an Error in nextjs exported code. HOT 6
- support multiple value for one style in UIDLElementNode? HOT 3
- `lottieplayer` is being added to all next projects by default
- `lottie-node` styles are not propagating in `nextjs` because of `styled-jsx`.
- Configure the `nextjs` projects to use `next-sitemap` generator
- (vue-export): Fix `Invalid Host Header` for Vuejs exports
- Export any project as a `tailwind` project
- Presentation page not displaying `height: calc(...)` in an obvious way HOT 1
- Section containnig lottie files displaying differently on preview and downloaded react project. HOT 1
- TypeError: ReactGenerator.generateComponent is not a function HOT 1
- Use GitHub actions to build CMS projects HOT 1
- Navbar js not executing correctly for downloaded react project (works in preview) HOT 1
- Html script tag with type "module" HOT 3
- Support for UIDLElementNode as UIDLAttributeValue
- generateComponent dont update elementType on mapping elements
- Can't use component from external package with dash-case tagname HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from teleport-code-generators.