From 507e8388ff22a92c6ec919224b4387602f7dcc62 Mon Sep 17 00:00:00 2001 From: Jared Petersen Date: Thu, 2 Aug 2018 22:09:53 -0700 Subject: [PATCH 1/6] changed donation and other links in heart --- src/heart/__snapshots__/index.test.js.snap | 12 +++--------- src/heart/index.js | 2 +- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/heart/__snapshots__/index.test.js.snap b/src/heart/__snapshots__/index.test.js.snap index f1a5b36..3160246 100644 --- a/src/heart/__snapshots__/index.test.js.snap +++ b/src/heart/__snapshots__/index.test.js.snap @@ -24,23 +24,17 @@ exports[`Heart renders correctly 1`] = `

- That's awesome! Let the developer know on Twitter ( + That's awesome! Let the developer know on - @jaredtpetersen - - ), shoot him an - - email + Twitter , diff --git a/src/heart/index.js b/src/heart/index.js index 054f9ad..675dcdb 100644 --- a/src/heart/index.js +++ b/src/heart/index.js @@ -8,7 +8,7 @@ const Heart = () => {

codeprinter?


-

That's awesome! Let the developer know on Twitter (@jaredtpetersen), shoot him an email, buy him a cup of coffee, or star the repository on GitHub.

+

That's awesome! Let the developer know on Twitter, buy him a cup of coffee, or star the repository on GitHub.

Found a bug? Want to request a new feature? Great! Just create an issue and/or check out the repository on GitHub. We're welcome to accept pull requests.

About the Developer

From b4a0dadfe5de8baae342b1b46a57fdf3a6d35cbb Mon Sep 17 00:00:00 2001 From: Jared Petersen Date: Thu, 2 Aug 2018 22:10:33 -0700 Subject: [PATCH 2/6] added donate badge to README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index db140f5..66883f6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # codeprinter -[![Build Status](https://travis-ci.org/jaredpetersen/codeprinter.svg?branch=master)](https://travis-ci.org/jaredpetersen/codeprinter) +[![Build Status](https://travis-ci.org/jaredpetersen/codeprinter.svg?branch=master)](https://travis-ci.org/jaredpetersen/codeprinter) [![Donate](https://img.shields.io/badge/donate-%E2%9D%A4-F33452.svg)](https://paypal.me/jaredtpetersen) codeprinter's goal is pretty self-explanatory: to make it easier to print out code on paper. Many IDE's either don't allow you to print or have some weird quirks like adding unnecessary headers and footers, not allowing you to change your font size, or not providing syntax highlighting on your printout. From 1960e1d3ba56102a589abf8b8b190b51afd943da Mon Sep 17 00:00:00 2001 From: Jared Petersen Date: Thu, 2 Aug 2018 22:34:21 -0700 Subject: [PATCH 3/6] added prettier for style enforcement --- package-lock.json | 633 +++++++++++++++++- package.json | 12 +- src/App.js | 6 +- src/common/dropdown-toggle-select/index.css | 5 +- src/common/dropdown-toggle-select/index.js | 11 +- .../dropdown-toggle-select/index.story.js | 21 +- src/editor/document/index.js | 73 +- src/editor/document/index.story.js | 11 +- src/editor/document/index.test.js | 12 +- src/editor/index.js | 27 +- src/editor/index.story.js | 5 +- src/editor/index.test.js | 7 +- src/editor/toolbar/font-dropdown/index.js | 14 +- .../toolbar/font-dropdown/index.story.js | 15 +- .../toolbar/font-dropdown/index.test.js | 25 +- src/editor/toolbar/index.js | 33 +- src/editor/toolbar/index.story.js | 37 +- src/editor/toolbar/index.test.js | 88 +-- src/editor/toolbar/size-dropdown/index.js | 10 +- .../toolbar/size-dropdown/index.story.js | 11 +- .../toolbar/size-dropdown/index.test.js | 27 +- src/editor/toolbar/theme-dropdown/index.js | 10 +- .../toolbar/theme-dropdown/index.story.js | 11 +- .../toolbar/theme-dropdown/index.test.js | 27 +- src/heart/index.js | 44 +- src/heart/index.story.js | 5 +- src/heart/index.test.js | 4 +- src/index.css | 8 +- src/navbar/index.js | 43 +- src/navbar/index.story.js | 13 +- src/not-found/index.js | 12 +- src/not-found/index.story.js | 13 +- src/not-found/index.test.js | 8 +- src/registerServiceWorker.js | 13 +- 34 files changed, 1015 insertions(+), 279 deletions(-) diff --git a/package-lock.json b/package-lock.json index 02d1126..b01828b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,15 @@ "integrity": "sha1-H0XrYXv5Rj1IKywE00nZ5O2/SJI=", "dev": true }, + "@samverschueren/stream-to-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", + "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==", + "dev": true, + "requires": { + "any-observable": "^0.3.0" + } + }, "@storybook/addon-actions": { "version": "3.4.8", "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-3.4.8.tgz", @@ -1249,6 +1258,12 @@ "color-convert": "^1.9.0" } }, + "any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true + }, "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", @@ -1327,6 +1342,12 @@ } } }, + "app-root-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz", + "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=", + "dev": true + }, "append-transform": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", @@ -3630,6 +3651,50 @@ "restore-cursor": "^2.0.0" } }, + "cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", + "dev": true + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", @@ -4315,6 +4380,12 @@ "assert-plus": "^1.0.0" } }, + "date-fns": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz", + "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==", + "dev": true + }, "date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", @@ -4338,6 +4409,12 @@ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, "deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", @@ -4694,6 +4771,12 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=" }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, "elliptic": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", @@ -5389,6 +5472,12 @@ "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=", "dev": true }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -5824,6 +5913,12 @@ "pkg-dir": "^2.0.0" } }, + "find-parent-dir": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz", + "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", + "dev": true + }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -6500,6 +6595,12 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, + "get-own-enumerable-property-symbols": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz", + "integrity": "sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug==", + "dev": true + }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", @@ -7304,6 +7405,31 @@ "strip-url-auth": "^1.0.0" } }, + "husky": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz", + "integrity": "sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA==", + "dev": true, + "requires": { + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + } + } + }, "hyphenate-style-name": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz", @@ -7737,6 +7863,15 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "requires": { + "symbol-observable": "^1.1.0" + } + }, "is-path-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", @@ -7799,6 +7934,12 @@ "has": "^1.0.1" } }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -8206,6 +8347,12 @@ "jest-util": "^20.0.3" } }, + "jest-get-type": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", + "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==", + "dev": true + }, "jest-haste-map": { "version": "20.0.5", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz", @@ -8760,6 +8907,303 @@ "type-check": "~0.3.2" } }, + "lint-staged": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-7.2.0.tgz", + "integrity": "sha512-jPoIMbmgtWMUrz/l0rhBVa1j6H71zr0rEoxDWBA333PZcaqBvELdg0Sf4tdGHlwrBM0GXaXMVgTRkLTm2vA7Jg==", + "dev": true, + "requires": { + "app-root-path": "^2.0.1", + "chalk": "^2.3.1", + "commander": "^2.14.1", + "cosmiconfig": "^5.0.2", + "debug": "^3.1.0", + "dedent": "^0.7.0", + "execa": "^0.9.0", + "find-parent-dir": "^0.3.0", + "is-glob": "^4.0.0", + "is-windows": "^1.0.2", + "jest-validate": "^23.0.0", + "listr": "^0.14.1", + "lodash": "^4.17.5", + "log-symbols": "^2.2.0", + "micromatch": "^3.1.8", + "npm-which": "^3.0.1", + "p-map": "^1.1.1", + "path-is-inside": "^1.0.2", + "pify": "^3.0.0", + "please-upgrade-node": "^3.0.2", + "staged-git-files": "1.1.1", + "string-argv": "^0.0.2", + "stringify-object": "^3.2.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cosmiconfig": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", + "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "execa": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz", + "integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "jest-validate": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.4.0.tgz", + "integrity": "sha1-2W7t4B7wOskJwAnpyORVGX1IwgE=", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "leven": "^2.1.0", + "pretty-format": "^23.2.0" + } + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pretty-format": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", + "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + } + } + }, + "listr": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.1.tgz", + "integrity": "sha512-MSMUUVN1f8aRnPi4034RkOqdiUlpYW+FqwFE3aL0uYNPRavkt2S2SsSpDDofn8BDpqv2RNnsdOcCHWsChcq77A==", + "dev": true, + "requires": { + "@samverschueren/stream-to-observable": "^0.3.0", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.4.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^6.1.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz", + "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + } + } + }, + "listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -8984,6 +9428,71 @@ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + }, + "dependencies": { + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "log-update": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "dev": true, + "requires": { + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" + }, + "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, "loglevel": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", @@ -9539,6 +10048,15 @@ "sort-keys": "^1.0.0" } }, + "npm-path": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", + "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==", + "dev": true, + "requires": { + "which": "^1.2.10" + } + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -9547,6 +10065,17 @@ "path-key": "^2.0.0" } }, + "npm-which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz", + "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", + "dev": true, + "requires": { + "commander": "^2.9.0", + "npm-path": "^2.0.2", + "which": "^1.2.10" + } + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -9779,6 +10308,45 @@ "wordwrap": "~1.0.0" } }, + "ora": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" + }, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, "original": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/original/-/original-1.0.1.tgz", @@ -10030,6 +10598,15 @@ "find-up": "^2.1.0" } }, + "please-upgrade-node": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz", + "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, "pluralize": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", @@ -11221,6 +11798,12 @@ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, + "prettier": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.0.tgz", + "integrity": "sha512-KtQ2EGaUwf2EyDfp1fxyEb0PqGKakVm0WyXwDt6u+cAoxbO2Z2CwKvOe3+b4+F2IlO9lYHi1kqFuRM70ddBnow==", + "dev": true + }, "pretty-bytes": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", @@ -12436,6 +13019,15 @@ "rx-lite": "*" } }, + "rxjs": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", + "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -12528,6 +13120,12 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, "semver-diff": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", @@ -13033,6 +13631,12 @@ "safe-buffer": "^5.1.1" } }, + "staged-git-files": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.1.tgz", + "integrity": "sha512-H89UNKr1rQJvI1c/PIR3kiAMBV23yvR7LItZiV74HWZwzt7f3YHuujJ9nJZlt58WlFox7XQsOahexwk7nTe69A==", + "dev": true + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -13099,6 +13703,12 @@ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, + "string-argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz", + "integrity": "sha1-2sMECGkMIfPDYwo/86BYd73L1zY=", + "dev": true + }, "string-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", @@ -13174,6 +13784,17 @@ "safe-buffer": "~5.1.0" } }, + "stringify-object": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.2.2.tgz", + "integrity": "sha512-O696NF21oLiDy8PhpWu8AEqoZHw++QW6mUv0UvKZe8gWSdSvMXkiLufK7OmnP27Dro4GU5kb9U7JIO0mBuCRQg==", + "dev": true, + "requires": { + "get-own-enumerable-property-symbols": "^2.0.1", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -13552,6 +14173,12 @@ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -13859,9 +14486,9 @@ } }, "url-parse": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.1.tgz", - "integrity": "sha512-x95Td74QcvICAA0+qERaVkRpTGKyBHHYdwL2LXZm5t/gBtCB9KQSO/0zQgSTYEV1p0WcvSg79TLNPSvd5IDJMQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", + "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", "requires": { "querystringify": "^2.0.0", "requires-port": "^1.0.0" diff --git a/package.json b/package.json index d4def28..fbe3c5d 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,12 @@ "private": true, "homepage": "http://jaredpetersen.github.io/codeprinter", "scripts": { + "precommit": "lint-staged", "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test --env=jsdom", - "storybook": "start-storybook -p 9009 -s public", "build-storybook": "build-storybook -s public", + "storybook": "start-storybook -p 9009 -s public", "predeploy": "npm run build", "deploy": "gh-pages -d build" }, @@ -28,6 +29,12 @@ "text" ] }, + "lint-staged": { + "src/**/*.{js,jsx,json,css}": [ + "prettier --print-width 120 --single-quote --write", + "git add" + ] + }, "dependencies": { "bootstrap": "^4.1.1", "enzyme": "^3.3.0", @@ -48,6 +55,9 @@ "babel-core": "^6.26.3", "babel-runtime": "^6.26.0", "gh-pages": "^1.2.0", + "husky": "^0.14.3", + "lint-staged": "^7.2.0", + "prettier": "1.14.0", "react-test-renderer": "^16.4.1" } } diff --git a/src/App.js b/src/App.js index 9527766..f72889f 100644 --- a/src/App.js +++ b/src/App.js @@ -1,5 +1,5 @@ import React, { Component } from 'react'; -import { BrowserRouter as Router, Switch, Route } from 'react-router-dom' +import { BrowserRouter as Router, Switch, Route } from 'react-router-dom'; import Navbar from './navbar'; import Editor from './editor'; import Heart from './heart'; @@ -9,13 +9,13 @@ class App extends Component { constructor(props) { super(props); - this.state = { }; + this.state = {}; } render() { return ( -
+
diff --git a/src/common/dropdown-toggle-select/index.css b/src/common/dropdown-toggle-select/index.css index 24b0282..4ace373 100644 --- a/src/common/dropdown-toggle-select/index.css +++ b/src/common/dropdown-toggle-select/index.css @@ -4,7 +4,7 @@ height: 0; margin-left: 0.255em; vertical-align: 0.255em; - content: ""; + content: ''; border-top: 0.3em solid; border-right: 0.3em solid transparent; border-bottom: 0; @@ -17,9 +17,8 @@ .btn-outline-dropdown-toggle-select { background-color: transparent; background-image: none; - border-color: #CED4DA; + border-color: #ced4da; } .btn-outline-dropdown-toggle-select:hover { - } diff --git a/src/common/dropdown-toggle-select/index.js b/src/common/dropdown-toggle-select/index.js index e2e3560..de61fed 100644 --- a/src/common/dropdown-toggle-select/index.js +++ b/src/common/dropdown-toggle-select/index.js @@ -3,11 +3,18 @@ import PropTypes from 'prop-types'; import { DropdownToggle } from 'reactstrap'; import './index.css'; -const DropdownToggleSelect = (props) => { +const DropdownToggleSelect = props => { const style = Object.assign({}, { textAlign: 'left' }, props.style); return ( - + ); }; diff --git a/src/common/dropdown-toggle-select/index.story.js b/src/common/dropdown-toggle-select/index.story.js index e81729e..d17cb46 100644 --- a/src/common/dropdown-toggle-select/index.story.js +++ b/src/common/dropdown-toggle-select/index.story.js @@ -5,14 +5,13 @@ import 'bootstrap/dist/css/bootstrap.css'; import { UncontrolledDropdown, DropdownMenu, DropdownItem } from 'reactstrap'; import DropdownToggleSelect from './index.js'; -storiesOf('Common/DropdownToggleSelect', module) - .add('default', () => ( - - Dropdown - - Item 1 - Item 2 - Item 3 - - - )); +storiesOf('Common/DropdownToggleSelect', module).add('default', () => ( + + Dropdown + + Item 1 + Item 2 + Item 3 + + +)); diff --git a/src/editor/document/index.js b/src/editor/document/index.js index 7d2e3ae..da43920 100644 --- a/src/editor/document/index.js +++ b/src/editor/document/index.js @@ -2,20 +2,31 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { Row, Col, Input } from 'reactstrap'; import SyntaxHighlighter from 'react-syntax-highlighter'; -import { defaultStyle, arduinoLight, ascetic, docco, githubGist, grayscale, idea, tomorrow, vs, xcode } from 'react-syntax-highlighter/styles/hljs'; +import { + defaultStyle, + arduinoLight, + ascetic, + docco, + githubGist, + grayscale, + idea, + tomorrow, + vs, + xcode +} from 'react-syntax-highlighter/styles/hljs'; import './index.css'; const themeMap = { - 'Arduino': arduinoLight, - 'Ascetic': ascetic, - 'Docco': docco, - 'GitHub': githubGist, - 'Grayscale': grayscale, - 'hljs': defaultStyle, - 'Idea': idea, - 'Tomorrow': tomorrow, - 'VS': vs, - 'Xcode': xcode + Arduino: arduinoLight, + Ascetic: ascetic, + Docco: docco, + GitHub: githubGist, + Grayscale: grayscale, + hljs: defaultStyle, + Idea: idea, + Tomorrow: tomorrow, + VS: vs, + Xcode: xcode }; const themes = Object.keys(themeMap); @@ -25,10 +36,11 @@ class Document extends Component { super(props); this.state = { - code: '// Welcome to codeprinter!\n' + - 'const foo = () => {\n' + - ' console.log(\'This is where your code will be printed out!\');\n' + - '};' + code: + '// Welcome to codeprinter!\n' + + 'const foo = () => {\n' + + " console.log('This is where your code will be printed out!');\n" + + '};' }; this.onChange = this.onChange.bind(this); @@ -36,32 +48,41 @@ class Document extends Component { onChange(event) { this.setState({ code: event.target.value }); - }; + } render() { let placeholder = 'Paste your code in here!'; if (this.props.numbers) { - placeholder += ' \nIf you have some lines that are longer than the page width, the line numbers won\'t be fully accurate. To correct for this, add a few extra new lines to the bottom of your code.'; + placeholder += + " \nIf you have some lines that are longer than the page width, the line numbers won't be fully accurate. To correct for this, add a few extra new lines to the bottom of your code."; } return ( -
- - - +
+ + + -
+
- {this.state.code} + > + {this.state.code}
@@ -72,7 +93,7 @@ class Document extends Component { Document.propTypes = { font: PropTypes.string.isRequired, size: PropTypes.number.isRequired, - theme: PropTypes.oneOf([ 'None', ...Object.keys(themeMap) ]).isRequired, + theme: PropTypes.oneOf(['None', ...Object.keys(themeMap)]).isRequired, numbers: PropTypes.bool.isRequired }; diff --git a/src/editor/document/index.story.js b/src/editor/document/index.story.js index 44ac3ab..87186eb 100644 --- a/src/editor/document/index.story.js +++ b/src/editor/document/index.story.js @@ -3,11 +3,6 @@ import { storiesOf } from '@storybook/react'; import 'bootstrap/dist/css/bootstrap.css'; import Document from './index.js'; -storiesOf('Editor/Document', module) - .add('default', () => ( - - )); +storiesOf('Editor/Document', module).add('default', () => ( + +)); diff --git a/src/editor/document/index.test.js b/src/editor/document/index.test.js index 75b05bf..27adb71 100644 --- a/src/editor/document/index.test.js +++ b/src/editor/document/index.test.js @@ -11,9 +11,10 @@ describe('Editor Document', () => { it('renders the print section with some default code when text is not provided', () => { const document = shallow(); - const expectedDefaultCode = '// Welcome to codeprinter!\n' + + const expectedDefaultCode = + '// Welcome to codeprinter!\n' + 'const foo = () => {\n' + - ' console.log(\'This is where your code will be printed out!\');\n' + + " console.log('This is where your code will be printed out!');\n" + '};'; const syntaxHighlighter = document.find(SyntaxHighlighter); @@ -42,7 +43,8 @@ describe('Editor Document', () => { it('renders the placeholder with an extra note when line numbers are enabled', () => { const document = shallow(); - const expectedPlaceholder = 'Paste your code in here! \nIf you have some lines that are longer than the page width, the line numbers won\'t be fully accurate. To correct for this, add a few extra new lines to the bottom of your code.'; + const expectedPlaceholder = + "Paste your code in here! \nIf you have some lines that are longer than the page width, the line numbers won't be fully accurate. To correct for this, add a few extra new lines to the bottom of your code."; const textarea = document.find(Input); @@ -85,7 +87,9 @@ describe('Editor Document', () => { it('renders the code with the specified line numbers', () => { const expectedLineNumbersEnabled = true; - const document = shallow(); + const document = shallow( + + ); const syntaxHighlighter = document.find(SyntaxHighlighter); diff --git a/src/editor/index.js b/src/editor/index.js index ca0c460..657f70d 100644 --- a/src/editor/index.js +++ b/src/editor/index.js @@ -26,9 +26,9 @@ class Editor extends Component { 'Ubuntu Mono' ]; - this.sizes = [ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ]; + this.sizes = [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]; - this.themes = [ 'None', ...themes ]; + this.themes = ['None', ...themes]; this.state = { style: { @@ -47,31 +47,36 @@ class Editor extends Component { } onChange(type, value) { - this.setState({ style: { ...this.state.style, [type]: value }}); + this.setState({ style: { ...this.state.style, [type]: value } }); } render() { return ( -
+
- + onPrint={this.onPrint} + /> + + numbers={this.state.style.numbers} + />
); } } -Editor.propTypes = { }; +Editor.propTypes = {}; export default Editor; diff --git a/src/editor/index.story.js b/src/editor/index.story.js index 4af5cae..bb9cfd9 100644 --- a/src/editor/index.story.js +++ b/src/editor/index.story.js @@ -3,7 +3,4 @@ import { storiesOf } from '@storybook/react'; import 'bootstrap/dist/css/bootstrap.css'; import Editor from './index.js'; -storiesOf('Editor', module) - .add('default', () => ( - - )); +storiesOf('Editor', module).add('default', () => ); diff --git a/src/editor/index.test.js b/src/editor/index.test.js index 9e93302..1da94e8 100644 --- a/src/editor/index.test.js +++ b/src/editor/index.test.js @@ -39,7 +39,7 @@ describe('Editor', () => { expect(toolbar.prop('fonts')).toEqual(expectedFonts); expect(toolbar.prop('activeFont')).toEqual(expectedFonts[11]); - const expectedSizes = [ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ]; + const expectedSizes = [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]; expect(toolbar.prop('sizes')).toEqual(expectedSizes); expect(toolbar.prop('activeSize')).toEqual(expectedSizes[2]); @@ -78,7 +78,10 @@ describe('Editor', () => { global.print = jest.fn(); const editor = shallow(); const toolbar = editor.find(Toolbar); - const printButton = toolbar.dive().find(Button).find('#print'); + const printButton = toolbar + .dive() + .find(Button) + .find('#print'); printButton.simulate('click'); diff --git a/src/editor/toolbar/font-dropdown/index.js b/src/editor/toolbar/font-dropdown/index.js index f913353..78d0167 100644 --- a/src/editor/toolbar/font-dropdown/index.js +++ b/src/editor/toolbar/font-dropdown/index.js @@ -6,15 +6,21 @@ import DropdownToggleSelect from '../../../common/dropdown-toggle-select'; const FontDropdown = ({ fonts, active, onSelect }) => { const dropdownItems = fonts.map(font => { return ( - {font}); + + {font} + + ); }); return ( {active} - - {dropdownItems} - + {dropdownItems} ); }; diff --git a/src/editor/toolbar/font-dropdown/index.story.js b/src/editor/toolbar/font-dropdown/index.story.js index 7149f8b..fe2b651 100644 --- a/src/editor/toolbar/font-dropdown/index.story.js +++ b/src/editor/toolbar/font-dropdown/index.story.js @@ -4,15 +4,8 @@ import { action } from '@storybook/addon-actions'; import 'bootstrap/dist/css/bootstrap.css'; import FontDropdown from './index.js'; -storiesOf('Editor/Toolbar/FontDropdown', module) - .add('default', () => { - const fonts = [ - 'Anonymous Pro', - 'Cousine', - 'Cutive Mono', - ]; +storiesOf('Editor/Toolbar/FontDropdown', module).add('default', () => { + const fonts = ['Anonymous Pro', 'Cousine', 'Cutive Mono']; - return ( - - ); - }); + return ; +}); diff --git a/src/editor/toolbar/font-dropdown/index.test.js b/src/editor/toolbar/font-dropdown/index.test.js index a4d8088..75f6064 100644 --- a/src/editor/toolbar/font-dropdown/index.test.js +++ b/src/editor/toolbar/font-dropdown/index.test.js @@ -5,30 +5,43 @@ import { DropdownItem } from 'reactstrap'; describe('Editor Toolbar FontDropdown', () => { it('renders without crashing', () => { - const fonts = [ 'serif', 'sans-serif' ]; + const fonts = ['serif', 'sans-serif']; shallow( {}} />); }); it('renders all of the fonts as dropdown options', () => { - const fonts = [ 'serif', 'sans-serif' ]; + const fonts = ['serif', 'sans-serif']; const fontDropdown = shallow( {}} />); const dropdownItems = fontDropdown.find(DropdownItem); expect(dropdownItems).toHaveLength(fonts.length); - expect(dropdownItems.at(0).childAt(0).text()).toEqual(fonts[0]); + expect( + dropdownItems + .at(0) + .childAt(0) + .text() + ).toEqual(fonts[0]); expect(dropdownItems.at(0).prop('active')).toEqual(false); - expect(dropdownItems.at(1).childAt(0).text()).toEqual(fonts[1]); + expect( + dropdownItems + .at(1) + .childAt(0) + .text() + ).toEqual(fonts[1]); expect(dropdownItems.at(1).prop('active')).toEqual(true); }); it('calls the onSelect function on selecting a dropdown option', () => { - const fonts = [ 'serif', 'sans-serif' ]; + const fonts = ['serif', 'sans-serif']; const onSelect = jest.fn(); const fontDropdown = shallow(); - fontDropdown.find(DropdownItem).last().simulate('click'); + fontDropdown + .find(DropdownItem) + .last() + .simulate('click'); expect(onSelect).toHaveBeenCalledTimes(1); }); diff --git a/src/editor/toolbar/index.js b/src/editor/toolbar/index.js index d652ad7..8a98eb5 100644 --- a/src/editor/toolbar/index.js +++ b/src/editor/toolbar/index.js @@ -7,22 +7,33 @@ import ThemeDropdown from './theme-dropdown'; const Toolbar = ({ fonts, activeFont, sizes, activeSize, themes, activeTheme, activeNumbers, onChange, onPrint }) => { return ( - -
- + +
+ - - + + - - + + - - + + - - + +
diff --git a/src/editor/toolbar/index.story.js b/src/editor/toolbar/index.story.js index c2ffbfa..3633fe7 100644 --- a/src/editor/toolbar/index.story.js +++ b/src/editor/toolbar/index.story.js @@ -4,25 +4,24 @@ import { action } from '@storybook/addon-actions'; import 'bootstrap/dist/css/bootstrap.css'; import Toolbar from './index.js'; -storiesOf('Editor/Toolbar', module) - .add('default', () => { - const fonts = [ - 'Anonymous Pro', - 'Cousine', - 'Cutive Mono', - ]; +storiesOf('Editor/Toolbar', module).add('default', () => { + const fonts = ['Anonymous Pro', 'Cousine', 'Cutive Mono']; - const sizes = [ 8, 9, 10, 11, 12 ]; + const sizes = [8, 9, 10, 11, 12]; - const themes = [ 'GitHub', 'VS', 'Xcode' ]; + const themes = ['GitHub', 'VS', 'Xcode']; - return ( - - ); - }); + return ( + + ); +}); diff --git a/src/editor/toolbar/index.test.js b/src/editor/toolbar/index.test.js index 2df8214..348d53c 100644 --- a/src/editor/toolbar/index.test.js +++ b/src/editor/toolbar/index.test.js @@ -7,46 +7,46 @@ import ThemeDropdown from './theme-dropdown'; describe('Editor Toolbar', () => { it('renders without crashing', () => { - const fonts = [ - 'Anonymous Pro', - 'Cousine', - 'Cutive Mono', - ]; + const fonts = ['Anonymous Pro', 'Cousine', 'Cutive Mono']; - const sizes = [ 8, 9, 10, 11, 12 ]; + const sizes = [8, 9, 10, 11, 12]; - const themes = [ 'GitHub', 'VS', 'Xcode' ]; + const themes = ['GitHub', 'VS', 'Xcode']; shallow( {}} - onPrint={() => {}} /> + onPrint={() => {}} + /> ); }); it('renders the fonts in a dropdown', () => { - const fonts = [ - 'Anonymous Pro', - 'Cousine', - 'Cutive Mono', - ]; + const fonts = ['Anonymous Pro', 'Cousine', 'Cutive Mono']; - const sizes = [ 8, 9, 10, 11, 12 ]; + const sizes = [8, 9, 10, 11, 12]; - const themes = [ 'GitHub', 'VS', 'Xcode' ]; + const themes = ['GitHub', 'VS', 'Xcode']; const toolbar = shallow( {}} - onPrint={() => {}} /> + onPrint={() => {}} + /> ); const fontDropdown = toolbar.find(FontDropdown); @@ -56,24 +56,24 @@ describe('Editor Toolbar', () => { }); it('renders the sizes in a dropdown', () => { - const fonts = [ - 'Anonymous Pro', - 'Cousine', - 'Cutive Mono', - ]; + const fonts = ['Anonymous Pro', 'Cousine', 'Cutive Mono']; - const sizes = [ 8, 9, 10, 11, 12 ]; + const sizes = [8, 9, 10, 11, 12]; - const themes = [ 'GitHub', 'VS', 'Xcode' ]; + const themes = ['GitHub', 'VS', 'Xcode']; const toolbar = shallow( {}} - onPrint={() => {}} /> + onPrint={() => {}} + /> ); const sizeDropdown = toolbar.find(SizeDropdown); @@ -83,24 +83,24 @@ describe('Editor Toolbar', () => { }); it('renders the themes in a dropdown', () => { - const fonts = [ - 'Anonymous Pro', - 'Cousine', - 'Cutive Mono', - ]; + const fonts = ['Anonymous Pro', 'Cousine', 'Cutive Mono']; - const sizes = [ 8, 9, 10, 11, 12 ]; + const sizes = [8, 9, 10, 11, 12]; - const themes = [ 'GitHub', 'VS', 'Xcode' ]; + const themes = ['GitHub', 'VS', 'Xcode']; const toolbar = shallow( {}} - onPrint={() => {}} /> + onPrint={() => {}} + /> ); const themeDropdown = toolbar.find(ThemeDropdown); diff --git a/src/editor/toolbar/size-dropdown/index.js b/src/editor/toolbar/size-dropdown/index.js index 3d1d391..9aa2af3 100644 --- a/src/editor/toolbar/size-dropdown/index.js +++ b/src/editor/toolbar/size-dropdown/index.js @@ -4,14 +4,16 @@ import { UncontrolledDropdown, DropdownMenu, DropdownItem } from 'reactstrap'; import DropdownToggleSelect from '../../../common/dropdown-toggle-select'; const SizeDropdown = ({ sizes, active, onSelect }) => { - const dropdownItems = sizes.map(size => ({size})); + const dropdownItems = sizes.map(size => ( + + {size} + + )); return ( {active} - - {dropdownItems} - + {dropdownItems} ); }; diff --git a/src/editor/toolbar/size-dropdown/index.story.js b/src/editor/toolbar/size-dropdown/index.story.js index cad94f9..23b8622 100644 --- a/src/editor/toolbar/size-dropdown/index.story.js +++ b/src/editor/toolbar/size-dropdown/index.story.js @@ -4,11 +4,8 @@ import { action } from '@storybook/addon-actions'; import 'bootstrap/dist/css/bootstrap.css'; import SizeDropdown from './index.js'; -storiesOf('Editor/Toolbar/SizeDropdown', module) - .add('default', () => { - const sizes = [ 8, 9, 10, 11, 12 ]; +storiesOf('Editor/Toolbar/SizeDropdown', module).add('default', () => { + const sizes = [8, 9, 10, 11, 12]; - return ( - - ); - }); + return ; +}); diff --git a/src/editor/toolbar/size-dropdown/index.test.js b/src/editor/toolbar/size-dropdown/index.test.js index 28beb05..cc3b1b6 100644 --- a/src/editor/toolbar/size-dropdown/index.test.js +++ b/src/editor/toolbar/size-dropdown/index.test.js @@ -5,30 +5,43 @@ import { DropdownItem } from 'reactstrap'; describe('Editor Toolbar SizeDropdown', () => { it('renders without crashing', () => { - const sizes = [ 8, 9, 10, 11, 12 ]; - shallow( {}}/>); + const sizes = [8, 9, 10, 11, 12]; + shallow( {}} />); }); it('renders all of the sizes as dropdown options', () => { - const sizes = [ 8, 9 ]; + const sizes = [8, 9]; const sizeDropdown = shallow( {}} />); const dropdownItems = sizeDropdown.find(DropdownItem); expect(dropdownItems).toHaveLength(sizes.length); - expect(dropdownItems.at(0).childAt(0).text()).toEqual(`${sizes[0]}`); + expect( + dropdownItems + .at(0) + .childAt(0) + .text() + ).toEqual(`${sizes[0]}`); expect(dropdownItems.at(0).prop('active')).toEqual(false); - expect(dropdownItems.at(1).childAt(0).text()).toEqual(`${sizes[1]}`); + expect( + dropdownItems + .at(1) + .childAt(0) + .text() + ).toEqual(`${sizes[1]}`); expect(dropdownItems.at(1).prop('active')).toEqual(true); }); it('calls the onSelect function on selecting a dropdown option', () => { - const sizes = [ 8, 9, 10, 11, 12 ]; + const sizes = [8, 9, 10, 11, 12]; const onSelect = jest.fn(); const sizeDropdown = shallow(); - sizeDropdown.find(DropdownItem).last().simulate('click'); + sizeDropdown + .find(DropdownItem) + .last() + .simulate('click'); expect(onSelect).toHaveBeenCalledTimes(1); }); diff --git a/src/editor/toolbar/theme-dropdown/index.js b/src/editor/toolbar/theme-dropdown/index.js index 7e5f75d..e1037be 100644 --- a/src/editor/toolbar/theme-dropdown/index.js +++ b/src/editor/toolbar/theme-dropdown/index.js @@ -4,14 +4,16 @@ import { UncontrolledDropdown, DropdownMenu, DropdownItem } from 'reactstrap'; import DropdownToggleSelect from '../../../common/dropdown-toggle-select'; const ThemeDropdown = ({ themes, active, onSelect }) => { - const dropdownItems = themes.map(theme => ({theme})); + const dropdownItems = themes.map(theme => ( + + {theme} + + )); return ( {active} - - {dropdownItems} - + {dropdownItems} ); }; diff --git a/src/editor/toolbar/theme-dropdown/index.story.js b/src/editor/toolbar/theme-dropdown/index.story.js index 08471ca..3477c6a 100644 --- a/src/editor/toolbar/theme-dropdown/index.story.js +++ b/src/editor/toolbar/theme-dropdown/index.story.js @@ -4,11 +4,8 @@ import { action } from '@storybook/addon-actions'; import 'bootstrap/dist/css/bootstrap.css'; import ThemeDropdown from './index.js'; -storiesOf('Editor/Toolbar/ThemeDropdown', module) - .add('default', () => { - const themes = [ 'GitHub', 'VS', 'Xcode' ]; +storiesOf('Editor/Toolbar/ThemeDropdown', module).add('default', () => { + const themes = ['GitHub', 'VS', 'Xcode']; - return ( - - ); - }); + return ; +}); diff --git a/src/editor/toolbar/theme-dropdown/index.test.js b/src/editor/toolbar/theme-dropdown/index.test.js index 741388a..586ef96 100644 --- a/src/editor/toolbar/theme-dropdown/index.test.js +++ b/src/editor/toolbar/theme-dropdown/index.test.js @@ -5,30 +5,43 @@ import { DropdownItem } from 'reactstrap'; describe('Editor Toolbar ThemeDropdown', () => { it('renders without crashing', () => { - const themes = [ 'GitHub', 'VS', 'Xcode' ]; - shallow( {}}/>); + const themes = ['GitHub', 'VS', 'Xcode']; + shallow( {}} />); }); it('renders all of the themes as dropdown options', () => { - const themes = [ 'GitHub', 'VS', 'Xcode' ]; + const themes = ['GitHub', 'VS', 'Xcode']; const themeDropdown = shallow( {}} />); const dropdownItems = themeDropdown.find(DropdownItem); expect(dropdownItems).toHaveLength(themes.length); - expect(dropdownItems.at(0).childAt(0).text()).toEqual(themes[0]); + expect( + dropdownItems + .at(0) + .childAt(0) + .text() + ).toEqual(themes[0]); expect(dropdownItems.at(0).prop('active')).toEqual(false); - expect(dropdownItems.at(1).childAt(0).text()).toEqual(themes[1]); + expect( + dropdownItems + .at(1) + .childAt(0) + .text() + ).toEqual(themes[1]); expect(dropdownItems.at(1).prop('active')).toEqual(true); }); it('calls the onSelect function on selecting a dropdown option ', () => { - const themes = [ 'GitHub', 'VS', 'Xcode' ]; + const themes = ['GitHub', 'VS', 'Xcode']; const onSelect = jest.fn(); const themeDropdown = shallow(); - themeDropdown.find(DropdownItem).last().simulate('click'); + themeDropdown + .find(DropdownItem) + .last() + .simulate('click'); expect(onSelect).toHaveBeenCalledTimes(1); }); diff --git a/src/heart/index.js b/src/heart/index.js index 675dcdb..8f13c25 100644 --- a/src/heart/index.js +++ b/src/heart/index.js @@ -3,24 +3,54 @@ import { Container, Row, Col } from 'reactstrap'; const Heart = () => { return ( - + -

codeprinter?

+

+ codeprinter? +


-

That's awesome! Let the developer know on Twitter, buy him a cup of coffee, or star the repository on GitHub.

-

Found a bug? Want to request a new feature? Great! Just create an issue and/or check out the repository on GitHub. We're welcome to accept pull requests.

+

+ That's awesome! Let the developer know on{' '} + + Twitter + + ,{' '} + + buy him a cup of coffee + + , or star the repository on{' '} + + GitHub + + . +

+

+ Found a bug? Want to request a new feature? Great! Just create an issue and/or check out the repository on + GitHub. We're welcome to accept pull requests. +

-

About the Developer

+

+ About the Developer +


This software was developed by Jared Petersen.

-

You can check out his other repositories on GitHub or look at his résumé on LinkedIn

+

+ You can check out his other repositories on{' '} + + GitHub + {' '} + or look at his résumé on{' '} + + LinkedIn + +

); }; -Heart.propTypes = { }; +Heart.propTypes = {}; export default Heart; diff --git a/src/heart/index.story.js b/src/heart/index.story.js index 565edc8..b0eda6e 100644 --- a/src/heart/index.story.js +++ b/src/heart/index.story.js @@ -3,7 +3,4 @@ import { storiesOf } from '@storybook/react'; import 'bootstrap/dist/css/bootstrap.css'; import Heart from './index.js'; -storiesOf('Heart', module) - .add('default', () => ( - - )); +storiesOf('Heart', module).add('default', () => ); diff --git a/src/heart/index.test.js b/src/heart/index.test.js index 1886a40..22d300d 100644 --- a/src/heart/index.test.js +++ b/src/heart/index.test.js @@ -9,9 +9,7 @@ describe('Heart', () => { }); it('renders correctly', () => { - const tree = renderer - .create() - .toJSON(); + const tree = renderer.create().toJSON(); expect(tree).toMatchSnapshot(); }); diff --git a/src/index.css b/src/index.css index 09565f8..36dc5fa 100644 --- a/src/index.css +++ b/src/index.css @@ -4,18 +4,20 @@ body { font-family: sans-serif; } -body, html, #root { +body, +html, +#root { height: 100%; } @media screen and (max-width: 767px) { .responsive-container { - height: calc(100% - 254px) + height: calc(100% - 254px); } } @media screen and (min-width: 768px) { .responsive-container { - height: calc(100% - 130px) + height: calc(100% - 130px); } } diff --git a/src/navbar/index.js b/src/navbar/index.js index c690c8f..1bd13a3 100644 --- a/src/navbar/index.js +++ b/src/navbar/index.js @@ -1,14 +1,5 @@ import React from 'react'; -import { - Collapse, - Navbar, - NavbarToggler, - NavbarBrand, - Nav, - NavItem, - NavLink, - Badge, - } from 'reactstrap'; +import { Collapse, Navbar, NavbarToggler, NavbarBrand, Nav, NavItem, NavLink, Badge } from 'reactstrap'; import { Link } from 'react-router-dom'; class CustomNavbar extends React.Component { @@ -29,24 +20,30 @@ class CustomNavbar extends React.Component { render() { return ( - - codeprinter + + + codeprinter + - - - + + + ); } } -CustomNavbar.propTypes = { }; +CustomNavbar.propTypes = {}; export default CustomNavbar; diff --git a/src/navbar/index.story.js b/src/navbar/index.story.js index e09014d..325438b 100644 --- a/src/navbar/index.story.js +++ b/src/navbar/index.story.js @@ -1,12 +1,11 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; -import { BrowserRouter as Router } from 'react-router-dom' +import { BrowserRouter as Router } from 'react-router-dom'; import 'bootstrap/dist/css/bootstrap.css'; import Navbar from './index.js'; -storiesOf('Navbar', module) - .add('default', () => ( - - - - )); +storiesOf('Navbar', module).add('default', () => ( + + + +)); diff --git a/src/not-found/index.js b/src/not-found/index.js index f268c57..734609b 100644 --- a/src/not-found/index.js +++ b/src/not-found/index.js @@ -4,18 +4,22 @@ import { Link } from 'react-router-dom'; const NotFound = () => { return ( - + -

404 Not Found

+

+ 404 Not Found +


-

It looks like you're lost. Let's go home.

+

+ It looks like you're lost. Let's go home. +

); }; -NotFound.propTypes = { }; +NotFound.propTypes = {}; export default NotFound; diff --git a/src/not-found/index.story.js b/src/not-found/index.story.js index 728e58e..ff887e1 100644 --- a/src/not-found/index.story.js +++ b/src/not-found/index.story.js @@ -1,12 +1,11 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; -import { BrowserRouter as Router } from 'react-router-dom' +import { BrowserRouter as Router } from 'react-router-dom'; import 'bootstrap/dist/css/bootstrap.css'; import NotFound from './index.js'; -storiesOf('Not Found', module) - .add('default', () => ( - - - - )); +storiesOf('Not Found', module).add('default', () => ( + + + +)); diff --git a/src/not-found/index.test.js b/src/not-found/index.test.js index 29348b3..cab2220 100644 --- a/src/not-found/index.test.js +++ b/src/not-found/index.test.js @@ -2,7 +2,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import renderer from 'react-test-renderer'; import NotFound from './index.js'; -import { BrowserRouter as Router } from 'react-router-dom' +import { BrowserRouter as Router } from 'react-router-dom'; describe('NotFound', () => { it('renders without crashing', () => { @@ -11,7 +11,11 @@ describe('NotFound', () => { it('renders correctly', () => { const tree = renderer - .create() + .create( + + + + ) .toJSON(); expect(tree).toMatchSnapshot(); diff --git a/src/registerServiceWorker.js b/src/registerServiceWorker.js index a3e6c0c..e586d9a 100644 --- a/src/registerServiceWorker.js +++ b/src/registerServiceWorker.js @@ -13,9 +13,7 @@ const isLocalhost = Boolean( // [::1] is the IPv6 localhost address. window.location.hostname === '[::1]' || // 127.0.0.1/8 is considered localhost for IPv4. - window.location.hostname.match( - /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ - ) + window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/) ); export default function register() { @@ -86,10 +84,7 @@ function checkValidServiceWorker(swUrl) { fetch(swUrl) .then(response => { // Ensure service worker exists, and that we really are getting a JS file. - if ( - response.status === 404 || - response.headers.get('content-type').indexOf('javascript') === -1 - ) { + if (response.status === 404 || response.headers.get('content-type').indexOf('javascript') === -1) { // No service worker found. Probably a different app. Reload the page. navigator.serviceWorker.ready.then(registration => { registration.unregister().then(() => { @@ -102,9 +97,7 @@ function checkValidServiceWorker(swUrl) { } }) .catch(() => { - console.log( - 'No internet connection found. App is running in offline mode.' - ); + console.log('No internet connection found. App is running in offline mode.'); }); } From 1dd917e1258a35698012ca851f386cae8ca4bb09 Mon Sep 17 00:00:00 2001 From: Jared Petersen Date: Thu, 2 Aug 2018 23:39:56 -0700 Subject: [PATCH 4/6] fixed imports and fixed bug with default printer code --- src/editor/document/index.js | 15 +++++++++------ src/editor/document/index.story.js | 2 +- src/editor/document/index.test.js | 2 +- src/editor/index.story.js | 2 +- src/editor/index.test.js | 2 +- src/editor/toolbar/font-dropdown/index.story.js | 2 +- src/editor/toolbar/font-dropdown/index.test.js | 2 +- src/editor/toolbar/index.story.js | 2 +- src/editor/toolbar/index.test.js | 2 +- src/editor/toolbar/size-dropdown/index.story.js | 2 +- src/editor/toolbar/size-dropdown/index.test.js | 2 +- src/editor/toolbar/theme-dropdown/index.story.js | 2 +- src/editor/toolbar/theme-dropdown/index.test.js | 2 +- src/heart/index.story.js | 2 +- src/heart/index.test.js | 2 +- src/navbar/index.story.js | 2 +- src/navbar/index.test.js | 2 +- src/not-found/index.story.js | 2 +- src/not-found/index.test.js | 2 +- 19 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/editor/document/index.js b/src/editor/document/index.js index da43920..9ac25ff 100644 --- a/src/editor/document/index.js +++ b/src/editor/document/index.js @@ -35,19 +35,22 @@ class Document extends Component { constructor(props) { super(props); + this.defaultCode = + '// Welcome to codeprinter!\n' + + 'const foo = () => {\n' + + " console.log('This is where your code will be printed out!');\n" + + '};'; + this.state = { - code: - '// Welcome to codeprinter!\n' + - 'const foo = () => {\n' + - " console.log('This is where your code will be printed out!');\n" + - '};' + code: this.defaultCode }; this.onChange = this.onChange.bind(this); } onChange(event) { - this.setState({ code: event.target.value }); + const code = event.target.value === '' ? this.defaultCode : event.target.value; + this.setState({ code }); } render() { diff --git a/src/editor/document/index.story.js b/src/editor/document/index.story.js index 87186eb..565cd88 100644 --- a/src/editor/document/index.story.js +++ b/src/editor/document/index.story.js @@ -1,7 +1,7 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import 'bootstrap/dist/css/bootstrap.css'; -import Document from './index.js'; +import Document from './index'; storiesOf('Editor/Document', module).add('default', () => ( diff --git a/src/editor/document/index.test.js b/src/editor/document/index.test.js index 27adb71..bdf07dd 100644 --- a/src/editor/document/index.test.js +++ b/src/editor/document/index.test.js @@ -1,6 +1,6 @@ import React from 'react'; import { shallow } from 'enzyme'; -import { Document, themes } from './index.js'; +import { Document, themes } from './index'; import { Input } from 'reactstrap'; import SyntaxHighlighter from 'react-syntax-highlighter'; diff --git a/src/editor/index.story.js b/src/editor/index.story.js index bb9cfd9..7390343 100644 --- a/src/editor/index.story.js +++ b/src/editor/index.story.js @@ -1,6 +1,6 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import 'bootstrap/dist/css/bootstrap.css'; -import Editor from './index.js'; +import Editor from './index'; storiesOf('Editor', module).add('default', () => ); diff --git a/src/editor/index.test.js b/src/editor/index.test.js index 1da94e8..2a07abf 100644 --- a/src/editor/index.test.js +++ b/src/editor/index.test.js @@ -1,6 +1,6 @@ import React from 'react'; import { shallow, mount } from 'enzyme'; -import Editor from './index.js'; +import Editor from './index'; import Toolbar from './toolbar'; import Document from './document'; import FontDropdown from './toolbar/font-dropdown'; diff --git a/src/editor/toolbar/font-dropdown/index.story.js b/src/editor/toolbar/font-dropdown/index.story.js index fe2b651..f9880dc 100644 --- a/src/editor/toolbar/font-dropdown/index.story.js +++ b/src/editor/toolbar/font-dropdown/index.story.js @@ -2,7 +2,7 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import 'bootstrap/dist/css/bootstrap.css'; -import FontDropdown from './index.js'; +import FontDropdown from './index'; storiesOf('Editor/Toolbar/FontDropdown', module).add('default', () => { const fonts = ['Anonymous Pro', 'Cousine', 'Cutive Mono']; diff --git a/src/editor/toolbar/font-dropdown/index.test.js b/src/editor/toolbar/font-dropdown/index.test.js index 75f6064..c5a7a5a 100644 --- a/src/editor/toolbar/font-dropdown/index.test.js +++ b/src/editor/toolbar/font-dropdown/index.test.js @@ -1,6 +1,6 @@ import React from 'react'; import { shallow } from 'enzyme'; -import FontDropdown from './index.js'; +import FontDropdown from './index'; import { DropdownItem } from 'reactstrap'; describe('Editor Toolbar FontDropdown', () => { diff --git a/src/editor/toolbar/index.story.js b/src/editor/toolbar/index.story.js index 3633fe7..894c928 100644 --- a/src/editor/toolbar/index.story.js +++ b/src/editor/toolbar/index.story.js @@ -2,7 +2,7 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import 'bootstrap/dist/css/bootstrap.css'; -import Toolbar from './index.js'; +import Toolbar from './index'; storiesOf('Editor/Toolbar', module).add('default', () => { const fonts = ['Anonymous Pro', 'Cousine', 'Cutive Mono']; diff --git a/src/editor/toolbar/index.test.js b/src/editor/toolbar/index.test.js index 348d53c..a8a4c2b 100644 --- a/src/editor/toolbar/index.test.js +++ b/src/editor/toolbar/index.test.js @@ -1,6 +1,6 @@ import React from 'react'; import { shallow } from 'enzyme'; -import Toolbar from './index.js'; +import Toolbar from './index'; import FontDropdown from './font-dropdown'; import SizeDropdown from './size-dropdown'; import ThemeDropdown from './theme-dropdown'; diff --git a/src/editor/toolbar/size-dropdown/index.story.js b/src/editor/toolbar/size-dropdown/index.story.js index 23b8622..6f8186d 100644 --- a/src/editor/toolbar/size-dropdown/index.story.js +++ b/src/editor/toolbar/size-dropdown/index.story.js @@ -2,7 +2,7 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import 'bootstrap/dist/css/bootstrap.css'; -import SizeDropdown from './index.js'; +import SizeDropdown from './index'; storiesOf('Editor/Toolbar/SizeDropdown', module).add('default', () => { const sizes = [8, 9, 10, 11, 12]; diff --git a/src/editor/toolbar/size-dropdown/index.test.js b/src/editor/toolbar/size-dropdown/index.test.js index cc3b1b6..3991e63 100644 --- a/src/editor/toolbar/size-dropdown/index.test.js +++ b/src/editor/toolbar/size-dropdown/index.test.js @@ -1,6 +1,6 @@ import React from 'react'; import { shallow } from 'enzyme'; -import SizeDropdown from './index.js'; +import SizeDropdown from './index'; import { DropdownItem } from 'reactstrap'; describe('Editor Toolbar SizeDropdown', () => { diff --git a/src/editor/toolbar/theme-dropdown/index.story.js b/src/editor/toolbar/theme-dropdown/index.story.js index 3477c6a..54a068b 100644 --- a/src/editor/toolbar/theme-dropdown/index.story.js +++ b/src/editor/toolbar/theme-dropdown/index.story.js @@ -2,7 +2,7 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import 'bootstrap/dist/css/bootstrap.css'; -import ThemeDropdown from './index.js'; +import ThemeDropdown from './index'; storiesOf('Editor/Toolbar/ThemeDropdown', module).add('default', () => { const themes = ['GitHub', 'VS', 'Xcode']; diff --git a/src/editor/toolbar/theme-dropdown/index.test.js b/src/editor/toolbar/theme-dropdown/index.test.js index 586ef96..daba72a 100644 --- a/src/editor/toolbar/theme-dropdown/index.test.js +++ b/src/editor/toolbar/theme-dropdown/index.test.js @@ -1,6 +1,6 @@ import React from 'react'; import { shallow } from 'enzyme'; -import ThemeDropdown from './index.js'; +import ThemeDropdown from './index'; import { DropdownItem } from 'reactstrap'; describe('Editor Toolbar ThemeDropdown', () => { diff --git a/src/heart/index.story.js b/src/heart/index.story.js index b0eda6e..7d49952 100644 --- a/src/heart/index.story.js +++ b/src/heart/index.story.js @@ -1,6 +1,6 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import 'bootstrap/dist/css/bootstrap.css'; -import Heart from './index.js'; +import Heart from './index'; storiesOf('Heart', module).add('default', () => ); diff --git a/src/heart/index.test.js b/src/heart/index.test.js index 22d300d..cd82bf3 100644 --- a/src/heart/index.test.js +++ b/src/heart/index.test.js @@ -1,7 +1,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import renderer from 'react-test-renderer'; -import Heart from './index.js'; +import Heart from './index'; describe('Heart', () => { it('renders without crashing', () => { diff --git a/src/navbar/index.story.js b/src/navbar/index.story.js index 325438b..fa22bf4 100644 --- a/src/navbar/index.story.js +++ b/src/navbar/index.story.js @@ -2,7 +2,7 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { BrowserRouter as Router } from 'react-router-dom'; import 'bootstrap/dist/css/bootstrap.css'; -import Navbar from './index.js'; +import Navbar from './index'; storiesOf('Navbar', module).add('default', () => ( diff --git a/src/navbar/index.test.js b/src/navbar/index.test.js index 492baec..8c3c9ef 100644 --- a/src/navbar/index.test.js +++ b/src/navbar/index.test.js @@ -1,6 +1,6 @@ import React from 'react'; import { shallow } from 'enzyme'; -import Navbar from './index.js'; +import Navbar from './index'; import { NavbarToggler, Collapse } from 'reactstrap'; describe('Navbar', () => { diff --git a/src/not-found/index.story.js b/src/not-found/index.story.js index ff887e1..b839f9f 100644 --- a/src/not-found/index.story.js +++ b/src/not-found/index.story.js @@ -2,7 +2,7 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { BrowserRouter as Router } from 'react-router-dom'; import 'bootstrap/dist/css/bootstrap.css'; -import NotFound from './index.js'; +import NotFound from './index'; storiesOf('Not Found', module).add('default', () => ( diff --git a/src/not-found/index.test.js b/src/not-found/index.test.js index cab2220..738dfe4 100644 --- a/src/not-found/index.test.js +++ b/src/not-found/index.test.js @@ -1,7 +1,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import renderer from 'react-test-renderer'; -import NotFound from './index.js'; +import NotFound from './index'; import { BrowserRouter as Router } from 'react-router-dom'; describe('NotFound', () => { From e19a8c9c4afbb971e0fc5b939641fe10e16a7ecc Mon Sep 17 00:00:00 2001 From: Jared Petersen Date: Fri, 3 Aug 2018 00:17:16 -0700 Subject: [PATCH 5/6] added pretty command --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index fbe3c5d..1d8c297 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test --env=jsdom", + "pretty": "prettier --print-width 120 --single-quote --write \"src/**/*.{js,jsx,json,css}\"", "build-storybook": "build-storybook -s public", "storybook": "start-storybook -p 9009 -s public", "predeploy": "npm run build", From a31e82729e80f8440915ad2ad7f9afa0f49c05b0 Mon Sep 17 00:00:00 2001 From: Jared Petersen Date: Fri, 3 Aug 2018 00:19:42 -0700 Subject: [PATCH 6/6] fixed snapshot test and revved patch version --- package-lock.json | 2 +- package.json | 2 +- src/heart/__snapshots__/index.test.js.snap | 16 +++++++++++----- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index b01828b..815b00c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "codeprinter", - "version": "1.0.0", + "version": "1.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 1d8c297..20e565e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "codeprinter", - "version": "1.0.0", + "version": "1.0.1", "private": true, "homepage": "http://jaredpetersen.github.io/codeprinter", "scripts": { diff --git a/src/heart/__snapshots__/index.test.js.snap b/src/heart/__snapshots__/index.test.js.snap index 3160246..d87192e 100644 --- a/src/heart/__snapshots__/index.test.js.snap +++ b/src/heart/__snapshots__/index.test.js.snap @@ -24,7 +24,8 @@ exports[`Heart renders correctly 1`] = `

- That's awesome! Let the developer know on + That's awesome! Let the developer know on + Twitter - , + , + buy him a cup of coffee - , or star the repository on + , or star the repository on +

- You can check out his other repositories on + You can check out his other repositories on + GitHub - or look at his résumé on + + or look at his résumé on +