prop types

This commit is contained in:
Sergey Yarkov 2020-07-07 17:40:08 +03:00
parent de8475b998
commit 55681f0d84
8 changed files with 81 additions and 25 deletions

View File

@ -1,4 +1,5 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'
import SEO from '../SEO/SEO' import SEO from '../SEO/SEO'
import Img from "gatsby-image" import Img from "gatsby-image"
import slugify from '../../helpers/slugify' import slugify from '../../helpers/slugify'
@ -84,4 +85,18 @@ const Article = ({ data: { slug, title, image, description, category, tags, time
) )
} }
export default Article export default Article
Article.propTypes = {
data: PropTypes.shape({
slug: PropTypes.string,
title: PropTypes.string,
image: PropTypes.object,
description: PropTypes.string,
category: PropTypes.string,
tags: PropTypes.array,
time: PropTypes.string,
date: PropTypes.string
}),
html: PropTypes.string
}

View File

@ -1,4 +1,5 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'
import slugify from '../../../helpers/slugify' import slugify from '../../../helpers/slugify'
import Img from "gatsby-image" import Img from "gatsby-image"
import { Link } from 'gatsby' import { Link } from 'gatsby'
@ -32,4 +33,15 @@ const ArticleCard = ({ data: { slug, title, image, category, description, tags }
) )
} }
export default ArticleCard export default ArticleCard
ArticleCard.propTypes = {
data: PropTypes.shape({
slug: PropTypes.string,
title: PropTypes.string,
image: PropTypes.object,
category: PropTypes.string,
description: PropTypes.string,
tags: PropTypes.array
})
}

View File

@ -1,4 +1,5 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'
import ArticleCard from './ArticleCard/ArticleCard' import ArticleCard from './ArticleCard/ArticleCard'
import './Articles.scss' import './Articles.scss'
@ -12,4 +13,10 @@ const Articles = ({ data: { edges } }) => {
) )
} }
export default Articles export default Articles
Articles.propTypes = {
data: PropTypes.shape({
edges: PropTypes.array
})
}

View File

@ -1,4 +1,5 @@
import React from 'react'; import React from 'react';
import { Link } from 'gatsby'
import PropTypes from 'prop-types' import PropTypes from 'prop-types'
import './Footer.scss' import './Footer.scss'
@ -19,25 +20,25 @@ const Footer = ({ title }) => {
<div className="links-nav"> <div className="links-nav">
<p>Навигация</p> <p>Навигация</p>
<ul> <ul>
<li><a href="/">Статьи</a></li> <li><Link to='/articles'>Статьи</Link></li>
<li><a href="/">О сайте</a></li> <li><Link to='/about'>О сайте</Link></li>
<li><a href="/">Ресурсы</a></li> <li><Link to='/books'>Ресурсы</Link></li>
</ul> </ul>
</div> </div>
<div className="links-contacts"> <div className="links-contacts">
<p>Контакты</p> <p>Контакты</p>
<ul> <ul>
<li><a href="/">Форма обратной связи</a></li> <li><Link to='/contacts'>Форма обратной связи</Link></li>
<li><a href="/">Телеграмм</a></li> <li><a href="/">Телеграмм</a></li>
<li><a href="/">Почта</a></li> <li><a href="mailto:support@devthread.ru">Почта</a></li>
</ul> </ul>
</div> </div>
<div className="links-social"> <div className="links-social">
<p>Социальные сети</p> <p>Социальные сети</p>
<ul> <ul>
<li><a href="/">Наш телеграмм канал</a></li> <li><a href="https://t.me/devthread" rel='noreferrer' target='_blank'>Наш телеграмм канал</a></li>
<li><a href="/">Яндекс.Дзен</a></li> <li><a href="/" target='_blank'>Яндекс.Дзен</a></li>
<li><a href="/">Твиттер</a></li> <li><a href="https://twitter.com/devthread" rel='noreferrer' target='_blank'>Твиттер</a></li>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -3,8 +3,10 @@ import usePopularArticlesQuery from '../../hooks/usePopularArticlesQuery'
import useTagsQuery from '../../hooks/useTagsQuery' import useTagsQuery from '../../hooks/useTagsQuery'
import './Offers.scss' import './Offers.scss'
import Popular from './Popular/Popular' import Popular from './Popular/Popular'
import PopularItem from './Popular/PopularItem'
import Tags from './Tags/Tags' import Tags from './Tags/Tags'
import Subscription from './Subscription/Subscription'
import PopularItem from './Popular/PopularItem'
import TagItem from './Tags/TagItem' import TagItem from './Tags/TagItem'
import BooksIcon from '../../images/books-icon.svg' import BooksIcon from '../../images/books-icon.svg'
@ -32,17 +34,7 @@ const Offers = () => {
</div>)} </div>)}
</div> </div>
</div> </div>
<div className="offers-subscription offer-box"> <Subscription />
<div className="offers-subscription__heading offer-heading">
Читайте нас в Telegram
</div>
<div className="offers-subscription__content">
<p>
В нашем канале telegram вы не пропустите новые статьи, присоединяйтесь к другим разработчикам
</p>
<a href="https://t.me/devthread" rel='noreferrer' target="_blank" className="btn-primary">Подписаться</a>
</div>
</div>
</div> </div>
) )
} }

View File

@ -1,4 +1,5 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'
import { Link } from 'gatsby' import { Link } from 'gatsby'
import ViewsIcon from '../../../images/views-icon.svg' import ViewsIcon from '../../../images/views-icon.svg'
@ -17,4 +18,9 @@ const PopularItem = ({ slug, title }) => {
) )
} }
export default PopularItem export default PopularItem
PopularItem.propTypes = {
slug: PropTypes.string,
title: PropTypes.string
}

View File

@ -0,0 +1,18 @@
import React from 'react';
const Subscription = () => {
return (
<div className="offers-subscription offer-box">
<div className="offers-subscription__heading offer-heading">
Читайте нас в Telegram
</div>
<div className="offers-subscription__content">
<p>
В нашем канале telegram вы не пропустите новые статьи, присоединяйтесь к другим разработчикам
</p>
<a href="https://t.me/devthread" rel='noreferrer' target="_blank" className="btn-primary">Подписаться</a>
</div>
</div>
)
}
export default Subscription

View File

@ -1,4 +1,5 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'
import { Link } from 'gatsby' import { Link } from 'gatsby'
import sligify from '../../../helpers/slugify' import sligify from '../../../helpers/slugify'
@ -10,4 +11,8 @@ const TagItem = ({ title }) => {
) )
} }
export default TagItem export default TagItem
TagItem.propTypes = {
title: PropTypes.string
}