css 하면서 있었던 이슈 총정리 https://www.npmjs.com/package/react-textarea-autosize 오타 정리 computed로 빼는거 fragment를 사용해서 prisma의 데이터 이중 접근 제한을 해결할 수 있지만 coputed를 사용하는 것이 더 좋음. fragment안쓰기 백엔드 리마인드

import { prisma } from '../../../generated/prisma-client';

export default {
    Post: {
        isLiked: async (parent, __, { request }) => {
            const { id: parentId } = parent;
            const { user } = request;

            return await prisma.$exists.post({
                AND: [
                    {
                        id: parentId
                    },
                    {
                        Likes_some: {
                            id: user.id
                        }
                    }
                ]
            });
        },
        likeCount: async (parent, _, __) =>
            await prisma
                .likesConnection({ where: { post: { id: parent.id } } })
                .aggregate()
                .count(),
        files: parent => prisma.post({ id: parent.id }).files(),
        comments: parent => prisma.post({ id: parent.id }).comments(),
        user: parent => prisma.post({ id: parent.id }).user(),
        Likes: parent => prisma.post({ id: parent.id }).Likes()
    }
};

피드를 보기 위한 순서

Feed Route에서 Query seeFeed를 해야함. seeFeed를 하기 위해서는 Apollo-boost를 import해서 gql를 사용해야함. gql을 사용해서 query 만듬. 만들었으니 사용해야함. Query사용은 useQuery해서 함. useQuery는 data랑 loading이 있는데 로딩화면일 때 loader 컴포넌트 보여주면 됨. loading 아니면서 데이터 받아왔으면 그 데이터를 Post컴포넌트에 넘겨줘야함. Feed는 [Post]형태이기 때문에 map 필요 Post컴포넌트가 클 것이라 예상하기 때문에 Container Presenter index방식 사용함. index에서 Container import해서 export함 Container는 데이터를 Presenter에게 넘겨주고 Presenter를 return 함. 여기서는 Post data외에도 댓글 달아야하는 input이 필요하기 때문에 useInput사용 또한 좋아요를 서버안거치고 하기위해 setState사용. Container에서 proptypes를 정해줘야하는데 user같은 객체는 PropTypes.shape({})방식 사용 그다음은