From 60c649be3993b643b6b5268d0d00a811e23a6b3a Mon Sep 17 00:00:00 2001 From: Deepu Mohan Puthrote Date: Mon, 26 Feb 2018 01:11:59 +0000 Subject: [PATCH] The big rewrite in React and Redux :boom: :muscle: :muscle: :airplane: --- .travis.yml | 10 +- README.md | 2 + package.json | 42 +- public/css/style.css | 42 - public/images/logo.svg | 7 + public/images/redux-spaces-avatar.png | Bin 0 -> 54636 bytes public/index.html | 94 +- public/manifest.json | 15 + src/App.js | 70 + src/App.test.js | 9 + src/actions/index.js | 8 + src/components/DisplayStatistic.jsx | 12 + src/components/Footer.jsx | 63 + src/components/Header.jsx | 12 + src/components/TextArea.jsx | 59 + src/components/TinyLineChart.jsx | 22 + src/components/index.js | 5 + src/constants/index.js | 3 + src/index.js | 19 + src/main.js | 33 - src/reducers/counts.js | 60 + src/reducers/index.js | 6 + src/registerServiceWorker.js | 117 + yarn.lock | 6813 +++++++++++++++++++++++++ 24 files changed, 7362 insertions(+), 161 deletions(-) delete mode 100644 public/css/style.css create mode 100644 public/images/logo.svg create mode 100644 public/images/redux-spaces-avatar.png create mode 100644 public/manifest.json create mode 100644 src/App.js create mode 100644 src/App.test.js create mode 100644 src/actions/index.js create mode 100644 src/components/DisplayStatistic.jsx create mode 100644 src/components/Footer.jsx create mode 100644 src/components/Header.jsx create mode 100644 src/components/TextArea.jsx create mode 100644 src/components/TinyLineChart.jsx create mode 100644 src/components/index.js create mode 100644 src/constants/index.js create mode 100644 src/index.js delete mode 100644 src/main.js create mode 100644 src/reducers/counts.js create mode 100644 src/reducers/index.js create mode 100644 src/registerServiceWorker.js create mode 100644 yarn.lock diff --git a/.travis.yml b/.travis.yml index 8b7507a..1f31537 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,10 @@ language: node_js node_js: -- '0.12' -before_script: -- npm install -g gulp + - '6.11.0' branches: only: - master -script: gulp && ls dist +script: yarn build deploy: provider: s3 skip_cleanup: true @@ -15,8 +13,8 @@ deploy: secure: WfWoAWzOpISW88V0ym6qCtw8wG4w8ej/owS8ai7SbeGj1PeCD9CNRRGMzjH4oUq0dPBJWJEAPAWjTLDRelX/ekO1+KaHaR88qqwBuvM0Jp+UO5n9U5ArMCgHrOsA1Y67fMY+qwgibyV199rZNou9XXtg6PYKLcoe1ZEFZl3Tf3k= bucket: deepumohan.com region: eu-west-1 - local-dir: dist/ - upload-dir: "/projects/word-count/" + local-dir: build/ + upload-dir: "/projects/word-count-plus/" on: repo: WarFox/word-count env: diff --git a/README.md b/README.md index 3a22c91..8ba0070 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,5 @@ Capabilities include: Demo : https://deepumohan.com/projects/word-count/ jsFiddle: https://jsfiddle.net/deepumohanp/jZeKu/ + +[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) diff --git a/package.json b/package.json index 9d85cbf..d859a0c 100644 --- a/package.json +++ b/package.json @@ -1,24 +1,22 @@ { - "private": true, - "author": "Deepu Mohan Puthrote", - "engines": { - "node": ">= 0.12", - "npm": ">= 2.1" - }, - "scripts": { - "build": "gulp" - }, - "devDependencies": { - "babelify": "^6.2.0", - "browserify": "^11.0.0", - "del": "^1.2.0", - "gulp": "^3.9.0", - "gulp-clean-css": "^2.3.2", - "gulp-plumber": "^1.0.1", - "gulp-rename": "^1.2.2", - "gulp-uglify": "1.2.0", - "gulp-util": "^3.0.6", - "vinyl-buffer": "^1.0.0", - "vinyl-source-stream": "^1.1.0" - } + "name": "word-count-plus", + "version": "2.0.0", + "author": "Deepu Mohan Puthrote", + "homepage": "https://deepumohan.com/projects/word-count-plus", + "private": true, + "dependencies": { + "react": "^16.2.0", + "react-dom": "^16.2.0", + "react-redux": "^5.0.7", + "react-scripts": "1.1.0", + "recharts": "^1.0.0-beta.10", + "redux": "^3.7.2", + "redux-logger": "^3.0.6" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test --env=jsdom", + "eject": "react-scripts eject" + } } diff --git a/public/css/style.css b/public/css/style.css deleted file mode 100644 index 9106fce..0000000 --- a/public/css/style.css +++ /dev/null @@ -1,42 +0,0 @@ -/* - Document : style - Created on : Dec 20, 2011, 5:36:23 PM - Author : Deepu Mohan Puthrote -*/ - -/* - Syntax recommendation http://www.w3.org/TR/REC-CSS2/ -*/ - -/*font import*/ -@import url(https://fonts.googleapis.com/css?family=Cagliostro); - -root {margin: 0; padding: 0;display: block;} - -body {background-color:#d1e5e3; font-family: 'Cagliostro', Courier New; color:#393939; padding: 0 5px 0 5px;} - -textarea {background-color:#d1e5e3;font-family: 'Cagliostro',Courier New; height:100%; width: 100%;border:1px solid #255E6E;} - -h1 {padding: 0; margin: 0;} -ul {display:inline; padding: 0;} -li {list-style-type: none; display: inline;} - -#container {border: 0; height: 350px;} - -.sleek{margin:0 0 10px 0;} -.sleek h1{color:#fff;font-size:16px;font-weight:bold;background-color:#255e6e;background:-moz-linear-gradient(center top,'#629998','#405A6A');filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#629998',endColorstr='#405a6a');background:-webkit-gradient(linear,left top,left bottom,from(#629998),to(#405a6a));background:-moz-linear-gradient(top,#629998,#405a6a);background:-o-linear-gradient(top,#629998,#405a6a);border:1px solid #677c89;border-bottom-color:#6b808d;border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;-webkit-border-radius:5px 5px 5px 5px;text-shadow:0 -1px 0 rgba(0,0,0,0.7);margin:0 0 10px 0;padding:8px 18px;position:relative;} -.sleek h1 a{color:#fff;text-decoration:none;} -.sleek h1 span{color:#e9f1f4;font-size:70%;font-weight:normal;text-shadow:none;} - -.sleek .sleek-body{overflow:hidden; padding: 0 0 0 150px;} - -.sleek ul{list-style-type:none;position:relative;} -.sleek ul li{color:#666;font-size:13px;font-weight:normal;background-color:#d1e5f3;background:-moz-linear-gradient(center top,'#d1e5f3','#255e6e');filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#d1e5f3',endColorstr='#255e6e');background:-webkit-gradient(linear,left top,left bottom,from(#d1e5f3),to(#255e6e));background:-moz-linear-gradient(top,#d1e5f3,#255e6e);background:-o-linear-gradient(top,#d1e5f3,#255e6e);border:1px solid #255e6e;border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;-webkit-border-radius:5px 5px 5px 5px;display:block;width:215px;height:100px;float:left;position:relative;margin:0 10px 0 0;-moz-box-shadow:0 1px 0 #fff;-webkit-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff;} -.sleek ul li a{color:#666;text-decoration:none;} - -.sleek .result{padding:10px 0 0 20px;display:block;position:relative;height:35px;border-bottom:1px solid #255e6e;background-repeat:no-repeat;background-position:center center;} -.sleek .result h2{margin:0;padding:0;font-size:32px;color:#393939;} - -.sleek .desc{padding:10px 0 15px 15px;display:block;height:45px;overflow:hidden;border-top:1px solid #fffae5;background-repeat:no-repeat;position:relative;z-index:2;} -.sleek .desc h2{margin:0;padding:0;font-size:14px;color:#ffffee;} -.sleek .desc p{margin:0;padding:0;line-height:1.2em;} diff --git a/public/images/logo.svg b/public/images/logo.svg new file mode 100644 index 0000000..6b60c10 --- /dev/null +++ b/public/images/logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/images/redux-spaces-avatar.png b/public/images/redux-spaces-avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..2110607f9095c630232ce0f53b032de1af3a91ef GIT binary patch literal 54636 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 z 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 ee?siUpIiJ;o}@!WZPHy?0)Vojx - - - Copy & Paste, Word & Character counter using Javascript, JQuery - - - - - - - + - + + Copy & Paste, Word & Character counter and Statistics app React and Redux + + + + + + + + + + + + + + + + + +
+ + - - - - -

Word Counter using Javascript, jQuery

-
-

Paste or type your text to the textbox below to get the word and character count

-
-
    -
  • -

    0

    -

    Words

    -
  • -
  • -

    0

    -

    Characters
    (including trails)

    -
  • -
  • -

    0

    -

    Characters
    (excluding trails)

    -
  • -
  • -

    0

    -

    Characters
    (excluding all spaces)

    -
  • -
-
-
-
- -
-
- - diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..a1543d4 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "Word Count Plus", + "name": "Word Count and Statistics app", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": "./index.html", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/src/App.js b/src/App.js new file mode 100644 index 0000000..9e94d02 --- /dev/null +++ b/src/App.js @@ -0,0 +1,70 @@ +import React from "react"; +import { + Footer, + Header, + TextArea, + TinyLineChart, + DisplayStatistic +} from "./components"; +import { connect } from "react-redux"; + +class App extends React.Component { + render() { + const { counts } = this.props; + + return ( +
+
+ +
+ Words + + Chars
(including trails) +
+ + Chars
(excluding trails) +
+ + Chars
(no spaces) +
+ + Alpbahets + + + Numbers + + + Non AlphaNumeric + + + Tweet - 280 max + +
+ + + +
+