From 1e7c5e0dde54cc3bc6e056b4f9c2b86540b7e6b9 Mon Sep 17 00:00:00 2001 From: Saleh Abdel Motaal Date: Thu, 7 Nov 2019 06:48:47 -0500 Subject: [PATCH 01/11] refactor: Swap to @smotaal.io/dark-mode-controller NPM > **Note**: This commit squashed earlier attempts to use GitHub Pakcage Registery since it required an authority token. --- .npmrc | 3 + .nvmrc | 1 - package.json | 1 + src/components/controls.tsx | 14 +- src/components/header.tsx | 31 ++-- src/components/layout.tsx | 9 +- src/util/DarkModeController.js | 161 ------------------ src/util/darkModeController.ts | 15 ++ .../__snapshots__/header.test.tsx.snap | 1 - yarn.lock | 5 + 10 files changed, 48 insertions(+), 193 deletions(-) create mode 100644 .npmrc delete mode 100644 .nvmrc delete mode 100644 src/util/DarkModeController.js create mode 100644 src/util/darkModeController.ts diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000000..dbfc35fec2 --- /dev/null +++ b/.npmrc @@ -0,0 +1,3 @@ +always-auth=true +registry=https://npm.pkg.github.com/smotaal/ +//npm.pkg.github.com/smotaal/:_authToken=a7653bd26ff93879e33d4cfb4a5dc9eb831617fe diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index 3f6c11fc18..0000000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v8.12.0 \ No newline at end of file diff --git a/package.json b/package.json index 8ad059edd6..59d7e4d3e6 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "author": "Adam Miller ", "private": true, "dependencies": { + "@smotaal.io/dark-mode-controller": "*", "@emotion/core": "^10.0.7", "@types/react-helmet": "^5.0.7", "dotenv": "^6.0.0", diff --git a/src/components/controls.tsx b/src/components/controls.tsx index 49b49924b1..07c7715bae 100644 --- a/src/components/controls.tsx +++ b/src/components/controls.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { css } from '@emotion/core'; -import DarkModeController from '../util/DarkModeController'; +import darkModeController from '../util/darkModeController'; const controlsStyles = { header: css/* scss */ ` @@ -45,14 +45,12 @@ const controlsStyles = { interface Props { lightModeIcon?: string; darkModeIcon?: string; - controller?: DarkModeController; } const Controls = ({ lightModeIcon = 'wb_sunny', darkModeIcon = 'nights_stay', - controller = new DarkModeController(), -}: Props) => ( +}: Props = {}) => (
@@ -61,11 +59,9 @@ const Controls = ({ css={controlsStyles.button} id="contrast" title="Dark/Light" - onPointerDown={(): void => { - controller.onPointerDown(); - }} - onPointerUp={(): void => { - controller.onPointerUp(); + {...{ + onPointerDown: darkModeController.handleEvent, + onPointerUp: darkModeController.handleEvent, }} > Toggle Dark Mode diff --git a/src/components/header.tsx b/src/components/header.tsx index 9f3b01197b..2baf24f4ae 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -2,7 +2,7 @@ import { Link } from 'gatsby'; import React from 'react'; import logoLight from '../images/logos/nodejs-logo-light-mode.svg'; import logoDark from '../images/logos/nodejs-logo-dark-mode.svg'; -import DarkModeController from '../util/DarkModeController'; +import darkModeController from '../util/darkModeController'; const activeStyleTab = { fontWeight: 'var(--font-weight-semibold)', @@ -10,11 +10,7 @@ const activeStyleTab = { borderBottom: 'var(--space-04) inset var(--color-text-accent)', }; -interface Props { - darkModeController?: DarkModeController; -} - -const Header = ({ darkModeController }: Props) => ( +const Header = () => (
-); - -export default Controls; From 23401e0621312f6dfc0c7aff8c6b067d07bf2ea8 Mon Sep 17 00:00:00 2001 From: Saleh Abdel Motaal Date: Sat, 29 Feb 2020 15:49:13 -0500 Subject: [PATCH 08/11] refactor: Optionally cascade darkModeController as a property --- src/components/header.tsx | 20 +++++++------------- src/components/layout.tsx | 8 +++----- src/util/darkModeController.ts | 2 +- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/src/components/header.tsx b/src/components/header.tsx index 5669bfc578..3266863125 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -2,7 +2,7 @@ import { Link } from 'gatsby'; import React from 'react'; import logoLight from '../images/logos/nodejs-logo-light-mode.svg'; import logoDark from '../images/logos/nodejs-logo-dark-mode.svg'; -import darkModeController from '../util/darkModeController'; +import defaultDarkModeController from '../util/darkModeController'; const activeStyleTab = { fontWeight: 'var(--font-weight-semibold)', @@ -11,10 +11,12 @@ const activeStyleTab = { }; interface Props { - darkModeController?: DarkModeController; + darkModeController?: typeof defaultDarkModeController; } -const Header = ({ darkModeController }: Props): JSX.Element => ( +const Header = ({ + darkModeController = defaultDarkModeController, +}: Props): JSX.Element => (