Skip to content

Instantly share code, notes, and snippets.

@ihorkatkov
Created September 19, 2018 08:56
Show Gist options
  • Save ihorkatkov/03782928f452b516ebebb4f41f6352de to your computer and use it in GitHub Desktop.
Save ihorkatkov/03782928f452b516ebebb4f41f6352de to your computer and use it in GitHub Desktop.
Small component example usage with GQL
// @flow
import React from 'react'
import { identity } from 'ramda'
import { Query } from 'react-apollo'
import { createSelector } from 'reselect'
import RecentEvent from '@/pages/photographerDashboard/app/recentEvents/RecentEvent'
import meQuery from '@/modules/query/me'
import Loader from '@/components/Loader'
import pathOrDefaultValue from '@/utils/pathOrDefaultValue'
import type { Event } from '@/modules/types/event'
type EventsSelector = Object => [] | Array<Event>
const eventsSelector: EventsSelector = createSelector(
identity,
pathOrDefaultValue('me.events', [], false),
)
const RecentEvents = () => (
<Query query={meQuery}>
{({ data, loading }) => {
if (loading) {
return <Loader />
}
const events = eventsSelector(data)
return (
<div className="col-lg-6 dashboard-cards-container">
{events.map((event: Event) => (
<RecentEvent key={event.id} event={event} />
))}
</div>
)
}}
</Query>
)
export default RecentEvents
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment