37 lines
792 B
JavaScript
37 lines
792 B
JavaScript
|
import { gql, useQuery } from '@apollo/client'
|
||
|
import React from 'react'
|
||
|
import Item from './item'
|
||
|
import styles from './items.module.css'
|
||
|
|
||
|
export default function Items () {
|
||
|
const { loading, error, data } = useQuery(
|
||
|
gql`
|
||
|
{ items {
|
||
|
id
|
||
|
createdAt
|
||
|
title
|
||
|
url
|
||
|
user {
|
||
|
name
|
||
|
}
|
||
|
sats
|
||
|
ncomments
|
||
|
} }`
|
||
|
)
|
||
|
if (error) return <div>Failed to load</div>
|
||
|
if (loading) return <div>Loading...</div>
|
||
|
const { items } = data
|
||
|
return (
|
||
|
<div className={styles.grid}>
|
||
|
{items.map((item, i) => (
|
||
|
<React.Fragment key={item.id}>
|
||
|
<div className={styles.rank} key={item.id}>
|
||
|
{i + 1}
|
||
|
</div>
|
||
|
<Item item={item} />
|
||
|
</React.Fragment>
|
||
|
))}
|
||
|
</div>
|
||
|
)
|
||
|
}
|