Skip to content

Instantly share code, notes, and snippets.

@tmeasday
Created March 12, 2017 10:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tmeasday/7f3b964c63a580df23e3cd41083186a7 to your computer and use it in GitHub Desktop.
Save tmeasday/7f3b964c63a580df23e3cd41083186a7 to your computer and use it in GitHub Desktop.
import React, { PropTypes } from 'react';
import { propType } from 'graphql-anywhere';
import gql from 'graphql-tag';
import Task from './Task';
function TaskList(
{ tasks, onSnoozeTask, onPinTask, onArchiveTask, onUpdateTaskTitle },
) {
const events = {
onSnoozeTask,
onPinTask,
onArchiveTask,
onUpdateTaskTitle,
};
return (
<div className="list-items">
{tasks.map(task => <Task key={task.id} task={task} {...events} />)}
</div>
);
}
TaskList.fragments = {
task: (
gql`
fragment TaskListTaskFragment on Task {
id
updatedAt
...TaskFragment
}
${Task.fragments.task}
`
),
};
TaskList.propTypes = {
tasks: PropTypes.arrayOf(propType(Task.fragments.task)).isRequired,
onSnoozeTask: PropTypes.func,
onPinTask: PropTypes.func,
onArchiveTask: PropTypes.func,
onUpdateTaskTitle: PropTypes.func.isRequired,
};
export default TaskList;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment