Comments (11)
@azdanov Usually I would say yes in a heartbeat, but I have it almost done. Definitely can look it over and make tweaks in a PR once I have it merged. 😄
from materialdesign-react.
@azdanov https://github.com/Templarian/MaterialDesign-React/blob/master/src/Icon.tsx
Not even tested or compiled yet. Just committing a rough draft. It's really close to your PR. Busy tonight working on some other stuff, but will have more time this weekend.
from materialdesign-react.
@azdanov Okay, so I've ran into a really dumb bug/issue. I can't get the propTypes
to validate in a test project. VS Code clearly shows that they are required or not, but it doesn't throw an error in the browser in `mode=development'.
Basic example: <Icon />
Since path={}
is required it should be throwing an error.
The propTypes
are showing up in the compiled code. Tried to publish as dev for the Icon
component it shows errors, but production removes errors. I assumed if the parent project was in dev that component would still report errors.
Kind of giving up for now and moving on to adding icons and will look into this shortly. Any help would be appreciated. Attached my sample app.
from materialdesign-react.
Add this to webpack.config.js
:
externals: {
react: "commonjs react",
"prop-types": "commonjs prop-types"
}
from materialdesign-react.
Closing this and working on updating the build to use TSC with a new issue.
@azdanov Can you do a PR and add a contributors
property to the package.json
for yourself since you co-wrote this library.
from materialdesign-react.
Are PR's welcome for this?
from materialdesign-react.
ToDo: Need to add the types
definition file to the package.json
.
from materialdesign-react.
That worked. Awesome!
from materialdesign-react.
Probably same issue as React. Facebook still uses commonjs.
from materialdesign-react.
I'm wondering if webpack is needed. Since this is used in react
, and probably with a build system (who still writes createElement
?), then distributing es6 code is fine.
By itself tsc
will transform typescript
to javascript
, and the rest is for the end-user to manage.
EDIT:
Forgot to mention some benefits:
- Simpler build step
- Bundle size is reduced (webpack bootstrap code)
- Possibly enable tree-shaking if the library gets more features
from materialdesign-react.
Yea, the @mdi/js
only uses tsc
. Considered simplifying this build also. We only need an ES6 module for this lib, so probably a good idea.
from materialdesign-react.
Related Issues (20)
- How do you dynamically load an Icon? HOT 14
- Invariant Violation HOT 8
- Icon prop types do not allow assignment of onClick HOT 4
- Icon is using deprecated SFC type instead of FunctionComponent type HOT 1
- [Feature request] Add default class attribute to all svg elements HOT 2
- Dynamic load icons HOT 1
- Why '--save-dev'? HOT 1
- Icon path prop not accepting strings? HOT 1
- Incremented `id` doesn't play nicely w/ SSR HOT 9
- Add 'prop-types' as a dependency (or remove it) HOT 4
- Baseline flag HOT 1
- Change/Disabled role in svg icon HOT 1
- `spin` broken in Safari HOT 5
- Build error HOT 8
- Cannot assign to read only property 'width' of object '#<Object>' icon HOT 1
- add a view-box prop HOT 1
- Can't use 'onClick' on Icon in Typescript HOT 1
- Different styles of icons (rounded, sharp, outlined)
- Does this library still need to be maintained?
- Default import of Icon crushes production build 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 materialdesign-react.