Skip to content

Commit d871743

Browse files
authored
Merge pull request #16 from EOS-uiux-Solutions/class
[React Package] added custom class
2 parents d9d17a1 + b53e7b2 commit d871743

File tree

8 files changed

+23
-12
lines changed

8 files changed

+23
-12
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ import { EOS_LOADING_ANIMATED } from 'eos-icons-react';
4343
import { EOS_LOADING_ANIMATED } from 'eos-icons-react';
4444
4545
# The below icons will have the color #FF5733, size xxl and a rotation of 45 degree
46-
<EOS_LOADING_ANIMATED color="#FF5733" size="xxl" rotate={45}/>
46+
<EOS_LOADING_ANIMATED color="#FF5733" size="xxl" rotate={45} className="icon"/>
4747
```
4848

4949
#### Prop Details
@@ -55,6 +55,7 @@ import { EOS_LOADING_ANIMATED } from 'eos-icons-react';
5555
| horizontalFlip | boolean | false | Flips icon horizontally |
5656
| verticalFlip | boolean | false | Flips icon vertically |
5757
| theme | string | 'filled' | sets icon theme (only available for common components)** |
58+
| className | string | '' | sets custom styling class for icon component |
5859

5960
> (*) Size can be provided using either string or number. Pre-Defined size list
6061

package-lock.json

Lines changed: 5 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,5 +101,8 @@
101101
"files": [
102102
"es",
103103
"lib"
104-
]
104+
],
105+
"dependencies": {
106+
"classnames": "^2.3.1"
107+
}
105108
}

scripts/iconCommonScript.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ async function generateIconCommonComponents ({ type, from }: IconGenerateScript)
3030
}
3131

3232
// eslint-disable-next-line no-template-curly-in-string
33-
const propString = 'svg data-testid="eos-svg-component" transform={`rotate(${rotate}) translate(${translateX}, ${translateY}) scale(${scaleX}, ${scaleY})`} fill={color} width={size} height={size}'
33+
const propString = 'svg className={classString} data-testid="eos-svg-component" transform={`rotate(${rotate}) translate(${translateX}, ${translateY}) scale(${scaleX}, ${scaleY})`} fill={color} width={size} height={size}'
3434
filled = filled.replace('svg', propString)
3535
outlined = outlined.replace('svg', propString)
3636

scripts/iconScript.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ async function generateIconComponents ({ type, from }: IconGenerateScript) {
2727
}
2828

2929
// eslint-disable-next-line no-template-curly-in-string
30-
const propString = 'svg data-testid="eos-svg-component" transform={`rotate(${rotate}) translate(${translateX}, ${translateY}) scale(${scaleX}, ${scaleY})`} fill={color} width={size} height={size}'
30+
const propString = 'svg className={classString} data-testid="eos-svg-component" transform={`rotate(${rotate}) translate(${translateX}, ${translateY}) scale(${scaleX}, ${scaleY})`} fill={color} width={size} height={size}'
3131
data = data.replace('svg', propString)
3232

3333
const render = componentTemplate({ fileName, data })

template/iconCommonComponent.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@ function componentCommonTemplate ({ fileName, filled, outlined }:CommonTemplateP
99
import * as React from 'react';
1010
import { IconCommonProps, valuesMap } from '../helper';
1111
import { flipFunction } from '../flipFunction';
12+
import classNames from 'classnames';
1213
13-
function EOS_${fileName}({size = "${iconData.iconDefault.size}", color = "${iconData.iconDefault.color}", rotate = ${iconData.iconDefault.rotate}, horizontalFlip = ${iconData.iconDefault.horizontalFlip}, verticalFlip = ${iconData.iconDefault.verticalFlip}, theme = "${iconData.iconDefault.theme}"}: IconCommonProps) {
14+
function EOS_${fileName}({size = "${iconData.iconDefault.size}", color = "${iconData.iconDefault.color}", rotate = ${iconData.iconDefault.rotate}, horizontalFlip = ${iconData.iconDefault.horizontalFlip}, verticalFlip = ${iconData.iconDefault.verticalFlip}, theme = "${iconData.iconDefault.theme}", className}: IconCommonProps) {
1415
const sizeString: string = size.toString()
1516
if(Object.keys(valuesMap).includes(sizeString)) {
1617
size = valuesMap[size]
1718
}
1819
const { scaleX, scaleY, translateX, translateY } = flipFunction({horizontalFlip,verticalFlip})
20+
const classString = classNames(className);
1921
return (
2022
<>
2123
{

template/iconComponent.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ function componentTemplate ({ fileName, data }:TemplateProps) {
88
import * as React from 'react';
99
import { IconProps, valuesMap } from '../helper';
1010
import { flipFunction } from '../flipFunction';
11+
import classNames from 'classnames';
1112
12-
function EOS_${fileName}({size = "${iconData.iconDefault.size}", color = "${iconData.iconDefault.color}", rotate = ${iconData.iconDefault.rotate}, horizontalFlip = ${iconData.iconDefault.horizontalFlip}, verticalFlip = ${iconData.iconDefault.verticalFlip}}: IconProps) {
13+
function EOS_${fileName}({size = "${iconData.iconDefault.size}", color = "${iconData.iconDefault.color}", rotate = ${iconData.iconDefault.rotate}, horizontalFlip = ${iconData.iconDefault.horizontalFlip}, verticalFlip = ${iconData.iconDefault.verticalFlip}, className}: IconProps) {
1314
const sizeString: string = size.toString()
1415
if(Object.keys(valuesMap).includes(sizeString)) {
1516
size = valuesMap[size]
1617
}
1718
const { scaleX, scaleY, translateX, translateY } = flipFunction({horizontalFlip,verticalFlip})
19+
const classString = classNames(className);
1820
return (
1921
${data}
2022
);

utils/helper.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ export interface IconProps {
44
color?: string,
55
rotate?: string | number,
66
horizontalFlip?: boolean,
7-
verticalFlip?: boolean
7+
verticalFlip?: boolean,
8+
className?: string
89
}
910

1011
// Interface for Common React SVG components
@@ -14,7 +15,8 @@ export interface IconCommonProps {
1415
rotate?: string | number,
1516
horizontalFlip?: boolean,
1617
verticalFlip?: boolean,
17-
theme?: string
18+
theme?: string,
19+
className?: string
1820
}
1921

2022
export interface ValueMap {

0 commit comments

Comments
 (0)