From 93325bd256c274c7912d0d060a96c60592850477 Mon Sep 17 00:00:00 2001 From: chenxsan Date: Fri, 10 Sep 2021 12:53:47 +0800 Subject: [PATCH 1/5] optimize contributors section --- src/components/Contributors/Contributors.jsx | 106 +++++++++--------- src/components/Contributors/Contributors.scss | 47 -------- src/components/Page/Page.jsx | 6 +- tailwind.config.js | 3 + 4 files changed, 60 insertions(+), 102 deletions(-) delete mode 100644 src/components/Contributors/Contributors.scss diff --git a/src/components/Contributors/Contributors.jsx b/src/components/Contributors/Contributors.jsx index 75d0e0981ede..3430a749ba15 100644 --- a/src/components/Contributors/Contributors.jsx +++ b/src/components/Contributors/Contributors.jsx @@ -1,66 +1,66 @@ -import { Component } from 'react'; +import { useState } from 'react'; import VisibilitySensor from 'react-visibility-sensor'; import SmallIcon from '../../assets/icon-square-small-slack.png'; -import './Contributors.scss'; import PropTypes from 'prop-types'; import { contributorsNotFound } from './404.js'; -export default class Contributors extends Component { - static propTypes = { - contributors: PropTypes.array, - }; - state = { - inView: false, - }; +Contributors.propTypes = { + contributors: PropTypes.array.isRequired, +}; - handleInView = (inView) => { +Contributor.propTypes = { + contributor: PropTypes.string.isRequired, + inView: PropTypes.bool.isRequired, +}; +function Contributor({ contributor, inView }) { + return ( + + {contributor} + + ); +} + +export default function Contributors({ contributors }) { + const [inView, setInView] = useState(false); + const handleInView = (inView) => { if (!inView) { return; } - this.setState({ inView }); + setInView(inView); }; + if (!contributors.length) { + return