import React, { useState, useContext } from 'react';
import styled from 'styled-components/macro';
import GlobalTopNavbar from 'App/TopNavbar';
import { useGetProjectsQuery, useCreateProjectMutation, GetProjectsDocument } from 'shared/generated/graphql';
import ProjectGridItem, { AddProjectItem } from 'shared/components/ProjectGridItem';
import { Link } from 'react-router-dom';
import Navbar from 'App/Navbar';
import NewProject from 'shared/components/NewProject';
import UserIDContext from 'App/context';
const MainContent = styled.div`
padding: 0 0 50px 80px;
height: 100%;
background: #262c49;
`;
const ProjectGrid = styled.div`
width: 60%;
max-width: 780px;
margin: 25px auto;
display: grid;
grid-template-columns: 240px 240px 240px;
gap: 20px 10px;
`;
const ProjectLink = styled(Link)``;
const Projects = () => {
const { loading, data } = useGetProjectsQuery();
const [createProject] = useCreateProjectMutation({
update: (client, newProject) => {
const cacheData: any = client.readQuery({
query: GetProjectsDocument,
});
console.log(cacheData);
console.log(newProject);
const newData = {
...cacheData,
projects: [...cacheData.projects, { ...newProject.data.createProject }],
};
console.log(newData);
client.writeQuery({
query: GetProjectsDocument,
data: newData,
});
},
});
const [showNewProject, setShowNewProject] = useState(false);
const { userID, setUserID } = useContext(UserIDContext);
if (loading) {
return (
<>
loading
>
);
}
if (data) {
const { projects, teams } = data;
return (
<>
{}} name={null} />
{projects.map(project => (
))}
{
setShowNewProject(true);
}}
/>
{showNewProject && (
{
if (userID) {
createProject({ variables: { teamID, name, userID } });
setShowNewProject(false);
}
}}
onClose={() => {
setShowNewProject(false);
}}
teams={teams}
/>
)}
>
);
}
return Error!
;
};
export default Projects;