probica16 v0.2.2
Faxi-Kinto web component library
Intro
Before you is a React component library based on the components used in the Create a Community - Kinto-Join app.
The package is generated using rollup.
- Run
npm buildto build the package. - Run
npm startto run the package in watch mode.
Transpiled files are located in the /build folder.
You can access demo/storybooks here.
Install
npm i @faxi/web-component-libraryUsage
import React from 'react';
import { Button } from '@faxi/web-component-library';
const MyClass: React.FC = (): JSX.Element => {
render() {
return <Button />;
}
}The package knows its types, meaning that IntelliSense aids you when using package's components and shows all of the possible props and their definitions.
Icons (Font Awesome)
This package provides an Icon component which wraps Fort Awesome's instance FontAwesomeIcon from @fortawesome/react-fontawesome.
Up to the user is to define which libraries should be added and how the name-mapping function behaves.
Let's look at an example:
Create a: fontAwesomeConfig.ts file in the src folder of your project.
import { setLibraries } from '@faxi/web-component-library';
import { fad } from '@fortawesome/pro-duotone-svg-icons';
setLibraries([fad]);You should install the @fortawesome/... family package of your choice in your project and then add it to the array of the setLibraries function exported by this package.
Next, define your type of possible icons (this will be a subset of IconProp exported by @fortawesome/fontawesome-svg-core).
export type MyIcons = 'sort-up' | 'sort-down';Next, you have to define your own name-mapping function and override the package's one.
import {
setLibraries,
setMapNamePropToFaNames,
} from '@faxi/web-component-library';
...
const customMapNameToFa = (iconName: MyIcons): IconProp => {
switch (iconName) {
case 'sort-up':
return ['fad', 'sort-up'];
case 'sort-down':
return ['fad', 'sort-down'];
default:
return ['fad', 'sort-up'];
}
};
setMapNamePropToFaNames(customMapNameToFa);Finally, export the package's Icon, wrapped in your type:
...
export default Icon as React.FC<IconProps<MyIcons>>;Tests
Every component is provided with its test file. Run npm run test within the package to run tests.
Storybook
Every component can be previewed (in isolation) within the Storybook UI.
Run npm run storybook to build the storybook.
License
MIT ©