Improve bookcard UI responsiveness (#231)
* Improve bookcard responsive UI * Hamburger menu * Resolved conflict, mergin to upstream * fix missing bookmark button
This commit is contained in:
@@ -42,6 +42,7 @@ exports.createPages = async function ({ actions, graphql }) {
|
||||
context: {
|
||||
categoryName: category.name,
|
||||
data: data.data,
|
||||
image: category.emoji,
|
||||
limit: null,
|
||||
},
|
||||
})
|
||||
|
||||
13850
app/package-lock.json
generated
13850
app/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -33,7 +33,7 @@
|
||||
"eslint-plugin-jsx-a11y": "^6.3.1",
|
||||
"eslint-plugin-react": "^7.20.6",
|
||||
"eslint-plugin-react-hooks": "^4.1.0",
|
||||
"husky": ">=4",
|
||||
"husky": "^4.3.0",
|
||||
"lint-staged": ">=10",
|
||||
"prettier": "1.19.1",
|
||||
"tailwindcss": "^1.1.2"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import PropTypes from "prop-types"
|
||||
import React,{useState} from "react"
|
||||
import React, { useState } from "react"
|
||||
import StarRatings from "react-star-ratings"
|
||||
import { Card, Row, Col } from "react-bootstrap"
|
||||
|
||||
@@ -7,38 +7,43 @@ import AmazonURL from "../components/amazonurl"
|
||||
import Bookmark from "../components/bookmark"
|
||||
import GoodReadsImage from "../components/goodreadsimage"
|
||||
|
||||
const truncateContent = (content) => {
|
||||
const truncateContent = content => {
|
||||
if (!content) {
|
||||
return ""
|
||||
}
|
||||
return content.length > 350 ? content.substring(0, 350) + "..." : content
|
||||
};
|
||||
}
|
||||
|
||||
const showFullText = (content) =>{
|
||||
const showFullText = content => {
|
||||
if (!content) {
|
||||
return ""
|
||||
}
|
||||
return content
|
||||
}
|
||||
|
||||
const BookCard = ({book}) =>{
|
||||
const [show,toggleShow] = useState(false)
|
||||
return(
|
||||
<Card className="ml-5 mb-2">
|
||||
<Row>
|
||||
<Col className="col-3 align-self-center">
|
||||
<Card.Img
|
||||
style={{ width: "9rem", paddingLeft: "25px", paddingRight: "-15px", paddingTop: "30px" }}
|
||||
src={book.image_url}
|
||||
alt={book.title}
|
||||
/>
|
||||
</Col>
|
||||
<Col>
|
||||
<Card.Body style={{ marginLeft: "-30px"}}>
|
||||
<Card.Title>{book.title}</Card.Title>
|
||||
<Card.Subtitle className="mb-2 text-muted">
|
||||
<div>{book.author} <b>{book.year ? book.year: null}</b></div>
|
||||
<div>
|
||||
const BookCard = ({ book }) => {
|
||||
const [show, toggleShow] = useState(false)
|
||||
return (
|
||||
<Card style={{ marginBottom: "15px" }}>
|
||||
<Row>
|
||||
<Col xs={12} md={4} xl={2}>
|
||||
<Card.Img
|
||||
style={{
|
||||
paddingLeft: "15px",
|
||||
paddingRight: "15px",
|
||||
paddingTop: "30px",
|
||||
}}
|
||||
src={book.image_url}
|
||||
resizeMode="contain"
|
||||
/>
|
||||
</Col>
|
||||
<Col xs={12} md={8} xl={10}>
|
||||
<Card.Body>
|
||||
<Card.Title>{book.title}</Card.Title>
|
||||
<Card.Subtitle className="text-muted">
|
||||
<Card.Text style={{ paddingTop: "2px"}}>
|
||||
{book.author} <b>{book.year ? book.year : null}</b>
|
||||
</Card.Text>
|
||||
<StarRatings
|
||||
rating={parseFloat(book.rating)}
|
||||
numberOfStars={5}
|
||||
@@ -46,29 +51,45 @@ return(
|
||||
starSpacing="1px"
|
||||
starRatedColor="#fa604a"
|
||||
/>
|
||||
</div>
|
||||
<div style={{ display: "flex", alignItems: "center", paddingTop: ".75rem" }}>
|
||||
<div style= {{ width: "30px", height: "30px", marginRight: "5px" }}>
|
||||
{book.amazon_url ? <AmazonURL book={book} />: null}
|
||||
<div style={{display: "flex",alignItems: "center",paddingTop: ".75rem",}} >
|
||||
<div style={{ width: "30px", height: "30px", marginRight: "5px" }}>
|
||||
{book.amazon_url ? <AmazonURL book={book} /> : null}
|
||||
</div>
|
||||
<div style={{ width: "30px", height: "30px" }}>
|
||||
<a href={book.url}>
|
||||
<GoodReadsImage />
|
||||
</a>
|
||||
</div>
|
||||
<Bookmark book={book} />
|
||||
</div>
|
||||
<div style= {{ width: "30px", height: "30px" }}>
|
||||
<a href={book.url} ><GoodReadsImage /></a>
|
||||
</div>
|
||||
<Bookmark book={book} />
|
||||
</div>
|
||||
</Card.Subtitle>
|
||||
<p style={{ color: "gray", fontSize: "0.8rem", paddingTop: "1rem" }}>
|
||||
{!show && truncateContent(book.description)}
|
||||
{show && showFullText(book.description)}
|
||||
</p>
|
||||
{!show && <button className="btn btn-primary" onClick={() => toggleShow(true)}>Show More</button>}
|
||||
{show && <button className="btn btn-primary" onClick={() => toggleShow(false)}>Show Less</button>}
|
||||
|
||||
</Card.Body>
|
||||
</Col>
|
||||
</Row>
|
||||
</Card>
|
||||
)
|
||||
</Card.Subtitle>
|
||||
<p
|
||||
style={{ color: "gray", fontSize: "0.8rem", paddingTop: "1rem" }}
|
||||
>
|
||||
{!show && truncateContent(book.description)}
|
||||
{show && showFullText(book.description)}
|
||||
</p>
|
||||
{!show && (
|
||||
<button
|
||||
className="btn btn-sm btn-primary "
|
||||
onClick={() => toggleShow(true)}
|
||||
>
|
||||
Show More
|
||||
</button>
|
||||
)}
|
||||
{show && (
|
||||
<button
|
||||
className="btn btn-sm btn-primary "
|
||||
onClick={() => toggleShow(false)}
|
||||
>
|
||||
Show Less
|
||||
</button>
|
||||
)}
|
||||
</Card.Body>
|
||||
</Col>
|
||||
</Row>
|
||||
</Card>
|
||||
)
|
||||
}
|
||||
|
||||
BookCard.propTypes = {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import React from "react";
|
||||
|
||||
|
||||
export default ({categoryName}) => {
|
||||
export default ({categoryName, categoryImage}) => {
|
||||
return (
|
||||
<div aria-labelledby="category-description">
|
||||
<h2 id="category-description">
|
||||
{categoryName}
|
||||
</h2>
|
||||
<div className="my-2 mx-2" aria-labelledby="category-description">
|
||||
<h4 id="category-description">
|
||||
{categoryImage} {categoryName}
|
||||
</h4>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -3,17 +3,17 @@ import PropTypes from "prop-types"
|
||||
import React from "react"
|
||||
|
||||
const Header = ({ siteTitle }) => (
|
||||
<header className="my-1 bg-red custom-header" aria-labelledby='main-title'>
|
||||
<h1 id="main-title" style={{ margin: 0 }}>
|
||||
<header className="mx-2 bg-red d-none d-lg-block custom-header" aria-labelledby='main-title'>
|
||||
<h4 className="d-flex justify-content-end" id="main-title" style={{ margin: 16 }}>
|
||||
<Link
|
||||
to="/"
|
||||
style={{
|
||||
textDecoration: `none`,
|
||||
textDecorationColor: `none`,
|
||||
}}
|
||||
>
|
||||
{siteTitle}
|
||||
</Link>
|
||||
</h1>
|
||||
</h4>
|
||||
</header>
|
||||
)
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import { useStaticQuery, graphql } from "gatsby"
|
||||
import Header from "./header"
|
||||
import "./layout.css"
|
||||
import "bootstrap/dist/css/bootstrap.min.css"
|
||||
import { Container } from "react-bootstrap"
|
||||
|
||||
const Layout = ({ children }) => {
|
||||
const data = useStaticQuery(graphql`
|
||||
@@ -27,10 +28,14 @@ const Layout = ({ children }) => {
|
||||
return (
|
||||
<>
|
||||
<Header siteTitle={data.site.siteMetadata.title} />
|
||||
<div className="container mx-auto px-10">
|
||||
<Container fluid>
|
||||
<main>{children}</main>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
© {new Date().getFullYear()}, Built with
|
||||
{` `}
|
||||
<a href="https://www.gatsbyjs.org">Gatsby</a>
|
||||
</footer>
|
||||
</Container>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useContext } from "react"
|
||||
import { Nav } from "react-bootstrap"
|
||||
import { Navbar, Nav } from "react-bootstrap"
|
||||
import { StaticQuery, graphql, Link } from "gatsby"
|
||||
import "../styles/sidebar.css"
|
||||
import { BookmarkContext } from '../context/globalState'
|
||||
@@ -24,25 +24,25 @@ export default () => {
|
||||
}
|
||||
`}
|
||||
render={data => (
|
||||
<Nav
|
||||
className="col-md-2 d-none d-md-block bg-light sidebar"
|
||||
activeKey="/home"
|
||||
>
|
||||
<div className="sidebar-sticky" role="navigation" aria-label="Sidebar">
|
||||
<div style={{position: "relative", left: "0.9rem", paddingBottom: "0.2rem"}}>
|
||||
<Navbar className="sidebar-sticky" collapseOnSelect expand="lg" bg="ligt" variant="light">
|
||||
<Navbar.Toggle aria-controls="responsive-navbar-nav" />
|
||||
<Navbar.Collapse>
|
||||
<div>
|
||||
<div style={{position: "relative", left: "0.9rem", paddingBottom: "0.2rem"}}>
|
||||
<Link to="/readingList">🔖 Reading List ({readingList.bookIds.length})</Link>
|
||||
</div>
|
||||
{data.allCategoriesJson.edges.map(function(x, index) {
|
||||
return (
|
||||
<Nav.Item key={x.node.name}>
|
||||
<Nav.Link href={slugify(x.node.name)} role="button">
|
||||
<Nav.Item>
|
||||
<Nav.Link href={slugify(x.node.name)}>
|
||||
{x.node.emoji} {x.node.name}
|
||||
</Nav.Link>
|
||||
</Nav.Item>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
</Nav>
|
||||
</Navbar.Collapse>
|
||||
</Navbar>
|
||||
)}
|
||||
/>
|
||||
)
|
||||
|
||||
@@ -4,7 +4,7 @@ import { graphql } from "gatsby"
|
||||
import Layout from "../components/layout"
|
||||
import SEO from "../components/seo"
|
||||
import SideBar from "../components/sidebar"
|
||||
import { Container, Row, Col } from "react-bootstrap"
|
||||
import { Container, Row, Col, Navbar } from "react-bootstrap"
|
||||
import BookFeed from "../components/feed"
|
||||
|
||||
function myFunction(setMaximumBooksToShow, maximumBooksToShow) {
|
||||
@@ -28,12 +28,12 @@ export default ({ data }) => {
|
||||
return (
|
||||
<Layout>
|
||||
<SEO title="Home" />
|
||||
<Container fluid>
|
||||
<Container fluid>
|
||||
<Row>
|
||||
<Col xs={2}>
|
||||
<Col lg={2}>
|
||||
<SideBar />
|
||||
</Col>
|
||||
<Col>
|
||||
<Col lg={10}>
|
||||
<BookFeed data={data} limit={maximumBooksToShow} />
|
||||
</Col>
|
||||
</Row>
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.1);
|
||||
width: max-content;
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
font-size: .900rem;
|
||||
}
|
||||
|
||||
#sidebar-wrapper {
|
||||
min-height: 100vh !important;
|
||||
width: 100vw;
|
||||
@@ -25,3 +30,6 @@
|
||||
min-width: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,31 +1,32 @@
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import { graphql } from 'gatsby';
|
||||
import React, { useState, useEffect } from "react"
|
||||
import { graphql } from "gatsby"
|
||||
|
||||
import { Container, Row, Col } from 'react-bootstrap';
|
||||
import Layout from '../components/layout';
|
||||
import SEO from '../components/seo';
|
||||
import SideBar from '../components/sidebar';
|
||||
import CategoryDescription from '../components/categorydescription';
|
||||
import BookFeed from '../components/feed';
|
||||
import Layout from "../components/layout"
|
||||
import SEO from "../components/seo"
|
||||
import SideBar from "../components/sidebar"
|
||||
import CategoryDescription from "../components/categorydescription"
|
||||
import { Container, Row, Col } from "react-bootstrap"
|
||||
import BookFeed from "../components/feed"
|
||||
|
||||
const basicTemplate = props => {
|
||||
const { pageContext } = props
|
||||
const { categoryName, data, image } = pageContext
|
||||
|
||||
const basicTemplate = (props) => {
|
||||
const { pageContext } = props;
|
||||
const { categoryName, data } = pageContext;
|
||||
return (
|
||||
<Layout>
|
||||
<SEO title="Home" />
|
||||
<Container fluid>
|
||||
<Row>
|
||||
<Col xs={2}>
|
||||
<Col lg={2}>
|
||||
<SideBar />
|
||||
</Col>
|
||||
<Col>
|
||||
<CategoryDescription categoryName={categoryName} />
|
||||
<Col lg={10}>
|
||||
<CategoryDescription categoryName={categoryName} categoryImage={image} />
|
||||
<BookFeed data={data} categoryName={categoryName} />
|
||||
</Col>
|
||||
</Row>
|
||||
</Container>
|
||||
</Layout>
|
||||
);
|
||||
};
|
||||
export default basicTemplate;
|
||||
)
|
||||
}
|
||||
export default basicTemplate
|
||||
|
||||
129
app/yarn.lock
129
app/yarn.lock
@@ -988,7 +988,7 @@
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.2"
|
||||
|
||||
"@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
|
||||
"@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
|
||||
version "7.11.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736"
|
||||
integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==
|
||||
@@ -4270,6 +4270,17 @@ cosmiconfig@^6.0.0:
|
||||
path-type "^4.0.0"
|
||||
yaml "^1.7.2"
|
||||
|
||||
cosmiconfig@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3"
|
||||
integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==
|
||||
dependencies:
|
||||
"@types/parse-json" "^4.0.0"
|
||||
import-fresh "^3.2.1"
|
||||
parse-json "^5.0.0"
|
||||
path-type "^4.0.0"
|
||||
yaml "^1.10.0"
|
||||
|
||||
create-ecdh@^4.0.0:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
|
||||
@@ -5389,6 +5400,24 @@ es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstrac
|
||||
string.prototype.trimend "^1.0.1"
|
||||
string.prototype.trimstart "^1.0.1"
|
||||
|
||||
es-abstract@^1.18.0-next.0:
|
||||
version "1.18.0-next.1"
|
||||
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68"
|
||||
integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==
|
||||
dependencies:
|
||||
es-to-primitive "^1.2.1"
|
||||
function-bind "^1.1.1"
|
||||
has "^1.0.3"
|
||||
has-symbols "^1.0.1"
|
||||
is-callable "^1.2.2"
|
||||
is-negative-zero "^2.0.0"
|
||||
is-regex "^1.1.1"
|
||||
object-inspect "^1.8.0"
|
||||
object-keys "^1.1.1"
|
||||
object.assign "^4.1.1"
|
||||
string.prototype.trimend "^1.0.1"
|
||||
string.prototype.trimstart "^1.0.1"
|
||||
|
||||
es-to-primitive@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
|
||||
@@ -5427,6 +5456,24 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1
|
||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
||||
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
||||
|
||||
eslint-config-airbnb-base@^14.2.0:
|
||||
version "14.2.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.0.tgz#fe89c24b3f9dc8008c9c0d0d88c28f95ed65e9c4"
|
||||
integrity sha512-Snswd5oC6nJaevs3nZoLSTvGJBvzTfnBqOIArkf3cbyTyq9UD79wOk8s+RiL6bhca0p/eRO6veczhf6A/7Jy8Q==
|
||||
dependencies:
|
||||
confusing-browser-globals "^1.0.9"
|
||||
object.assign "^4.1.0"
|
||||
object.entries "^1.1.2"
|
||||
|
||||
eslint-config-airbnb@^18.2.0:
|
||||
version "18.2.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.0.tgz#8a82168713effce8fc08e10896a63f1235499dcd"
|
||||
integrity sha512-Fz4JIUKkrhO0du2cg5opdyPKQXOI2MvF8KUvN2710nJMT6jaRUpRE2swrJftAjVGL7T1otLM5ieo5RqS1v9Udg==
|
||||
dependencies:
|
||||
eslint-config-airbnb-base "^14.2.0"
|
||||
object.assign "^4.1.0"
|
||||
object.entries "^1.1.2"
|
||||
|
||||
eslint-config-react-app@^5.2.1:
|
||||
version "5.2.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz#698bf7aeee27f0cea0139eaef261c7bf7dd623df"
|
||||
@@ -5517,6 +5564,11 @@ eslint-plugin-react-hooks@^1.7.0:
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04"
|
||||
integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==
|
||||
|
||||
eslint-plugin-react-hooks@^4.1.0:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.1.2.tgz#2eb53731d11c95826ef7a7272303eabb5c9a271e"
|
||||
integrity sha512-ykUeqkGyUGgwTtk78C0o8UG2fzwmgJ0qxBGPp2WqRKsTwcLuVf01kTDRAtOsd4u6whX2XOC8749n2vPydP82fg==
|
||||
|
||||
eslint-plugin-react@^7.20.2:
|
||||
version "7.20.6"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.6.tgz#4d7845311a93c463493ccfa0a19c9c5d0fd69f60"
|
||||
@@ -5534,6 +5586,23 @@ eslint-plugin-react@^7.20.2:
|
||||
resolve "^1.17.0"
|
||||
string.prototype.matchall "^4.0.2"
|
||||
|
||||
eslint-plugin-react@^7.20.6:
|
||||
version "7.21.4"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.21.4.tgz#31060b2e5ff82b12e24a3cc33edb7d12f904775c"
|
||||
integrity sha512-uHeQ8A0hg0ltNDXFu3qSfFqTNPXm1XithH6/SY318UX76CMj7Q599qWpgmMhVQyvhq36pm7qvoN3pb6/3jsTFg==
|
||||
dependencies:
|
||||
array-includes "^3.1.1"
|
||||
array.prototype.flatmap "^1.2.3"
|
||||
doctrine "^2.1.0"
|
||||
has "^1.0.3"
|
||||
jsx-ast-utils "^2.4.1 || ^3.0.0"
|
||||
object.entries "^1.1.2"
|
||||
object.fromentries "^2.0.2"
|
||||
object.values "^1.1.1"
|
||||
prop-types "^15.7.2"
|
||||
resolve "^1.17.0"
|
||||
string.prototype.matchall "^4.0.2"
|
||||
|
||||
eslint-scope@^4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
|
||||
@@ -6645,6 +6714,14 @@ gatsby-page-utils@^0.2.20:
|
||||
lodash "^4.17.15"
|
||||
micromatch "^3.1.10"
|
||||
|
||||
gatsby-plugin-google-analytics@^2.3.14:
|
||||
version "2.3.17"
|
||||
resolved "https://registry.yarnpkg.com/gatsby-plugin-google-analytics/-/gatsby-plugin-google-analytics-2.3.17.tgz#61207d253b69e8ab606ebff75e074c1774d108bb"
|
||||
integrity sha512-0s8m2BPBBsccCIFE2rUl98Ir/JE273cyPwfFB1PrtNz6rVmbRrm8AWKJvGXlZiPAfMUuBhT39vCgTvrCDp4phw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.11.2"
|
||||
minimatch "3.0.4"
|
||||
|
||||
gatsby-plugin-manifest@^2.2.21:
|
||||
version "2.2.21"
|
||||
resolved "https://registry.yarnpkg.com/gatsby-plugin-manifest/-/gatsby-plugin-manifest-2.2.21.tgz#3be76247d2f652fd17a8706fd040955201c21e70"
|
||||
@@ -7893,15 +7970,15 @@ human-signals@^1.1.1:
|
||||
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
|
||||
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
|
||||
|
||||
husky@>=4:
|
||||
version "4.2.5"
|
||||
resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36"
|
||||
integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==
|
||||
husky@^4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.0.tgz#0b2ec1d66424e9219d359e26a51c58ec5278f0de"
|
||||
integrity sha512-tTMeLCLqSBqnflBZnlVDhpaIMucSGaYyX6855jM4AguGeWCeSzNdb1mfyWduTZ3pe3SJVvVWGL0jO1iKZVPfTA==
|
||||
dependencies:
|
||||
chalk "^4.0.0"
|
||||
ci-info "^2.0.0"
|
||||
compare-versions "^3.6.0"
|
||||
cosmiconfig "^6.0.0"
|
||||
cosmiconfig "^7.0.0"
|
||||
find-versions "^3.2.0"
|
||||
opencollective-postinstall "^2.0.2"
|
||||
pkg-dir "^4.2.0"
|
||||
@@ -8033,7 +8110,7 @@ import-fresh@^3.0.0:
|
||||
parent-module "^1.0.0"
|
||||
resolve-from "^4.0.0"
|
||||
|
||||
import-fresh@^3.1.0:
|
||||
import-fresh@^3.1.0, import-fresh@^3.2.1:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
|
||||
integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==
|
||||
@@ -8355,6 +8432,11 @@ is-callable@^1.2.0:
|
||||
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb"
|
||||
integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==
|
||||
|
||||
is-callable@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9"
|
||||
integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==
|
||||
|
||||
is-ci@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
|
||||
@@ -8540,6 +8622,11 @@ is-natural-number@^4.0.1:
|
||||
resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
|
||||
integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=
|
||||
|
||||
is-negative-zero@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461"
|
||||
integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=
|
||||
|
||||
is-npm@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d"
|
||||
@@ -8630,7 +8717,7 @@ is-regex@^1.0.4:
|
||||
dependencies:
|
||||
has "^1.0.1"
|
||||
|
||||
is-regex@^1.1.0:
|
||||
is-regex@^1.1.0, is-regex@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9"
|
||||
integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==
|
||||
@@ -8992,6 +9079,14 @@ jsx-ast-utils@^2.4.1:
|
||||
array-includes "^3.1.1"
|
||||
object.assign "^4.1.0"
|
||||
|
||||
"jsx-ast-utils@^2.4.1 || ^3.0.0":
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.0.0.tgz#0f49d5093bafa4b45d3fe02147d8b40ffc6c7438"
|
||||
integrity sha512-sPuicm6EPKYI/UnWpOatvg4pI50qaBo4dSOMGUPutmJ26ttedFKXr0It0XXPk4HKnQ/1X0st4eSS2w2jhFk9Ow==
|
||||
dependencies:
|
||||
array-includes "^3.1.1"
|
||||
object.assign "^4.1.1"
|
||||
|
||||
keyv@3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373"
|
||||
@@ -9787,7 +9882,7 @@ minimatch@3.0.3:
|
||||
dependencies:
|
||||
brace-expansion "^1.0.0"
|
||||
|
||||
minimatch@^3.0.3, minimatch@^3.0.4:
|
||||
minimatch@3.0.4, minimatch@^3.0.3, minimatch@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
||||
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
|
||||
@@ -10337,7 +10432,7 @@ object-inspect@^1.6.0:
|
||||
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b"
|
||||
integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==
|
||||
|
||||
object-inspect@^1.7.0:
|
||||
object-inspect@^1.7.0, object-inspect@^1.8.0:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
|
||||
integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
|
||||
@@ -10374,6 +10469,16 @@ object.assign@^4.1.0:
|
||||
has-symbols "^1.0.0"
|
||||
object-keys "^1.0.11"
|
||||
|
||||
object.assign@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd"
|
||||
integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==
|
||||
dependencies:
|
||||
define-properties "^1.1.3"
|
||||
es-abstract "^1.18.0-next.0"
|
||||
has-symbols "^1.0.1"
|
||||
object-keys "^1.1.1"
|
||||
|
||||
object.entries@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add"
|
||||
@@ -13212,7 +13317,7 @@ slice-ansi@^4.0.0:
|
||||
astral-regex "^2.0.0"
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
|
||||
slugify@^1.4.4:
|
||||
slugify@^1.4.4, slugify@^1.4.5:
|
||||
version "1.4.5"
|
||||
resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.4.5.tgz#a7517acf5f4c02a4df41e735354b660a4ed1efcf"
|
||||
integrity sha512-WpECLAgYaxHoEAJ8Q1Lo8HOs1ngn7LN7QjXgOLbmmfkcWvosyk4ZTXkTzKyhngK640USTZUlgoQJfED1kz5fnQ==
|
||||
@@ -15468,7 +15573,7 @@ yaml-loader@^0.6.0:
|
||||
loader-utils "^1.4.0"
|
||||
yaml "^1.8.3"
|
||||
|
||||
yaml@^1.7.2, yaml@^1.8.3:
|
||||
yaml@^1.10.0, yaml@^1.7.2, yaml@^1.8.3:
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
|
||||
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
|
||||
|
||||
Reference in New Issue
Block a user