diff --git a/README.md b/README.md index e7feae6..576f88e 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,43 @@ # Flux-Frontend
- - [![Tested with Jest](https://img.shields.io/badge/tested_with-jest-99424f.svg)](https://github.com/facebook/jest) - [![GitHub license](https://img.shields.io/github/license/Flux-Coordinator/flux-frontend.svg)](https://github.com/Flux-Coordinator/flux-frontend) - [![Sonar Cloud Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=flux-frontend&metric=reliability_rating)](https://sonarcloud.io/api/project_badges/measure?project=flux-frontend&metric=reliability_rating) - [![Sonar Cloud Coverage](https://sonarcloud.io/api/project_badges/measure?project=flux-frontend&metric=coverage)](https://sonarcloud.io/api/project_badges/measure?project=flux-frontend&metric=coverage) - [![Sonar Cloud Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=flux-frontend&metric=alert_status)](https://sonarcloud.io/api/project_badges/measure?project=flux-frontend&metric=alert_status) - [![Build Status](https://travis-ci.org/Flux-Coordinator/flux-frontend.svg?branch=master)](https://travis-ci.org/Flux-Coordinator/flux-frontend) - [![Code Style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) - [![Dependencies](https://david-dm.org/Flux-Coordinator/flux-frontend.svg)](https://david-dm.org/Flux-Coordinator/flux-frontend) - [![DevDependencies](https://david-dm.org/Flux-Coordinator/flux-frontend/dev-status.svg)](https://david-dm.org/Flux-Coordinator/flux-frontend?type=dev) - [![peerDependency Status](https://david-dm.org/Flux-Coordinator/repo/peer-status.svg)](https://david-dm.org/Flux-Coordinator/flux-frontend?type=peer) - + +[![Tested with Jest](https://img.shields.io/badge/tested_with-jest-99424f.svg)](https://github.com/facebook/jest) +[![GitHub license](https://img.shields.io/github/license/Flux-Coordinator/flux-frontend.svg)](https://github.com/Flux-Coordinator/flux-frontend) +[![Sonar Cloud Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=flux-frontend&metric=reliability_rating)](https://sonarcloud.io/api/project_badges/measure?project=flux-frontend&metric=reliability_rating) +[![Sonar Cloud Coverage](https://sonarcloud.io/api/project_badges/measure?project=flux-frontend&metric=coverage)](https://sonarcloud.io/api/project_badges/measure?project=flux-frontend&metric=coverage) +[![Sonar Cloud Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=flux-frontend&metric=alert_status)](https://sonarcloud.io/api/project_badges/measure?project=flux-frontend&metric=alert_status) +[![Build Status](https://travis-ci.org/Flux-Coordinator/flux-frontend.svg?branch=master)](https://travis-ci.org/Flux-Coordinator/flux-frontend) +[![Code Style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) +[![Dependencies](https://david-dm.org/Flux-Coordinator/flux-frontend.svg)](https://david-dm.org/Flux-Coordinator/flux-frontend) +[![DevDependencies](https://david-dm.org/Flux-Coordinator/flux-frontend/dev-status.svg)](https://david-dm.org/Flux-Coordinator/flux-frontend?type=dev) +[![peerDependency Status](https://david-dm.org/Flux-Coordinator/repo/peer-status.svg)](https://david-dm.org/Flux-Coordinator/flux-frontend?type=peer) +
-## Ordnerstruktur +## How to run this application in development mode + +Follow the guide below to run this application in development mode. +**Prerequisites:** [NodeJS 8](https://nodejs.org/en/download/) and [Yarn](https://yarnpkg.com/en/docs/install) (recommended) or NPM. + +1. Download the repository +2. Install the dependencies using `yarn` or `npm install` +3. Run the application using the `yarn start` or the `npm run start` command. + +The URI for the connection to the [flux-server](https://github.com/Flux-Coordinator/flux-server) instance needs to be set either as an environment variable named `REACT_APP_SERVICE_URI` or using a [_.env_](https://github.com/motdotla/dotenv) file, in which you have the following content: + +``` +REACT_APP_SERVICE_URI = +``` + +## Run in Production Mode + +To run this application in production mode, you need to build it first, using the `yarn build` or `npm run build` command. After the command has run through, you will find the built application in the _/build_ folder. You can deploy that folder on your preferred static webserver or using [serve](https://github.com/zeit/serve). + +To install serve globally, you can use the `yarn global add serve` or `npm install -g serve`. After the installation is complete, you can use the command `serve -s build`, where build the _/build_ folder. + +If you use a webserver other than serve, you will need to make some changes. Follow the guide [here](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#serving-apps-with-client-side-routing). -Die Ordnerstruktur im **./src** Ordner sieht wie folgt aus: +## More informations -| Ordner | Beschreibung | -| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| src/api | Die JS Dateien in diesem Ordner stellen die Anfragen an das backend API. | -| src/components | In diesem Ordner befinden sich die Presentational Components. Merke, dass die CSS und Tests ebenfalls in diesem Ordner zusammen mit ihren Components befinden. | -| src/containers | In diesem Ordner befinden sich die Container Components. Diese machen die API Calls und besitzen einen State. Merke, dass die CSS und Tests ebenfalls in diesem Ordner zusammen mit ihren Components befinden. | -| src/images | Hier befinden sich die Bilder, die in der Anwendung verwendet werden. | -| src/index.jsx | In dieser Datei wird die App initialisiert. | -| src/utils | Alles, was sonst nicht eingeordnet werden kann und keinen eigenen Ordner verdient. | +For more information about running and deploying the application, you can consult the CRA documentation [here](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md). diff --git a/flow-typed/npm/@flux-coordinator/heatmapjs_vx.x.x.js b/flow-typed/npm/@flux-coordinator/heatmapjs_vx.x.x.js new file mode 100644 index 0000000..274ddeb --- /dev/null +++ b/flow-typed/npm/@flux-coordinator/heatmapjs_vx.x.x.js @@ -0,0 +1,104 @@ +// flow-typed signature: 1becce44f344e7ddc91c138bd08004b8 +// flow-typed version: <>/@flux-coordinator/heatmapjs_v^2.1.4/flow_v0.73.0 + +/** + * This is an autogenerated libdef stub for: + * + * '@flux-coordinator/heatmapjs' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module "@flux-coordinator/heatmapjs" { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module "@flux-coordinator/heatmapjs/build/heatmap" { + declare module.exports: any; +} + +declare module "@flux-coordinator/heatmapjs/build/heatmap.min" { + declare module.exports: any; +} + +declare module "@flux-coordinator/heatmapjs/docs/assets/js/prism" { + declare module.exports: any; +} + +declare module "@flux-coordinator/heatmapjs/plugins/angular-heatmap/angular-heatmap" { + declare module.exports: any; +} + +declare module "@flux-coordinator/heatmapjs/plugins/boilerplate" { + declare module.exports: any; +} + +declare module "@flux-coordinator/heatmapjs/plugins/gmaps-heatmap/gmaps-heatmap" { + declare module.exports: any; +} + +declare module "@flux-coordinator/heatmapjs/plugins/leaflet-heatmap/leaflet-heatmap" { + declare module.exports: any; +} + +declare module "@flux-coordinator/heatmapjs/plugins/segment-heatmap" { + declare module.exports: any; +} + +declare module "@flux-coordinator/heatmapjs/plugins/svg-area-heatmap" { + declare module.exports: any; +} + +// Filename aliases +declare module "@flux-coordinator/heatmapjs/build/heatmap.js" { + declare module.exports: $Exports<"@flux-coordinator/heatmapjs/build/heatmap">; +} +declare module "@flux-coordinator/heatmapjs/build/heatmap.min.js" { + declare module.exports: $Exports< + "@flux-coordinator/heatmapjs/build/heatmap.min" + >; +} +declare module "@flux-coordinator/heatmapjs/docs/assets/js/prism.js" { + declare module.exports: $Exports< + "@flux-coordinator/heatmapjs/docs/assets/js/prism" + >; +} +declare module "@flux-coordinator/heatmapjs/plugins/angular-heatmap/angular-heatmap.js" { + declare module.exports: $Exports< + "@flux-coordinator/heatmapjs/plugins/angular-heatmap/angular-heatmap" + >; +} +declare module "@flux-coordinator/heatmapjs/plugins/boilerplate.js" { + declare module.exports: $Exports< + "@flux-coordinator/heatmapjs/plugins/boilerplate" + >; +} +declare module "@flux-coordinator/heatmapjs/plugins/gmaps-heatmap/gmaps-heatmap.js" { + declare module.exports: $Exports< + "@flux-coordinator/heatmapjs/plugins/gmaps-heatmap/gmaps-heatmap" + >; +} +declare module "@flux-coordinator/heatmapjs/plugins/leaflet-heatmap/leaflet-heatmap.js" { + declare module.exports: $Exports< + "@flux-coordinator/heatmapjs/plugins/leaflet-heatmap/leaflet-heatmap" + >; +} +declare module "@flux-coordinator/heatmapjs/plugins/segment-heatmap.js" { + declare module.exports: $Exports< + "@flux-coordinator/heatmapjs/plugins/segment-heatmap" + >; +} +declare module "@flux-coordinator/heatmapjs/plugins/svg-area-heatmap.js" { + declare module.exports: $Exports< + "@flux-coordinator/heatmapjs/plugins/svg-area-heatmap" + >; +} diff --git a/flow-typed/npm/@storybook/addon-actions_v3.x.x.js b/flow-typed/npm/@storybook/addon-actions_v3.x.x.js index ba7de4c..19268e4 100644 --- a/flow-typed/npm/@storybook/addon-actions_v3.x.x.js +++ b/flow-typed/npm/@storybook/addon-actions_v3.x.x.js @@ -1,8 +1,8 @@ -// flow-typed signature: 9f7284fc113607b916f1c64b0640c2a2 -// flow-typed version: 1709d3212d/@storybook/addon-actions_v3.x.x/flow_>=v0.25.x +// flow-typed signature: 64850c161373321ab9eabcceb1268d56 +// flow-typed version: 5edd39ab2e/@storybook/addon-actions_v3.x.x/flow_>=v0.25.x declare module "@storybook/addon-actions" { - declare type Action = (name: string) => Function; + declare type Action = (name: string) => (...args: Array) => void; declare type DecorateFn = (args: Array) => Array; declare module.exports: { diff --git a/flow-typed/npm/babel-core_vx.x.x.js b/flow-typed/npm/babel-core_vx.x.x.js index f25648a..24e057f 100644 --- a/flow-typed/npm/babel-core_vx.x.x.js +++ b/flow-typed/npm/babel-core_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 640dcf7cdffdff8dddcaaf78dadb5f3c -// flow-typed version: <>/babel-core_v^6.26.0/flow_v0.69.0 +// flow-typed signature: 39d0eadd11a69e2aeda7316112446dcf +// flow-typed version: <>/babel-core_v^6.26.0/flow_v0.73.0 /** * This is an autogenerated libdef stub for: @@ -78,6 +78,10 @@ declare module "babel-core/lib/transformation/file/logger" { declare module.exports: any; } +declare module "babel-core/lib/transformation/file/merge-map" { + declare module.exports: any; +} + declare module "babel-core/lib/transformation/file/metadata" { declare module.exports: any; } @@ -191,6 +195,11 @@ declare module "babel-core/lib/transformation/file/index.js" { declare module "babel-core/lib/transformation/file/logger.js" { declare module.exports: $Exports<"babel-core/lib/transformation/file/logger">; } +declare module "babel-core/lib/transformation/file/merge-map.js" { + declare module.exports: $Exports< + "babel-core/lib/transformation/file/merge-map" + >; +} declare module "babel-core/lib/transformation/file/metadata.js" { declare module.exports: $Exports< "babel-core/lib/transformation/file/metadata" diff --git a/flow-typed/npm/babel-eslint_vx.x.x.js b/flow-typed/npm/babel-eslint_vx.x.x.js index ad738d2..ff3d68d 100644 --- a/flow-typed/npm/babel-eslint_vx.x.x.js +++ b/flow-typed/npm/babel-eslint_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 7d8a567071271aca71f1d7c450898abf -// flow-typed version: <>/babel-eslint_v^8.2.2/flow_v0.69.0 +// flow-typed signature: 314ce81bedc5d07c55803f538814840d +// flow-typed version: <>/babel-eslint_v^8.2.2/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/babel-jest_vx.x.x.js b/flow-typed/npm/babel-jest_vx.x.x.js index 0ec56e2..c3ffc5f 100644 --- a/flow-typed/npm/babel-jest_vx.x.x.js +++ b/flow-typed/npm/babel-jest_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 75b3bccd57b6eba723a724ffb80ca92a -// flow-typed version: <>/babel-jest_v^23.0.0-alpha.6r/flow_v0.69.0 +// flow-typed signature: ccf9085e5314b6f182a280470d108a9e +// flow-typed version: <>/babel-jest_v^23.0.0-alpha.6r/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/babel-preset-env_vx.x.x.js b/flow-typed/npm/babel-preset-env_vx.x.x.js index 7463d27..899f07f 100644 --- a/flow-typed/npm/babel-preset-env_vx.x.x.js +++ b/flow-typed/npm/babel-preset-env_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: bda3a77185ea3a353196e1409d969036 -// flow-typed version: <>/babel-preset-env_v^1.6.1/flow_v0.69.0 +// flow-typed signature: 018fca8d3628a5c28a0a374ac04f9e47 +// flow-typed version: <>/babel-preset-env_v^1.6.1/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/babel-preset-react_vx.x.x.js b/flow-typed/npm/babel-preset-react_vx.x.x.js index 19a5301..322cf33 100644 --- a/flow-typed/npm/babel-preset-react_vx.x.x.js +++ b/flow-typed/npm/babel-preset-react_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 46ec1259939954a65717a38374f317fb -// flow-typed version: <>/babel-preset-react_v^6.24.1/flow_v0.69.0 +// flow-typed signature: c4e07d3388f058d6c12cb0237ef117a8 +// flow-typed version: <>/babel-preset-react_v^6.24.1/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/concurrently_vx.x.x.js b/flow-typed/npm/concurrently_vx.x.x.js index 4a1359b..207f037 100644 --- a/flow-typed/npm/concurrently_vx.x.x.js +++ b/flow-typed/npm/concurrently_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: abc8bd6e18ea696dacd822c5811ecf8c -// flow-typed version: <>/concurrently_v^3.5.1/flow_v0.69.0 +// flow-typed signature: 013874c5df49939f15bf4b73d996e0c1 +// flow-typed version: <>/concurrently_v^3.5.1/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/cross-env_vx.x.x.js b/flow-typed/npm/cross-env_vx.x.x.js index f5123fd..ba63571 100644 --- a/flow-typed/npm/cross-env_vx.x.x.js +++ b/flow-typed/npm/cross-env_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: d3eaccdd0d0a86addedd10d3aec2d14c -// flow-typed version: <>/cross-env_v^5.1.4/flow_v0.69.0 +// flow-typed signature: b12f88213252516ab4f4dc8caace85e4 +// flow-typed version: <>/cross-env_v^5.1.4/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/enzyme-adapter-react-16_vx.x.x.js b/flow-typed/npm/enzyme-adapter-react-16_vx.x.x.js index 3e7b8a9..1c31385 100644 --- a/flow-typed/npm/enzyme-adapter-react-16_vx.x.x.js +++ b/flow-typed/npm/enzyme-adapter-react-16_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: b55edbf3961daef0addd5d5576d8a0d3 -// flow-typed version: <>/enzyme-adapter-react-16_v^1.1.1/flow_v0.69.0 +// flow-typed signature: 9f211a330abbd236459a50a3437f2855 +// flow-typed version: <>/enzyme-adapter-react-16_v^1.1.1/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/eslint-config-airbnb_vx.x.x.js b/flow-typed/npm/eslint-config-airbnb_vx.x.x.js index f209f57..7620407 100644 --- a/flow-typed/npm/eslint-config-airbnb_vx.x.x.js +++ b/flow-typed/npm/eslint-config-airbnb_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 2233f4da2d8d37989c5fae04ca0d9a87 -// flow-typed version: <>/eslint-config-airbnb_v16.1.0/flow_v0.69.0 +// flow-typed signature: ed12bd8ebd377ea0e57ab7cc9828c26b +// flow-typed version: <>/eslint-config-airbnb_v16.1.0/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/eslint-config-prettier_vx.x.x.js b/flow-typed/npm/eslint-config-prettier_vx.x.x.js index 11c7d70..51a4c0f 100644 --- a/flow-typed/npm/eslint-config-prettier_vx.x.x.js +++ b/flow-typed/npm/eslint-config-prettier_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 3711665c8cab1c09358ae8b972d2e47d -// flow-typed version: <>/eslint-config-prettier_v^2.9.0/flow_v0.69.0 +// flow-typed signature: 294eff19ab5f824d8a5b58021cd90094 +// flow-typed version: <>/eslint-config-prettier_v^2.9.0/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/eslint-config-react-app_vx.x.x.js b/flow-typed/npm/eslint-config-react-app_vx.x.x.js index 370a6e6..e954d9c 100644 --- a/flow-typed/npm/eslint-config-react-app_vx.x.x.js +++ b/flow-typed/npm/eslint-config-react-app_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 9eb7773e0fb010dff004f3117373fa09 -// flow-typed version: <>/eslint-config-react-app_v^2.1.0/flow_v0.69.0 +// flow-typed signature: 3a06cbbc69970b3c84d0c0f09ead050d +// flow-typed version: <>/eslint-config-react-app_v^2.1.0/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js b/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js index 5aeb53a..c91b705 100644 --- a/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js +++ b/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: b6cee62d06ad86db0962aa2f6179c48f -// flow-typed version: <>/eslint-plugin-flowtype_v^2.46.1/flow_v0.69.0 +// flow-typed signature: 3dc9847e70a6346d1624b1016f4fffb9 +// flow-typed version: <>/eslint-plugin-flowtype_v^2.46.1/flow_v0.73.0 /** * This is an autogenerated libdef stub for: @@ -30,6 +30,26 @@ declare module "eslint-plugin-flowtype/dist/index" { declare module.exports: any; } +declare module "eslint-plugin-flowtype/dist/rules/arrayStyle/index" { + declare module.exports: any; +} + +declare module "eslint-plugin-flowtype/dist/rules/arrayStyle/isSimpleType" { + declare module.exports: any; +} + +declare module "eslint-plugin-flowtype/dist/rules/arrayStyle/needWrap" { + declare module.exports: any; +} + +declare module "eslint-plugin-flowtype/dist/rules/arrayStyleComplexType" { + declare module.exports: any; +} + +declare module "eslint-plugin-flowtype/dist/rules/arrayStyleSimpleType" { + declare module.exports: any; +} + declare module "eslint-plugin-flowtype/dist/rules/booleanStyle" { declare module.exports: any; } @@ -235,6 +255,31 @@ declare module "eslint-plugin-flowtype/bin/readmeAssertions.js" { declare module "eslint-plugin-flowtype/dist/index.js" { declare module.exports: $Exports<"eslint-plugin-flowtype/dist/index">; } +declare module "eslint-plugin-flowtype/dist/rules/arrayStyle/index.js" { + declare module.exports: $Exports< + "eslint-plugin-flowtype/dist/rules/arrayStyle/index" + >; +} +declare module "eslint-plugin-flowtype/dist/rules/arrayStyle/isSimpleType.js" { + declare module.exports: $Exports< + "eslint-plugin-flowtype/dist/rules/arrayStyle/isSimpleType" + >; +} +declare module "eslint-plugin-flowtype/dist/rules/arrayStyle/needWrap.js" { + declare module.exports: $Exports< + "eslint-plugin-flowtype/dist/rules/arrayStyle/needWrap" + >; +} +declare module "eslint-plugin-flowtype/dist/rules/arrayStyleComplexType.js" { + declare module.exports: $Exports< + "eslint-plugin-flowtype/dist/rules/arrayStyleComplexType" + >; +} +declare module "eslint-plugin-flowtype/dist/rules/arrayStyleSimpleType.js" { + declare module.exports: $Exports< + "eslint-plugin-flowtype/dist/rules/arrayStyleSimpleType" + >; +} declare module "eslint-plugin-flowtype/dist/rules/booleanStyle.js" { declare module.exports: $Exports< "eslint-plugin-flowtype/dist/rules/booleanStyle" diff --git a/flow-typed/npm/eslint-plugin-import_vx.x.x.js b/flow-typed/npm/eslint-plugin-import_vx.x.x.js index 38f9cd4..d1aa337 100644 --- a/flow-typed/npm/eslint-plugin-import_vx.x.x.js +++ b/flow-typed/npm/eslint-plugin-import_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 48692da9159353db3136fe2fa07f4be0 -// flow-typed version: <>/eslint-plugin-import_v^2.11.0/flow_v0.69.0 +// flow-typed signature: 1e5a45c847bb6991ca3e5a7862efeb0a +// flow-typed version: <>/eslint-plugin-import_v^2.11.0/flow_v0.73.0 /** * This is an autogenerated libdef stub for: @@ -78,6 +78,10 @@ declare module "eslint-plugin-import/lib/rules/default" { declare module.exports: any; } +declare module "eslint-plugin-import/lib/rules/dynamic-import-chunkname" { + declare module.exports: any; +} + declare module "eslint-plugin-import/lib/rules/export" { declare module.exports: any; } @@ -273,6 +277,11 @@ declare module "eslint-plugin-import/lib/index.js" { declare module "eslint-plugin-import/lib/rules/default.js" { declare module.exports: $Exports<"eslint-plugin-import/lib/rules/default">; } +declare module "eslint-plugin-import/lib/rules/dynamic-import-chunkname.js" { + declare module.exports: $Exports< + "eslint-plugin-import/lib/rules/dynamic-import-chunkname" + >; +} declare module "eslint-plugin-import/lib/rules/export.js" { declare module.exports: $Exports<"eslint-plugin-import/lib/rules/export">; } diff --git a/flow-typed/npm/eslint-plugin-jsx-a11y_vx.x.x.js b/flow-typed/npm/eslint-plugin-jsx-a11y_vx.x.x.js index 5ba389c..68dbac5 100644 --- a/flow-typed/npm/eslint-plugin-jsx-a11y_vx.x.x.js +++ b/flow-typed/npm/eslint-plugin-jsx-a11y_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: d5452123075dd7edaed9dd600b1132a2 -// flow-typed version: <>/eslint-plugin-jsx-a11y_v6.0.3/flow_v0.69.0 +// flow-typed signature: a1235f29a108b45d1956fad4747f2233 +// flow-typed version: <>/eslint-plugin-jsx-a11y_v6.0.3/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/eslint-plugin-prettier_vx.x.x.js b/flow-typed/npm/eslint-plugin-prettier_vx.x.x.js index 50f2fdc..643d0f5 100644 --- a/flow-typed/npm/eslint-plugin-prettier_vx.x.x.js +++ b/flow-typed/npm/eslint-plugin-prettier_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 5ee51b1f6338b1d0ae6899264d7cfe9f -// flow-typed version: <>/eslint-plugin-prettier_v2.6.0/flow_v0.69.0 +// flow-typed signature: a72600d10f156dd5fd8294bf79098e88 +// flow-typed version: <>/eslint-plugin-prettier_v2.6.0/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/eslint-plugin-react_vx.x.x.js b/flow-typed/npm/eslint-plugin-react_vx.x.x.js index 1d4810d..4e951bc 100644 --- a/flow-typed/npm/eslint-plugin-react_vx.x.x.js +++ b/flow-typed/npm/eslint-plugin-react_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: d69461ea48e4f34c339a74ab9fb42d54 -// flow-typed version: <>/eslint-plugin-react_v7.7.0/flow_v0.69.0 +// flow-typed signature: feaafadb04cdadc428484b785aaad9e3 +// flow-typed version: <>/eslint-plugin-react_v^7.7.0/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/eslint_vx.x.x.js b/flow-typed/npm/eslint_vx.x.x.js index 8b39ab3..0f0c9d2 100644 --- a/flow-typed/npm/eslint_vx.x.x.js +++ b/flow-typed/npm/eslint_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: f844f7003cd5706d223638d7977f6285 -// flow-typed version: <>/eslint_v^4.19.1/flow_v0.69.0 +// flow-typed signature: e9ff2dcf2648c59934cba57198a10b2c +// flow-typed version: <>/eslint_v^4.19.1/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/flow-typed_vx.x.x.js b/flow-typed/npm/flow-typed_vx.x.x.js index 0061f00..1f46a75 100644 --- a/flow-typed/npm/flow-typed_vx.x.x.js +++ b/flow-typed/npm/flow-typed_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 78a6d22874f3ad904d1ac98d2b3a7df3 -// flow-typed version: <>/flow-typed_v^2.4.0/flow_v0.69.0 +// flow-typed signature: df29d6c8e665c55378db33249eeb9832 +// flow-typed version: <>/flow-typed_v^2.4.0/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/grommet-addons_vx.x.x.js b/flow-typed/npm/grommet-addons_vx.x.x.js index af9918e..ec3f060 100644 --- a/flow-typed/npm/grommet-addons_vx.x.x.js +++ b/flow-typed/npm/grommet-addons_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 2bd4a3eb4a6059c8f26f8b85fd8c3a31 -// flow-typed version: <>/grommet-addons_v^0.6.0/flow_v0.69.0 +// flow-typed signature: 5aa34d5114421715dc0e9a650b75a4e4 +// flow-typed version: <>/grommet-addons_v^0.6.0/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/heatmap.js_vx.x.x.js b/flow-typed/npm/heatmap.js_vx.x.x.js new file mode 100644 index 0000000..4fcbfb4 --- /dev/null +++ b/flow-typed/npm/heatmap.js_vx.x.x.js @@ -0,0 +1,184 @@ +// flow-typed signature: 660ab0599aed52451ee42c36522546e0 +// flow-typed version: <>/heatmap.js_vgit+https://github.com/Flux-Coordinator/heatmap.js.git/flow_v0.73.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'heatmap.js' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module "heatmap.js" { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module "heatmap.js/build/heatmap" { + declare module.exports: any; +} + +declare module "heatmap.js/build/heatmap.min" { + declare module.exports: any; +} + +declare module "heatmap.js/docs/assets/js/prism" { + declare module.exports: any; +} + +declare module "heatmap.js/Gruntfile" { + declare module.exports: any; +} + +declare module "heatmap.js/plugins/angular-heatmap/angular-heatmap" { + declare module.exports: any; +} + +declare module "heatmap.js/plugins/boilerplate" { + declare module.exports: any; +} + +declare module "heatmap.js/plugins/gmaps-heatmap/gmaps-heatmap" { + declare module.exports: any; +} + +declare module "heatmap.js/plugins/leaflet-heatmap/leaflet-heatmap" { + declare module.exports: any; +} + +declare module "heatmap.js/plugins/segment-heatmap" { + declare module.exports: any; +} + +declare module "heatmap.js/plugins/svg-area-heatmap" { + declare module.exports: any; +} + +declare module "heatmap.js/src/config" { + declare module.exports: any; +} + +declare module "heatmap.js/src/core" { + declare module.exports: any; +} + +declare module "heatmap.js/src/data" { + declare module.exports: any; +} + +declare module "heatmap.js/src/renderer" { + declare module.exports: any; +} + +declare module "heatmap.js/src/renderer/canvas-webgl" { + declare module.exports: any; +} + +declare module "heatmap.js/src/renderer/canvas2d" { + declare module.exports: any; +} + +declare module "heatmap.js/src/renderer/vml" { + declare module.exports: any; +} + +declare module "heatmap.js/src/util" { + declare module.exports: any; +} + +declare module "heatmap.js/tests/visual/plugin-modules/gmaps-heatmap" { + declare module.exports: any; +} + +declare module "heatmap.js/tests/visual/plugin-modules/gmaps-node" { + declare module.exports: any; +} + +declare module "heatmap.js/tests/visual/plugin-modules/gmaps-requirejs-main" { + declare module.exports: any; +} + +// Filename aliases +declare module "heatmap.js/build/heatmap.js" { + declare module.exports: $Exports<"heatmap.js/build/heatmap">; +} +declare module "heatmap.js/build/heatmap.min.js" { + declare module.exports: $Exports<"heatmap.js/build/heatmap.min">; +} +declare module "heatmap.js/docs/assets/js/prism.js" { + declare module.exports: $Exports<"heatmap.js/docs/assets/js/prism">; +} +declare module "heatmap.js/Gruntfile.js" { + declare module.exports: $Exports<"heatmap.js/Gruntfile">; +} +declare module "heatmap.js/plugins/angular-heatmap/angular-heatmap.js" { + declare module.exports: $Exports< + "heatmap.js/plugins/angular-heatmap/angular-heatmap" + >; +} +declare module "heatmap.js/plugins/boilerplate.js" { + declare module.exports: $Exports<"heatmap.js/plugins/boilerplate">; +} +declare module "heatmap.js/plugins/gmaps-heatmap/gmaps-heatmap.js" { + declare module.exports: $Exports< + "heatmap.js/plugins/gmaps-heatmap/gmaps-heatmap" + >; +} +declare module "heatmap.js/plugins/leaflet-heatmap/leaflet-heatmap.js" { + declare module.exports: $Exports< + "heatmap.js/plugins/leaflet-heatmap/leaflet-heatmap" + >; +} +declare module "heatmap.js/plugins/segment-heatmap.js" { + declare module.exports: $Exports<"heatmap.js/plugins/segment-heatmap">; +} +declare module "heatmap.js/plugins/svg-area-heatmap.js" { + declare module.exports: $Exports<"heatmap.js/plugins/svg-area-heatmap">; +} +declare module "heatmap.js/src/config.js" { + declare module.exports: $Exports<"heatmap.js/src/config">; +} +declare module "heatmap.js/src/core.js" { + declare module.exports: $Exports<"heatmap.js/src/core">; +} +declare module "heatmap.js/src/data.js" { + declare module.exports: $Exports<"heatmap.js/src/data">; +} +declare module "heatmap.js/src/renderer.js" { + declare module.exports: $Exports<"heatmap.js/src/renderer">; +} +declare module "heatmap.js/src/renderer/canvas-webgl.js" { + declare module.exports: $Exports<"heatmap.js/src/renderer/canvas-webgl">; +} +declare module "heatmap.js/src/renderer/canvas2d.js" { + declare module.exports: $Exports<"heatmap.js/src/renderer/canvas2d">; +} +declare module "heatmap.js/src/renderer/vml.js" { + declare module.exports: $Exports<"heatmap.js/src/renderer/vml">; +} +declare module "heatmap.js/src/util.js" { + declare module.exports: $Exports<"heatmap.js/src/util">; +} +declare module "heatmap.js/tests/visual/plugin-modules/gmaps-heatmap.js" { + declare module.exports: $Exports< + "heatmap.js/tests/visual/plugin-modules/gmaps-heatmap" + >; +} +declare module "heatmap.js/tests/visual/plugin-modules/gmaps-node.js" { + declare module.exports: $Exports< + "heatmap.js/tests/visual/plugin-modules/gmaps-node" + >; +} +declare module "heatmap.js/tests/visual/plugin-modules/gmaps-requirejs-main.js" { + declare module.exports: $Exports< + "heatmap.js/tests/visual/plugin-modules/gmaps-requirejs-main" + >; +} diff --git a/flow-typed/npm/heatmapjs_vx.x.x.js b/flow-typed/npm/heatmapjs_vx.x.x.js new file mode 100644 index 0000000..5dc0ef3 --- /dev/null +++ b/flow-typed/npm/heatmapjs_vx.x.x.js @@ -0,0 +1,184 @@ +// flow-typed signature: b71ab030d88e6418322b70571920b62d +// flow-typed version: <>/heatmapjs_vgit+https://github.com/Flux-Coordinator/heatmap.js.git/flow_v0.72.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'heatmapjs' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module "heatmapjs" { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module "heatmapjs/build/heatmap" { + declare module.exports: any; +} + +declare module "heatmapjs/build/heatmap.min" { + declare module.exports: any; +} + +declare module "heatmapjs/docs/assets/js/prism" { + declare module.exports: any; +} + +declare module "heatmapjs/Gruntfile" { + declare module.exports: any; +} + +declare module "heatmapjs/plugins/angular-heatmap/angular-heatmap" { + declare module.exports: any; +} + +declare module "heatmapjs/plugins/boilerplate" { + declare module.exports: any; +} + +declare module "heatmapjs/plugins/gmaps-heatmap/gmaps-heatmap" { + declare module.exports: any; +} + +declare module "heatmapjs/plugins/leaflet-heatmap/leaflet-heatmap" { + declare module.exports: any; +} + +declare module "heatmapjs/plugins/segment-heatmap" { + declare module.exports: any; +} + +declare module "heatmapjs/plugins/svg-area-heatmap" { + declare module.exports: any; +} + +declare module "heatmapjs/src/config" { + declare module.exports: any; +} + +declare module "heatmapjs/src/core" { + declare module.exports: any; +} + +declare module "heatmapjs/src/data" { + declare module.exports: any; +} + +declare module "heatmapjs/src/renderer" { + declare module.exports: any; +} + +declare module "heatmapjs/src/renderer/canvas-webgl" { + declare module.exports: any; +} + +declare module "heatmapjs/src/renderer/canvas2d" { + declare module.exports: any; +} + +declare module "heatmapjs/src/renderer/vml" { + declare module.exports: any; +} + +declare module "heatmapjs/src/util" { + declare module.exports: any; +} + +declare module "heatmapjs/tests/visual/plugin-modules/gmaps-heatmap" { + declare module.exports: any; +} + +declare module "heatmapjs/tests/visual/plugin-modules/gmaps-node" { + declare module.exports: any; +} + +declare module "heatmapjs/tests/visual/plugin-modules/gmaps-requirejs-main" { + declare module.exports: any; +} + +// Filename aliases +declare module "heatmapjs/build/heatmap.js" { + declare module.exports: $Exports<"heatmapjs/build/heatmap">; +} +declare module "heatmapjs/build/heatmap.min.js" { + declare module.exports: $Exports<"heatmapjs/build/heatmap.min">; +} +declare module "heatmapjs/docs/assets/js/prism.js" { + declare module.exports: $Exports<"heatmapjs/docs/assets/js/prism">; +} +declare module "heatmapjs/Gruntfile.js" { + declare module.exports: $Exports<"heatmapjs/Gruntfile">; +} +declare module "heatmapjs/plugins/angular-heatmap/angular-heatmap.js" { + declare module.exports: $Exports< + "heatmapjs/plugins/angular-heatmap/angular-heatmap" + >; +} +declare module "heatmapjs/plugins/boilerplate.js" { + declare module.exports: $Exports<"heatmapjs/plugins/boilerplate">; +} +declare module "heatmapjs/plugins/gmaps-heatmap/gmaps-heatmap.js" { + declare module.exports: $Exports< + "heatmapjs/plugins/gmaps-heatmap/gmaps-heatmap" + >; +} +declare module "heatmapjs/plugins/leaflet-heatmap/leaflet-heatmap.js" { + declare module.exports: $Exports< + "heatmapjs/plugins/leaflet-heatmap/leaflet-heatmap" + >; +} +declare module "heatmapjs/plugins/segment-heatmap.js" { + declare module.exports: $Exports<"heatmapjs/plugins/segment-heatmap">; +} +declare module "heatmapjs/plugins/svg-area-heatmap.js" { + declare module.exports: $Exports<"heatmapjs/plugins/svg-area-heatmap">; +} +declare module "heatmapjs/src/config.js" { + declare module.exports: $Exports<"heatmapjs/src/config">; +} +declare module "heatmapjs/src/core.js" { + declare module.exports: $Exports<"heatmapjs/src/core">; +} +declare module "heatmapjs/src/data.js" { + declare module.exports: $Exports<"heatmapjs/src/data">; +} +declare module "heatmapjs/src/renderer.js" { + declare module.exports: $Exports<"heatmapjs/src/renderer">; +} +declare module "heatmapjs/src/renderer/canvas-webgl.js" { + declare module.exports: $Exports<"heatmapjs/src/renderer/canvas-webgl">; +} +declare module "heatmapjs/src/renderer/canvas2d.js" { + declare module.exports: $Exports<"heatmapjs/src/renderer/canvas2d">; +} +declare module "heatmapjs/src/renderer/vml.js" { + declare module.exports: $Exports<"heatmapjs/src/renderer/vml">; +} +declare module "heatmapjs/src/util.js" { + declare module.exports: $Exports<"heatmapjs/src/util">; +} +declare module "heatmapjs/tests/visual/plugin-modules/gmaps-heatmap.js" { + declare module.exports: $Exports< + "heatmapjs/tests/visual/plugin-modules/gmaps-heatmap" + >; +} +declare module "heatmapjs/tests/visual/plugin-modules/gmaps-node.js" { + declare module.exports: $Exports< + "heatmapjs/tests/visual/plugin-modules/gmaps-node" + >; +} +declare module "heatmapjs/tests/visual/plugin-modules/gmaps-requirejs-main.js" { + declare module.exports: $Exports< + "heatmapjs/tests/visual/plugin-modules/gmaps-requirejs-main" + >; +} diff --git a/flow-typed/npm/husky_vx.x.x.js b/flow-typed/npm/husky_vx.x.x.js index 30c99b6..bb664c3 100644 --- a/flow-typed/npm/husky_vx.x.x.js +++ b/flow-typed/npm/husky_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 7c33f627df4dbbf2be926d413ab2101a -// flow-typed version: <>/husky_v^0.15.0-rc.10/flow_v0.69.0 +// flow-typed signature: bed9be7f88367f1aa887d2034ec7d7b3 +// flow-typed version: <>/husky_v^0.15.0-rc.10/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/install-peerdeps_vx.x.x.js b/flow-typed/npm/install-peerdeps_vx.x.x.js index 0d2a205..5b1a4fe 100644 --- a/flow-typed/npm/install-peerdeps_vx.x.x.js +++ b/flow-typed/npm/install-peerdeps_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: ee4094faaad50e716108d43ef8270a6d -// flow-typed version: <>/install-peerdeps_v^1.6.0/flow_v0.69.0 +// flow-typed signature: db10b440176330b58b03c795f399196a +// flow-typed version: <>/install-peerdeps_v^1.6.0/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/js-file-download_vx.x.x.js b/flow-typed/npm/js-file-download_vx.x.x.js new file mode 100644 index 0000000..d06149e --- /dev/null +++ b/flow-typed/npm/js-file-download_vx.x.x.js @@ -0,0 +1,32 @@ +// flow-typed signature: ccab8e8f4e4d63a286836263e5543e13 +// flow-typed version: <>/js-file-download_v^0.4.1/flow_v0.73.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'js-file-download' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module "js-file-download" { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module "js-file-download/file-download" { + declare module.exports: any; +} + +// Filename aliases +declare module "js-file-download/file-download.js" { + declare module.exports: $Exports<"js-file-download/file-download">; +} diff --git a/flow-typed/npm/node-sass-chokidar_vx.x.x.js b/flow-typed/npm/node-sass-chokidar_vx.x.x.js index 9c39a66..c0c9465 100644 --- a/flow-typed/npm/node-sass-chokidar_vx.x.x.js +++ b/flow-typed/npm/node-sass-chokidar_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 8582bdf0a8388cf09ba86a406cfaac38 -// flow-typed version: <>/node-sass-chokidar_v^1.2.0/flow_v0.69.0 +// flow-typed signature: 6c7fc39ed6ae458d649b0c0a8239dcaf +// flow-typed version: <>/node-sass-chokidar_v^1.2.0/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/npm-run-all_vx.x.x.js b/flow-typed/npm/npm-run-all_vx.x.x.js index 99bc3bd..390bad0 100644 --- a/flow-typed/npm/npm-run-all_vx.x.x.js +++ b/flow-typed/npm/npm-run-all_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 2ad7e47afb294d364fb2aa6600b9dd3a -// flow-typed version: <>/npm-run-all_v^4.1.2/flow_v0.69.0 +// flow-typed signature: c2b3b5d4aa9894ba8635f2438756e509 +// flow-typed version: <>/npm-run-all_v^4.1.2/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/prettier-eslint_vx.x.x.js b/flow-typed/npm/prettier-eslint_vx.x.x.js index f0b360f..cf5dd96 100644 --- a/flow-typed/npm/prettier-eslint_vx.x.x.js +++ b/flow-typed/npm/prettier-eslint_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 931d6789bccc37143afd85e8fd8a3923 -// flow-typed version: <>/prettier-eslint_v^8.8.1/flow_v0.69.0 +// flow-typed signature: 10a7f09f9d7e13287801c7d0d4d0ccb2 +// flow-typed version: <>/prettier-eslint_v^8.8.1/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/pretty-quick_vx.x.x.js b/flow-typed/npm/pretty-quick_vx.x.x.js index 64dba43..26c2b93 100644 --- a/flow-typed/npm/pretty-quick_vx.x.x.js +++ b/flow-typed/npm/pretty-quick_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: de78cf1cf4e130abf572b5706e12c25e -// flow-typed version: <>/pretty-quick_v^1.4.1/flow_v0.69.0 +// flow-typed signature: a6c6b18eb939dade29b2ac7054221a29 +// flow-typed version: <>/pretty-quick_v^1.4.1/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/react-dropzone_v4.x.x.js b/flow-typed/npm/react-dropzone_v4.x.x.js index ae08cce..b750a61 100644 --- a/flow-typed/npm/react-dropzone_v4.x.x.js +++ b/flow-typed/npm/react-dropzone_v4.x.x.js @@ -1,10 +1,10 @@ -// flow-typed signature: 0f438b01cd242c8c36dd2104174ed78c -// flow-typed version: 36aaaa262e/react-dropzone_v4.x.x/flow_>=v0.53.x +// flow-typed signature: 9ac31766c640244f765f8c181e0159b0 +// flow-typed version: 80022b0008/react-dropzone_v4.x.x/flow_>=v0.53.x declare module "react-dropzone" { declare type ChildrenProps = { draggedFiles: Array, - acceptedFile: Array, + acceptedFiles: Array, rejectedFiles: Array, isDragActive: boolean, isDragAccept: boolean, diff --git a/flow-typed/npm/react-resize-detector_vx.x.x.js b/flow-typed/npm/react-resize-detector_vx.x.x.js new file mode 100644 index 0000000..c801e6e --- /dev/null +++ b/flow-typed/npm/react-resize-detector_vx.x.x.js @@ -0,0 +1,41 @@ +// flow-typed signature: 44420fd968c7091ead2068e3d957c6b2 +// flow-typed version: <>/react-resize-detector_v^2.3.0/flow_v0.73.0 + +/** + * This is an autogenerated libdef stub for: + * + * 'react-resize-detector' + * + * Fill this stub out by replacing all the `any` types. + * + * Once filled out, we encourage you to share your work with the + * community by sending a pull request to: + * https://github.com/flowtype/flow-typed + */ + +declare module "react-resize-detector" { + declare module.exports: any; +} + +/** + * We include stubs for each file inside this npm package in case you need to + * require those files directly. Feel free to delete any files that aren't + * needed. + */ +declare module "react-resize-detector/lib/components/ResizeDetector" { + declare module.exports: any; +} + +declare module "react-resize-detector/lib/index" { + declare module.exports: any; +} + +// Filename aliases +declare module "react-resize-detector/lib/components/ResizeDetector.js" { + declare module.exports: $Exports< + "react-resize-detector/lib/components/ResizeDetector" + >; +} +declare module "react-resize-detector/lib/index.js" { + declare module.exports: $Exports<"react-resize-detector/lib/index">; +} diff --git a/flow-typed/npm/react-router-dom_v4.x.x.js b/flow-typed/npm/react-router-dom_v4.x.x.js index 12fd273..4c3a63b 100644 --- a/flow-typed/npm/react-router-dom_v4.x.x.js +++ b/flow-typed/npm/react-router-dom_v4.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 60904532a0b2eae42e097223d1999f8e -// flow-typed version: f821d89401/react-router-dom_v4.x.x/flow_>=v0.53.x +// flow-typed signature: e5a7aa81d9e40346b8b63c86c07c3005 +// flow-typed version: 83f1c5c51e/react-router-dom_v4.x.x/flow_>=v0.63.x declare module "react-router-dom" { declare export class BrowserRouter extends React$Component<{ @@ -90,12 +90,19 @@ declare module "react-router-dom" { staticContext?: StaticRouterContext |}; + declare type ContextRouterVoid = { + history: RouterHistory | void, + location: Location | void, + match: Match | void, + staticContext?: StaticRouterContext | void + }; + declare export type GetUserConfirmation = ( message: string, callback: (confirmed: boolean) => void ) => void; - declare type StaticRouterContext = { + declare export type StaticRouterContext = { url?: string }; @@ -142,9 +149,11 @@ declare module "react-router-dom" { children?: React$Node }> {} - declare export function withRouter

( - Component: React$ComponentType<{| ...ContextRouter, ...P |}> - ): React$ComponentType

; + declare export function withRouter>( + WrappedComponent: Component + ): React$ComponentType< + $Diff, ContextRouterVoid> + >; declare type MatchPathOptions = { path?: string, diff --git a/flow-typed/npm/react-scripts_vx.x.x.js b/flow-typed/npm/react-scripts_vx.x.x.js index b737052..5984641 100644 --- a/flow-typed/npm/react-scripts_vx.x.x.js +++ b/flow-typed/npm/react-scripts_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 446244b07375c5b8f16ce8e466486414 -// flow-typed version: <>/react-scripts_v^1.1.4/flow_v0.69.0 +// flow-typed signature: b5e436bc08563077ca4061d50057e9be +// flow-typed version: <>/react-scripts_v^1.1.4/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/flow-typed/npm/typeface-roboto_vx.x.x.js b/flow-typed/npm/typeface-roboto_vx.x.x.js index 1218e8c..e21722e 100644 --- a/flow-typed/npm/typeface-roboto_vx.x.x.js +++ b/flow-typed/npm/typeface-roboto_vx.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: eaa6716ebb395eed79efe33fb55d6f29 -// flow-typed version: <>/typeface-roboto_v^0.0.54/flow_v0.69.0 +// flow-typed signature: c3afc17f17a52defd38c0005914bde64 +// flow-typed version: <>/typeface-roboto_v^0.0.54/flow_v0.73.0 /** * This is an autogenerated libdef stub for: diff --git a/package.json b/package.json index 24e3249..f625aae 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,16 @@ { "name": "flux-frontend", - "version": "0.1.0", + "version": "1.0.0", "private": true, "dependencies": { + "@flux-coordinator/heatmapjs": "^2.1.4", "axios": "^0.18.0", "concurrently": "^3.5.1", "cross-env": "^5.1.4", "grommet": "^1.10.1", "grommet-addons": "^0.6.0", - "heatmapjs": "git+https://github.com/JonathanWi/heatmap.js.git", "js-file-download": "^0.4.1", + "moment": "^2.22.2", "node-sass-chokidar": "^1.2.0", "npm-run-all": "^4.1.2", "react": "^16.3.1", @@ -22,17 +23,14 @@ "typeface-roboto": "^0.0.54" }, "scripts": { - "build-css": - "node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/", - "watch-css": - "npm run build-css && node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/ --watch --recursive", + "build-css": "node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/", + "watch-css": "npm run build-css && node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/ --watch --recursive", "start-react": "cross-env NODE_PATH=src react-scripts start", "start": "npm-run-all -p watch-css start-react", "build-react": "cross-env NODE_PATH=src react-scripts build", "build": "npm-run-all build-css build-react", "test": "cross-env NODE_PATH=src react-scripts test --env=jsdom", - "test-ci": - "cross-env NODE_PATH=src react-scripts test --env=jsdom --coverage", + "test-ci": "cross-env NODE_PATH=src react-scripts test --env=jsdom --coverage", "eject": "cross-env NODE_PATH=src react-scripts eject", "storybook": "start-storybook -p 3001 -c .storybook" }, @@ -55,7 +53,7 @@ "eslint-plugin-jsx-a11y": "6.0.3", "eslint-plugin-prettier": "2.6.0", "eslint-plugin-react": "^7.7.0", - "flow-bin": "^0.72.0", + "flow-bin": "^0.73.0", "flow-typed": "^2.4.0", "husky": "^0.15.0-rc.10", "install-peerdeps": "^1.6.0", diff --git a/public/index.html b/public/index.html index 3a6f697..05fb22f 100644 --- a/public/index.html +++ b/public/index.html @@ -1,5 +1,5 @@ - + @@ -20,7 +20,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - Flux Coordinator WebApp + Flux Coordinator

-
- - {this.props.heading} - -
+ + {this.props.heading} + + {this.props.subheading} {this.props.children} - this.setState({ toast: undefined })} - />
); } diff --git a/src/components/dashboard/Dashboard.jsx b/src/components/dashboard/Dashboard.jsx index 9ab2f47..c064ab0 100644 --- a/src/components/dashboard/Dashboard.jsx +++ b/src/components/dashboard/Dashboard.jsx @@ -1,30 +1,191 @@ // @flow import * as React from "react"; import Status from "grommet/components/icons/Status"; +import Anchor from "grommet/components/Anchor"; import Header from "grommet/components/Header"; -import Box from "grommet/components/Box"; import Heading from "grommet/components/Heading"; +import Box from "grommet/components/Box"; +import Tiles from "grommet/components/Tiles"; +import Tile from "grommet/components/Tile"; +import Card from "grommet/components/Card"; + +import ContentBox from "./../contentBox/ContentBox"; +import Measurement from "./../../models/Measurement"; + +import type { ConnectionState, ServerState } from "./../../types/ServerState"; + +type Props = { + serverState: ServerState, + sensorConnectionState: ConnectionState, + activeMeasurement?: ?Measurement +}; + +type DefaultCardProps = { + label: string, + heading: string, + children: React.Node, + anchorPath?: string, + anchorLabel?: React.Node +}; + +function DefaultCard({ + label, + heading, + children, + anchorPath, + anchorLabel +}: DefaultCardProps) { + const grommetCardProps = { label, heading }; + let link; + if (anchorPath) { + link = ; + } + + return ( + + ); +} + +function ServerStatus({ serverState }: { serverState: ServerState }) { + let description: React.Node; + switch (serverState.connectionState) { + case "CONNECTED": + description = ( + + + Bereit + + URI: {serverState.uri} + + ); + break; + case "DISCONNECTED": + description = ( + + + Nicht verfügbar + + URI: {serverState.uri} + + ); + break; + default: + description = ( + + + Unbekannt + + URI: {serverState.uri} + + ); + break; + } + + return ( + + {description} + + ); +} + +function ActiveMeasurement({ + activeMeasurement +}: { + activeMeasurement?: ?Measurement +}) { + let description = Keine aktive Messung; + let link: string; -import ContentBox from "../contentBox/ContentBox"; + if (activeMeasurement) { + description = ( + {activeMeasurement.name} + ); + const { projectId, roomId, measurementId } = activeMeasurement; + if (projectId && roomId && measurementId) { + link = `/projects/${projectId}/rooms/${roomId}/measurements/${measurementId}`; + } + } + + return ( + + {description} + + ); +} + +function SensorStatus({ + sensorConnectionState +}: { + sensorConnectionState: ConnectionState +}) { + let description: React.Node; + switch (sensorConnectionState) { + case "CONNECTED": + description = ( + + Bereit + + ); + break; + case "DISCONNECTED": + description = ( + + Nicht verfügbar + + ); + break; + default: + description = ( + + Unbekannt + + ); + break; + } + + return ( + + {description} + + ); +} -export default function Dashboard() { +export default function Dashboard({ + serverState, + sensorConnectionState, + activeMeasurement +}: Props) { return (
Systemstatus
-
Platform: Cloud
-
- Status: Bereit -
-
- Sensoren: -
    -
  • Pozyx
  • -
  • Lux Meter
  • -
-
+ + + + + + + + + + +
); diff --git a/src/components/dashboard/Dashboard.test.jsx b/src/components/dashboard/Dashboard.test.jsx index d508303..9796dd3 100644 --- a/src/components/dashboard/Dashboard.test.jsx +++ b/src/components/dashboard/Dashboard.test.jsx @@ -4,8 +4,20 @@ import { shallow } from "enzyme"; import Dashboard from "./Dashboard"; +import type { ServerState } from "./../../types/ServerState"; +import type { ConnectionState } from "./../../types/ServerState"; + describe("", () => { it("should render", () => { - shallow(); + const serverState: ServerState = { + connectionState: "UNKNOWN" + }; + const sensorState: ConnectionState = "UNKNOWN"; + shallow( + + ); }); }); diff --git a/src/components/form/Form.jsx b/src/components/form/Form.jsx index 6666f0e..37197f1 100644 --- a/src/components/form/Form.jsx +++ b/src/components/form/Form.jsx @@ -8,7 +8,7 @@ import Box from "grommet/components/Box"; import Button from "grommet/components/Button"; type Props = { - heading: React.Node, + heading?: React.Node, children: React.Node, onSubmit?: () => void }; @@ -16,6 +16,7 @@ type Props = { export default function Form({ heading, children, onSubmit }: Props) { return ( { if (onSubmit) { @@ -24,17 +25,21 @@ export default function Form({ heading, children, onSubmit }: Props) { } }} > -
- - {heading} - -
- {children} - {onSubmit && ( -
-
- )} + + {heading && ( +
+ + {heading} + +
+ )} + {children} + {onSubmit && ( +
+
+ )} +
); } diff --git a/src/components/form/Form.test.jsx b/src/components/form/Form.test.jsx new file mode 100644 index 0000000..aeb2976 --- /dev/null +++ b/src/components/form/Form.test.jsx @@ -0,0 +1,17 @@ +// @flow +import * as React from "react"; +import { shallow } from "enzyme"; +import Title from "grommet/components/Title"; + +import Form from "./Form"; + +describe("
", () => { + it("should render", () => { + const wrapper = shallow( + + Header +
+ ); + expect(wrapper).toHaveLength(1); + }); +}); diff --git a/src/components/heatmap/heatmapAnalysisForm/HeatmapAnalysisForm.jsx b/src/components/heatmap/heatmapAnalysisForm/HeatmapAnalysisForm.jsx new file mode 100644 index 0000000..342fe1b --- /dev/null +++ b/src/components/heatmap/heatmapAnalysisForm/HeatmapAnalysisForm.jsx @@ -0,0 +1,186 @@ +// @flow +import * as React from "react"; +import Form from "../../form/Form"; +import Heading from "grommet/components/Heading"; +import Box from "grommet/components/Box"; +import FormField from "grommet/components/FormField"; +import FormFields from "grommet/components/FormFields"; +import NumberInput from "grommet/components/NumberInput"; +import CheckBox from "grommet/components/CheckBox"; +import Value from "grommet/components/Value"; +import { inputHandler } from "../../../utils/InputHandler"; +import HeatmapData from "../../../models/HeatmapData"; +import type { AllInputTypes } from "../../../utils/InputHandler"; +import type { HeatmapMode } from "../../../types/Heatmap"; + +type Props = { + heatmapData: HeatmapData, + maxLuxValue: number, + includeFilteredValues: boolean, + heatmapMode: HeatmapMode, + onChange: (string, AllInputTypes) => void +}; + +type State = { + numberOfReadings: number, + average: number, + min: number, + max: number, + uniformity: number, + irregularity: number, + uniformityRatio: number, + irregularityRatio: number +}; + +export default class HeatmapAnalysisForm extends React.Component { + state = { + numberOfReadings: 0, + average: 0, + min: 0, + max: 0, + uniformity: 0, + irregularity: 0, + uniformityRatio: 0, + irregularityRatio: 0 + }; + + static getDerivedStateFromProps(nextProps: Props, prevState: State) { + if ( + nextProps.heatmapData.data && + (nextProps.heatmapData.data.length !== prevState.numberOfReadings || + nextProps.maxLuxValue !== prevState.max) && + nextProps.heatmapMode === "DEFAULT" + ) { + if (nextProps.heatmapData.data.length !== 0) { + return HeatmapAnalysisForm.calculateHeatmapAnalysis(nextProps); + } else { + return HeatmapAnalysisForm.getEmptyHeatmapAnalysis(); + } + } + return null; + } + + static calculateHeatmapAnalysis(props: Props): State { + const dataPoints = props.heatmapData.data; + const numberOfReadings = dataPoints.length; + const average = + dataPoints.reduce((sum, curr) => sum + curr.value, 0) / numberOfReadings; + const min = dataPoints.reduce( + (prev, curr) => (curr.value < prev.value ? curr : prev) + ).value; + const max = dataPoints.reduce( + (prev, curr) => (curr.value > prev.value ? curr : prev) + ).value; + const uniformity = min / average; + const irregularity = min / max; + const uniformityRatio = uniformity > 0 ? 1 / uniformity : 0; + const irregularityRatio = uniformity > 0 ? 1 / irregularity : 0; + return { + numberOfReadings: numberOfReadings, + average: Math.round(average), + min: Math.floor(min), + max: Math.ceil(max), + uniformity: Math.round(uniformity * 100) / 100, + irregularity: Math.round(irregularity * 100) / 100, + uniformityRatio: Math.round(uniformityRatio * 100) / 100, + irregularityRatio: Math.round(irregularityRatio * 100) / 100 + }; + } + + static getEmptyHeatmapAnalysis(): State { + return { + numberOfReadings: 0, + average: 0, + min: 0, + max: 0, + uniformity: 0, + irregularity: 0, + uniformityRatio: 0, + irregularityRatio: 0 + }; + } + + render() { + return ( + + Auswertung +
+ +
+ + + + + + + + + + + + + + +
+
+
+
+ ); + } +} diff --git a/src/components/heatmap/heatmapAnalysisForm/HeatmapAnalysisForm.test.jsx b/src/components/heatmap/heatmapAnalysisForm/HeatmapAnalysisForm.test.jsx new file mode 100644 index 0000000..6c174e7 --- /dev/null +++ b/src/components/heatmap/heatmapAnalysisForm/HeatmapAnalysisForm.test.jsx @@ -0,0 +1,26 @@ +// @flow +import * as React from "react"; +import { shallow } from "enzyme"; +import HeatmapAnalysisForm from "./HeatmapAnalysisForm"; +import type { AllInputTypes } from "../../../utils/InputHandler"; +import HeatmapData from "../../../models/HeatmapData"; + +describe("", () => { + const onChange = (key: string, value: AllInputTypes) => {}; + const heatmapData = new HeatmapData(0, 1000, []); + const maxLuxValue = 0; + const heatmapMode = "DEFAULT"; + + it("should render", () => { + const wrapper = shallow( + + ); + expect(wrapper).toHaveLength(1); + }); +}); diff --git a/src/components/heatmapConfigForm/HeatmapConfigForm.jsx b/src/components/heatmap/heatmapConfigForm/HeatmapConfigForm.jsx similarity index 65% rename from src/components/heatmapConfigForm/HeatmapConfigForm.jsx rename to src/components/heatmap/heatmapConfigForm/HeatmapConfigForm.jsx index afee44f..22ba9e9 100644 --- a/src/components/heatmapConfigForm/HeatmapConfigForm.jsx +++ b/src/components/heatmap/heatmapConfigForm/HeatmapConfigForm.jsx @@ -1,29 +1,24 @@ // @flow import * as React from "react"; -import Form from "./../../components/form/Form"; +import Form from "../../form/Form"; import FormField from "grommet/components/FormField"; import FormFields from "grommet/components/FormFields"; import NumberInput from "grommet/components/NumberInput"; -import type { ConfigObject } from "../../types/Heatmap"; -import { inputHandler } from "../../utils/InputHandler"; -import type { allInputTypes } from "../../utils/InputHandler"; +import type { ConfigObject } from "../../../types/Heatmap"; +import { inputHandler } from "../../../utils/InputHandler"; +import type { AllInputTypes } from "../../../utils/InputHandler"; type Props = { configObject: ConfigObject, - onSubmit: () => void, - onChange: (string, allInputTypes) => void + onChange: (string, AllInputTypes) => void }; -export default function HeatmapConfigForm({ - configObject, - onSubmit, - onChange -}: Props) { +export default function HeatmapConfigForm({ configObject, onChange }: Props) { return ( -
+
- + - + - + - + ", () => { const onSubmit = () => {}; - const onChange = (key: string, value: allInputTypes) => {}; + const onChange = (key: string, value: AllInputTypes) => {}; const configObject: ConfigObject = {}; it("should render", () => { diff --git a/src/components/heatmap/heatmapModeForm/HeatmapModeForm.jsx b/src/components/heatmap/heatmapModeForm/HeatmapModeForm.jsx new file mode 100644 index 0000000..e19b97c --- /dev/null +++ b/src/components/heatmap/heatmapModeForm/HeatmapModeForm.jsx @@ -0,0 +1,51 @@ +// @flow +import * as React from "react"; +import Form from "../../form/Form"; +import FormField from "grommet/components/FormField"; +import FormFields from "grommet/components/FormFields"; +import RadioButton from "grommet/components/RadioButton"; +import type { HeatmapMode } from "../../../types/Heatmap"; +import { inputHandler } from "../../../utils/InputHandler"; +import type { AllInputTypes } from "../../../utils/InputHandler"; + +type Props = { + heatmapMode: HeatmapMode, + onChange: (string, AllInputTypes) => void +}; + +export default function HeatmapModeForm({ heatmapMode, onChange }: Props) { + return ( + + +
+ + + + + +
+
+ + ); +} diff --git a/src/components/heatmap/heatmapModeForm/HeatmapModeForm.test.jsx b/src/components/heatmap/heatmapModeForm/HeatmapModeForm.test.jsx new file mode 100644 index 0000000..a556ab4 --- /dev/null +++ b/src/components/heatmap/heatmapModeForm/HeatmapModeForm.test.jsx @@ -0,0 +1,19 @@ +// @flow +import * as React from "react"; +import { shallow } from "enzyme"; + +import HeatmapModeForm from "./HeatmapModeForm"; +import type { AllInputTypes } from "../../../utils/InputHandler"; +import type { HeatmapMode } from "../../../types/Heatmap"; + +describe("", () => { + const onChange = (key: string, value: AllInputTypes) => {}; + const heatmapMode: HeatmapMode = "DEFAULT"; + + it("should render", () => { + const wrapper = shallow( + + ); + expect(wrapper).toHaveLength(1); + }); +}); diff --git a/src/components/heatmapModeForm/HeatmapModeForm.jsx b/src/components/heatmapModeForm/HeatmapModeForm.jsx deleted file mode 100644 index a657bbf..0000000 --- a/src/components/heatmapModeForm/HeatmapModeForm.jsx +++ /dev/null @@ -1,41 +0,0 @@ -// @flow -import * as React from "react"; -import Form from "./../../components/form/Form"; -import FormField from "grommet/components/FormField"; -import FormFields from "grommet/components/FormFields"; -import CheckBox from "grommet/components/CheckBox"; -import type { HeatmapModes } from "../../types/Heatmap"; -import { inputHandler } from "../../utils/InputHandler"; -import type { allInputTypes } from "../../utils/InputHandler"; - -type Props = { - heatmapModes: HeatmapModes, - onChange: (string, allInputTypes) => void -}; - -export default function HeatmapModeForm({ heatmapModes, onChange }: Props) { - return ( -
- -
- - - - - - -
-
-
- ); -} diff --git a/src/components/heatmapModeForm/HeatmapModeForm.test.jsx b/src/components/heatmapModeForm/HeatmapModeForm.test.jsx deleted file mode 100644 index f951c9f..0000000 --- a/src/components/heatmapModeForm/HeatmapModeForm.test.jsx +++ /dev/null @@ -1,22 +0,0 @@ -// @flow -import * as React from "react"; -import { shallow } from "enzyme"; - -import HeatmapModeForm from "./HeatmapModeForm"; -import type { HeatmapModes } from "../../types/Heatmap"; -import type { allInputTypes } from "../../utils/InputHandler"; - -describe("", () => { - const onChange = (key: string, value: allInputTypes) => {}; - const heatmapModes: HeatmapModes = { - showCoverage: false, - showAnchors: false - }; - - it("should render", () => { - const wrapper = shallow( - - ); - expect(wrapper).toHaveLength(1); - }); -}); diff --git a/src/components/importexport/Export.test.jsx b/src/components/importexport/Export.test.jsx new file mode 100644 index 0000000..89b75a7 --- /dev/null +++ b/src/components/importexport/Export.test.jsx @@ -0,0 +1,12 @@ +// @flow +import * as React from "react"; +import { shallow } from "enzyme"; + +import Export from "./Export"; + +describe("", () => { + it("should render", () => { + const wrapper = shallow(); + expect(wrapper).toHaveLength(1); + }); +}); diff --git a/src/components/importexport/Import.jsx b/src/components/importexport/Import.jsx index ffb51d3..7706ac6 100644 --- a/src/components/importexport/Import.jsx +++ b/src/components/importexport/Import.jsx @@ -1,14 +1,18 @@ // @flow import * as React from "react"; +import Box from "grommet/components/Box"; import Section from "grommet/components/Section"; import Header from "grommet/components/Header"; import Title from "grommet/components/Title"; import Button from "grommet/components/Button"; import Dropzone from "react-dropzone"; +import DocumentUploadIcon from "grommet/components/icons/base/DocumentUpload"; + import type { DZFile as File } from "../../types/File"; type Props = { - onUpload: (file: ?File) => void + onUpload: (file: ?File) => void, + isLoading: boolean }; type State = { @@ -37,6 +41,10 @@ export default class Import extends React.Component { }; render() { + let uploadHandler; + if (!this.props.isLoading) { + uploadHandler = () => this.props.onUpload(this.state.file); + } return (
@@ -47,16 +55,23 @@ export default class Import extends React.Component { multiple={false} accept="application/json" > -

- Ziehen Sie die Datei mit den Daten, die Sie importieren möchten in - dieses Feld. -

+ Ziehen Sie die Datei mit den Daten, die Sie importieren möchten in + dieses Feld. {this.state.file && ( -
); diff --git a/src/components/importexport/Import.test.jsx b/src/components/importexport/Import.test.jsx new file mode 100644 index 0000000..c67bb2c --- /dev/null +++ b/src/components/importexport/Import.test.jsx @@ -0,0 +1,12 @@ +// @flow +import * as React from "react"; +import { shallow } from "enzyme"; + +import Import from "./Import"; + +describe("", () => { + it("should render", () => { + const wrapper = shallow( {}} isLoading={false} />); + expect(wrapper).toHaveLength(1); + }); +}); diff --git a/src/components/list/ItemListAnchorButton.jsx b/src/components/list/ItemListAnchorButton.jsx new file mode 100644 index 0000000..483e51a --- /dev/null +++ b/src/components/list/ItemListAnchorButton.jsx @@ -0,0 +1,17 @@ +// @flow +import * as React from "react"; +import Box from "grommet/components/Box"; +import Button from "grommet/components/Button"; + +type Props = { + path: string, + children: React.Node +}; + +export default function ItemListAnchorButton({ path, children }: Props) { + return ( + + ); +} diff --git a/src/components/list/ItemListDeleteButton.jsx b/src/components/list/ItemListDeleteButton.jsx new file mode 100644 index 0000000..6e5347d --- /dev/null +++ b/src/components/list/ItemListDeleteButton.jsx @@ -0,0 +1,18 @@ +// @flow +import * as React from "react"; +import Button from "grommet/components/Button"; +import TrashIcon from "grommet/components/icons/base/Trash"; + +type Props = { + onClick: () => void +}; + +export default function ItemListDeleteButton({ onClick }: Props) { + return ( +