diff --git a/jest.config.js b/jest.config.js
index 8684337..5e7dd45 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -6,7 +6,7 @@ module.exports = {
// Coverage
collectCoverage: true,
- collectCoverageFrom: ['src/**/*.{ts,tsx}', '!src/**/*.test.{ts,tsx}', '!src/gatsby-types.d.ts'],
+ collectCoverageFrom: ['src/**/*.{ts,tsx}', '!src/**/*.types.{ts,tsx}', '!src/**/*.test.{ts,tsx}', '!src/gatsby-types.d.ts'],
coverageDirectory: 'reports/coverage',
coveragePathIgnorePatterns: ['/node_modules/'],
coverageProvider: 'babel',
diff --git a/src/components/dark-mode-switch/dark-mode-switch.tsx b/src/components/dark-mode-switch/dark-mode-switch.tsx
new file mode 100644
index 0000000..4518a5d
--- /dev/null
+++ b/src/components/dark-mode-switch/dark-mode-switch.tsx
@@ -0,0 +1,31 @@
+import React, { useCallback, useState } from 'react';
+import type { FunctionComponent, ReactElement } from 'react';
+
+import { FiSun, FiMoon } from 'react-icons/fi';
+
+const DarkModeSwitch: FunctionComponent = (): ReactElement => {
+ const [darkMode, setDarkMode] = useState(false);
+
+ const toggleDarkMode = useCallback(() => {
+ setDarkMode(!darkMode);
+ document.documentElement.classList.toggle('dark');
+ }, [darkMode]);
+
+ return (
+ <>
+ {darkMode === true ? (
+
+ ) : (
+
+ )}
+ >
+ );
+};
+
+export { DarkModeSwitch };
diff --git a/src/components/document-head/document-head.tsx b/src/components/document-head/document-head.tsx
new file mode 100644
index 0000000..439ccad
--- /dev/null
+++ b/src/components/document-head/document-head.tsx
@@ -0,0 +1,24 @@
+import React from 'react';
+import type { FunctionComponent, PropsWithChildren } from 'react';
+
+const DocumentHead: FunctionComponent = ({ children }) => {
+ return (
+ <>
+
+
+
+
+
+
+ {children}
+ >
+ );
+};
+
+export { DocumentHead };
diff --git a/src/components/seo/__snapshots__/seo-blog-posting.test.tsx.snap b/src/components/document-head/seo/__snapshots__/seo-blog-posting.test.tsx.snap
similarity index 96%
rename from src/components/seo/__snapshots__/seo-blog-posting.test.tsx.snap
rename to src/components/document-head/seo/__snapshots__/seo-blog-posting.test.tsx.snap
index afcfb5d..9edcd87 100644
--- a/src/components/seo/__snapshots__/seo-blog-posting.test.tsx.snap
+++ b/src/components/document-head/seo/__snapshots__/seo-blog-posting.test.tsx.snap
@@ -2,16 +2,9 @@
exports[` should render 1`] = `
[
- ,
Hosting a static website on Amazon S3
,
- ,
should render 1`] = `
[
-