awesome-uses/src/context/FilterContext.js

53 lines
1,003 B
JavaScript
Raw Normal View History

2020-01-07 20:23:53 +00:00
import React, { createContext, useState } from 'react';
import { useStaticQuery, graphql } from 'gatsby';
const FilterContext = createContext();
const FilterProvider = function({ children }) {
const [currentTag, setCurrentTag] = useState('all');
2020-01-08 15:53:02 +00:00
const { allTag, allCountry, allDevice } = useStaticQuery(graphql`
2020-01-07 20:23:53 +00:00
query FilterQuery {
allTag {
nodes {
name
count
}
}
allCountry {
nodes {
count
emoji
name
}
}
2020-01-08 15:53:02 +00:00
allDevice {
2020-01-08 11:44:52 +00:00
nodes {
count
name
}
}
2020-01-07 20:23:53 +00:00
}
`);
return (
<FilterContext.Provider
value={{
tags: allTag.nodes,
countries: allCountry.nodes,
2020-01-08 15:53:02 +00:00
devices: allDevice.nodes,
2020-01-07 20:23:53 +00:00
currentTag,
setCurrentTag,
}}
>
{children}
</FilterContext.Provider>
);
};
2020-01-17 20:40:06 +00:00
FilterProvider.propTypes = {
children: React.Children,
};
2020-01-07 20:23:53 +00:00
export default FilterContext;
export { FilterProvider };