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

Commit

Permalink
feat(components): <HeadLink> as atomic design atom example
Browse files Browse the repository at this point in the history
<HeadLink> is used to generate <link> tags for the document head
  • Loading branch information
amclin committed Oct 7, 2019
1 parent dfcf3d1 commit f6d54c4
Show file tree
Hide file tree
Showing 7 changed files with 61 additions and 3 deletions.
4 changes: 2 additions & 2 deletions package-lock.json

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

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
"next": "^9.0.7",
"prettier": "^1.18.2",
"pretty-quick": "^1.11.1",
"prop-types": "^15.7.2",
"react": "^16.10.1",
"react-dom": "^16.10.1",
"react-test-renderer": "^16.10.1",
Expand Down
2 changes: 1 addition & 1 deletion templates/default.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"dependencies": ["next", "react", "react-dom"],
"dependencies": ["next", "react", "react-dom", "prop-types"],
"devDependencies": [
"@babel/core",
"@babel/preset-env",
Expand Down
28 changes: 28 additions & 0 deletions templates/default/components/atoms/HeadLink/HeadLink.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import React from 'react'
import PropTypes from 'prop-types'

const HeadLink = ({rel, href, type, sizes}) => {
return(
<link
rel={rel}
type={type}
sizes={sizes}
href={href}
/>
)
}

HeadLink.propTypes = {
rel: PropTypes.string.isRequired,
href: PropTypes.string,
type: PropTypes.string,
sizes: PropTypes.string
};

HeadLink.defaultProps = {
href: null,
type: undefined,
sizes: null
}

export default HeadLink
18 changes: 18 additions & 0 deletions templates/default/components/atoms/HeadLink/HeadLink.test.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import React from 'react'
import TestRenderer from 'react-test-renderer'
import HeadLink from '.'

describe('HeadLink', () => {
it('creates a <link> element suitable for the document head', () => {
const result = TestRenderer.create(
<HeadLink
rel="mockRel"
type="mockType"
sizes="mockSizes"
href="http://example.com"
/>
).toJSON()

expect(result).toMatchSnapshot()
})
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`HeadLink creates a <link> element suitable for the document head 1`] = `
<link
href="http://example.com"
rel="mockRel"
sizes="mockSizes"
type="mockType"
/>
`;
1 change: 1 addition & 0 deletions templates/default/components/atoms/HeadLink/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from './HeadLink'

0 comments on commit f6d54c4

Please sign in to comment.