mirror of
https://github.com/sergeyyarkov/devthread.ru.git
synced 2026-10-11 02:09:04 +03:00
prop types
This commit is contained in:
parent
de8475b998
commit
55681f0d84
@ -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
|
||||||
|
}
|
||||||
@ -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
|
||||||
|
})
|
||||||
|
}
|
||||||
@ -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
|
||||||
|
})
|
||||||
|
}
|
||||||
@ -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>
|
||||||
|
|||||||
@ -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>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
||||||
|
}
|
||||||
18
src/components/Offers/Subscription/Subscription.js
Normal file
18
src/components/Offers/Subscription/Subscription.js
Normal 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
|
||||||
@ -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
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user