From 6a163846f8a855efb86d04edc8de5f718ded23e8 Mon Sep 17 00:00:00 2001 From: Jayden Seric Date: Mon, 21 Aug 2017 14:08:39 +1000 Subject: [PATCH] Simpler design, better componentization. --- app/components/file-input.js | 11 ++++ app/components/multiple-uploader.js | 3 +- app/components/section.js | 14 ----- app/components/single-uploader.js | 3 +- app/components/table.js | 45 ++++++++++++++++ app/components/upload-list.js | 83 ++++++++++------------------- app/pages/index.js | 15 ++---- 7 files changed, 91 insertions(+), 83 deletions(-) create mode 100644 app/components/file-input.js delete mode 100644 app/components/section.js create mode 100644 app/components/table.js diff --git a/app/components/file-input.js b/app/components/file-input.js new file mode 100644 index 0000000..5ed0b56 --- /dev/null +++ b/app/components/file-input.js @@ -0,0 +1,11 @@ +const FileInput = props => +
+ + +
+ +export default FileInput diff --git a/app/components/multiple-uploader.js b/app/components/multiple-uploader.js index 595bc98..1aafbbf 100644 --- a/app/components/multiple-uploader.js +++ b/app/components/multiple-uploader.js @@ -1,4 +1,5 @@ import { graphql, gql } from 'react-apollo' +import FileInput from './file-input' import uploadsQuery from '../queries/uploads' const MultipleUploader = ({ mutate }) => { @@ -15,7 +16,7 @@ const MultipleUploader = ({ mutate }) => { ] }) - return + return } export default graphql(gql` diff --git a/app/components/section.js b/app/components/section.js deleted file mode 100644 index 9d61dcb..0000000 --- a/app/components/section.js +++ /dev/null @@ -1,14 +0,0 @@ -const Section = ({ heading, children }) => -
-

- {heading} -

- {children} - -
- -export default Section diff --git a/app/components/single-uploader.js b/app/components/single-uploader.js index 7924be4..862b01a 100644 --- a/app/components/single-uploader.js +++ b/app/components/single-uploader.js @@ -1,4 +1,5 @@ import { graphql, gql } from 'react-apollo' +import FileInput from './file-input' import uploadsQuery from '../queries/uploads' const SingleUploader = ({ mutate }) => { @@ -15,7 +16,7 @@ const SingleUploader = ({ mutate }) => { ] }) - return + return } export default graphql(gql` diff --git a/app/components/table.js b/app/components/table.js new file mode 100644 index 0000000..29a8caa --- /dev/null +++ b/app/components/table.js @@ -0,0 +1,45 @@ +export const Table = ({ thead, tbody }) => +
+ + + {thead} + + + {tbody} + +
+ +
+ +export const Head = ({ children }) => + + {children} + + + +export const Cell = ({ children }) => + + {children} + + diff --git a/app/components/upload-list.js b/app/components/upload-list.js index 30151fd..58c0ef3 100644 --- a/app/components/upload-list.js +++ b/app/components/upload-list.js @@ -1,60 +1,33 @@ import { graphql } from 'react-apollo' +import { Table, Head, Cell } from './table' import uploadsQuery from '../queries/uploads' -const UploadList = ({ data: { uploads = [] } }) => { - return ( -
- - - - - - - - - - - {uploads.map(({ id, name, type, size, path }) => - - - - - - - )} - -
NameTypeSizePath
- {name} - - {type} - - {size} - - {path} -
- -
- ) -} +const UploadList = ({ data: { uploads = [] } }) => + + Name + Type + Size + Path + + } + tbody={uploads.map(({ id, name, type, size, path }) => + + + {name} + + + {type} + + + {size} + + + {path} + + + )} + /> export default graphql(uploadsQuery)(UploadList) diff --git a/app/pages/index.js b/app/pages/index.js index 009ab0a..ef3469d 100644 --- a/app/pages/index.js +++ b/app/pages/index.js @@ -1,6 +1,5 @@ import Head from 'next/head' import withData from '../helpers/with-data' -import Section from '../components/section' import SingleUploader from '../components/single-uploader' import MultipleUploader from '../components/multiple-uploader' import UploadList from '../components/upload-list' @@ -22,17 +21,9 @@ const HomePage = () => `} -

Apollo upload examples

-

Select files to upload and view the responses in the console.

-
- -
-
- -
-
- -
+ + + export default withData(HomePage)