198
풀스택 서버리스
const signedUrl = await Storage.get(item.imageKey)
item.imageUrl = signedUrl
return item
})
)
return signedPosts
}
function Posts() {
const [posts, dispatch] = useReducer(reducer, [])
useEffect(() => {
fetchPosts()
const subscription = API.graphql(graphqlOperation(onCreatePost)).subscribe({
next: async post => {
const newPost = post.value.data.onCreatePost
const signedUrl = await Storage.get(newPost.imageKey)
newPost.imageUrl = signedUrl
dispatch({ type: 'ADD_POST', post: newPost })
}
})
return () => subscription.unsubscribe()
}, [])
async function fetchPosts() {
const postData = await API.graphql(graphqlOperation(listPosts))
const { data: { listPosts: { items }}} = postData
const signedPosts = await getSignedPosts(items)
dispatch({ ...