mirror of
https://github.com/Mastermindzh/react-cookie-consent.git
synced 2025-08-23 09:35:04 +02:00
✨ Add prop ButtonComponent (#36)
* ✨ Add prop buttonComponent Allow users to use their own button component * 🐛 Make it work as expected * 📝 Add ButtonComponent to the Props table * ✏️ Capitalize ButtonComponent in index.d.ts
This commit is contained in:
1
src/index.d.ts
vendored
1
src/index.d.ts
vendored
@@ -23,6 +23,7 @@ export interface CookieConsentProps {
|
||||
acceptOnScrollPercentage?: number;
|
||||
extraCookieOptions?: object;
|
||||
disableButtonStyles ?: boolean;
|
||||
ButtonComponent?: Function | React.ReactElement;
|
||||
}
|
||||
|
||||
export default class CookieConsent extends React.Component<CookieConsentProps, {}> {}
|
||||
|
16
src/index.js
16
src/index.js
@@ -121,7 +121,8 @@ class CookieConsent extends Component {
|
||||
contentClasses,
|
||||
buttonClasses,
|
||||
buttonId,
|
||||
disableButtonStyles
|
||||
disableButtonStyles,
|
||||
ButtonComponent
|
||||
} = this.props;
|
||||
|
||||
let myStyle = {};
|
||||
@@ -165,7 +166,7 @@ class CookieConsent extends Component {
|
||||
<div style={myContentStyle} className={contentClasses}>
|
||||
{this.props.children}
|
||||
</div>
|
||||
<button
|
||||
<ButtonComponent
|
||||
style={myButtonStyle}
|
||||
className={buttonClasses}
|
||||
id={buttonId}
|
||||
@@ -174,7 +175,7 @@ class CookieConsent extends Component {
|
||||
}}
|
||||
>
|
||||
{buttonText}
|
||||
</button>
|
||||
</ButtonComponent>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -209,7 +210,11 @@ CookieConsent.propTypes = {
|
||||
acceptOnScroll: PropTypes.bool,
|
||||
acceptOnScrollPercentage: PropTypes.number,
|
||||
extraCookieOptions: PropTypes.object,
|
||||
disableButtonStyles: PropTypes.bool
|
||||
disableButtonStyles: PropTypes.bool,
|
||||
ButtonComponent: PropTypes.oneOfType([
|
||||
PropTypes.func,
|
||||
PropTypes.element
|
||||
]),
|
||||
};
|
||||
|
||||
CookieConsent.defaultProps = {
|
||||
@@ -229,7 +234,8 @@ CookieConsent.defaultProps = {
|
||||
buttonClasses: "",
|
||||
buttonId: "",
|
||||
extraCookieOptions: {},
|
||||
disableButtonStyles: false
|
||||
disableButtonStyles: false,
|
||||
ButtonComponent: ({ children, ...props }) => <button {...props}>{children}</button>,
|
||||
};
|
||||
|
||||
export default CookieConsent;
|
||||
|
Reference in New Issue
Block a user