Skip to content
This repository has been archived by the owner on May 7, 2020. It is now read-only.

Commit

Permalink
Added buttonStyle
Browse files Browse the repository at this point in the history
  • Loading branch information
willemliu committed Feb 15, 2019
1 parent fde5527 commit 3d7bc21
Show file tree
Hide file tree
Showing 8 changed files with 31 additions and 40 deletions.
8 changes: 4 additions & 4 deletions demo/demo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ ReactDOM.render(<>
<div><ButtonEditorial onClick={handleClick} className="m">.fd-button.m</ButtonEditorial></div>
<div><ButtonEditorial onClick={handleClick} className="l">.fd-button.l</ButtonEditorial></div>

<div><FollowButton onClick={handleClick} tag="tag1">.fd-follow-button</FollowButton></div>
<div><FollowButton onClick={handleClick} selected={true} tag="tag2">.fd-follow-button</FollowButton></div>
<div><FollowButton className="persoonlijk" onClick={handleClick} tag="tag3">.fd-follow-button.persoonlijk</FollowButton></div>
<div><FollowButton className="persoonlijk" onClick={handleClick} selected={true} tag="tag3">.fd-follow-button.persoonlijk</FollowButton></div>
<div><FollowButton buttonStyle="default" onClick={handleClick} tag="tag1">.fd-follow-button</FollowButton></div>
<div><FollowButton buttonStyle="default" onClick={handleClick} selected={true} tag="tag2">.fd-follow-button</FollowButton></div>
<div><FollowButton buttonStyle="persoonlijk" onClick={handleClick} tag="tag3">.fd-follow-button.persoonlijk</FollowButton></div>
<div><FollowButton buttonStyle="persoonlijk" onClick={handleClick} selected={true} tag="tag3">.fd-follow-button.persoonlijk</FollowButton></div>
</>,
document.getElementById('root'));
4 changes: 3 additions & 1 deletion dist/FollowButton.d.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import React, { PureComponent } from "react";
export declare type ButtonTypes = 'default' | 'persoonlijk';
export interface Props {
buttonStyle: ButtonTypes;
className?: string;
followButtonText?: string;
followLink?: string;
unfollowButtonText?: string;
unFollowButtonText?: string;
unFollowLink?: string;
onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;
selected?: boolean;
Expand Down
2 changes: 1 addition & 1 deletion dist/buttons.js

Large diffs are not rendered by default.

30 changes: 8 additions & 22 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@fdmg/fd-buttons",
"version": "1.0.15",
"version": "1.0.16",
"description": "FD-themed buttons",
"types": "dist/Buttons.d.ts",
"main": "dist/buttons.js",
Expand Down
9 changes: 6 additions & 3 deletions src/FollowButton.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
import React, { PureComponent } from "react";
import { createGlobalStyle } from "styled-components";

export type ButtonTypes = 'default' | 'persoonlijk';

export interface Props {
buttonStyle: ButtonTypes;
className?: string;
followButtonText?: string;
followLink?: string;
unfollowButtonText?: string;
unFollowButtonText?: string;
unFollowLink?: string;
onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;
selected?: boolean;
Expand All @@ -17,8 +20,8 @@ export default class FollowButton extends PureComponent<Props, any> {
return (
<>
<GlobalStyle/>
<button className={`fd-follow-button${this.props.className ? ` ${this.props.className}` : ''}`} onClick={this.props.onClick} data-tag={this.props.tag} data-selected={this.props.selected} data-addurl={this.props.followLink ? this.props.followLink : '/add-interest'} data-deleteurl={this.props.unFollowLink ? this.props.unFollowLink : '/delete-interest'}>
<span className="cross"/> <span className="button-text default-text">{this.props.followButtonText ? this.props.followButtonText : 'Volg'}</span><span className="button-text active-text">{this.props.unfollowButtonText ? this.props.unfollowButtonText : 'Ontvolg'}</span>
<button className={`fd-follow-button${this.props.className ? ` ${this.props.className}` : ''}${this.props.buttonStyle ? ` ${this.props.buttonStyle}` : ''}`} onClick={this.props.onClick} data-tag={this.props.tag} data-selected={this.props.selected} data-addurl={this.props.followLink ? this.props.followLink : '/add-interest'} data-deleteurl={this.props.unFollowLink ? this.props.unFollowLink : '/delete-interest'}>
<span className="cross"/> <span className="button-text default-text">{this.props.followButtonText ? this.props.followButtonText : 'Volg'}</span><span className="button-text active-text">{this.props.unFollowButtonText ? this.props.unFollowButtonText : 'Ontvolg'}</span>
</button>
</>
);
Expand Down
8 changes: 4 additions & 4 deletions test/Buttons.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ describe('Button', () => {
});

test('renders follow buttons correctly', () => {
let button = TestRenderer.create(<FollowButton onClick={() => {}} tag="tag1"/>);
let button = TestRenderer.create(<FollowButton buttonStyle="default" onClick={() => {}} tag="tag1"/>);
expect(button.toJSON()).toMatchSnapshot();
button = TestRenderer.create(<FollowButton onClick={() => {}} tag="tag2" selected={true} followLink="https://fd.nl" unFollowLink="https://bnr.nl"/>);
button = TestRenderer.create(<FollowButton buttonStyle="default" onClick={() => {}} tag="tag2" selected={true} followLink="https://fd.nl" unFollowLink="https://bnr.nl"/>);
expect(button.toJSON()).toMatchSnapshot();
button = TestRenderer.create(<FollowButton onClick={() => {}} tag="tag3" followButtonText="Follow tha leada leada"/>);
button = TestRenderer.create(<FollowButton buttonStyle="default" onClick={() => {}} tag="tag3" followButtonText="Follow tha leada leada"/>);
expect(button.toJSON()).toMatchSnapshot();
button = TestRenderer.create(<FollowButton onClick={() => {}} tag="tag4" selected={true} unfollowButtonText="You can go your own way!"/>);
button = TestRenderer.create(<FollowButton buttonStyle="default" onClick={() => {}} tag="tag4" selected={true} unFollowButtonText="You can go your own way!"/>);
expect(button.toJSON()).toMatchSnapshot();
});
});
8 changes: 4 additions & 4 deletions test/__snapshots__/Buttons.test.tsx.snap
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ exports[`Button renders editorial buttons correctly 3`] = `

exports[`Button renders follow buttons correctly 1`] = `
<button
className="fd-follow-button"
className="fd-follow-button default"
data-addurl="/add-interest"
data-deleteurl="/delete-interest"
data-tag="tag1"
Expand All @@ -63,7 +63,7 @@ exports[`Button renders follow buttons correctly 1`] = `

exports[`Button renders follow buttons correctly 2`] = `
<button
className="fd-follow-button"
className="fd-follow-button default"
data-addurl="https://fd.nl"
data-deleteurl="https://bnr.nl"
data-selected={true}
Expand All @@ -89,7 +89,7 @@ exports[`Button renders follow buttons correctly 2`] = `

exports[`Button renders follow buttons correctly 3`] = `
<button
className="fd-follow-button"
className="fd-follow-button default"
data-addurl="/add-interest"
data-deleteurl="/delete-interest"
data-tag="tag3"
Expand All @@ -114,7 +114,7 @@ exports[`Button renders follow buttons correctly 3`] = `

exports[`Button renders follow buttons correctly 4`] = `
<button
className="fd-follow-button"
className="fd-follow-button default"
data-addurl="/add-interest"
data-deleteurl="/delete-interest"
data-selected={true}
Expand Down

0 comments on commit 3d7bc21

Please sign in to comment.