From 2a21ac322849aef45bcd3108b229fa03d5c1080b Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Sun, 29 Jan 2023 21:58:19 +0000 Subject: [PATCH] add prettier-plugin-sort-imports --- .editorconfig | 10 + .jest/setup-test-env.ts | 10 +- .jest/testRender.ts | 2 +- .prettierrc | 14 +- README.md | 1 + gatsby-browser.tsx | 2 +- gatsby-config.ts | 8 +- gatsby-node.ts | 12 +- gatsby-ssr.tsx | 2 +- gatsby/createExif.ts | 6 +- gatsby/createMarkdownFields.ts | 6 +- gatsby/createPages.ts | 2 +- gatsby/sources.ts | 2 +- package-lock.json | 459 ++++++++++++++++++ package.json | 1 + scripts/new.ts | 6 +- src/components/Layout.tsx | 6 +- src/components/atoms/Changelog.test.tsx | 1 - src/components/atoms/Changelog.tsx | 10 +- src/components/atoms/Copy.test.tsx | 3 +- src/components/atoms/Copy.tsx | 2 +- src/components/atoms/Exif.test.tsx | 1 - src/components/atoms/Exif.tsx | 2 +- src/components/atoms/HeadMeta/SchemaOrg.tsx | 2 +- src/components/atoms/HeadMeta/index.tsx | 4 +- src/components/atoms/Icon.test.tsx | 1 - src/components/atoms/Icon.tsx | 39 +- src/components/atoms/Input.test.tsx | 1 - src/components/atoms/Input.tsx | 2 +- src/components/atoms/Typekit.tsx | 2 +- src/components/molecules/Menu.tsx | 2 +- src/components/molecules/Networks.test.tsx | 3 +- src/components/molecules/PostTeaser.test.tsx | 2 +- .../molecules/RelatedPosts.test.tsx | 2 +- src/components/molecules/RelatedPosts.tsx | 2 +- .../molecules/Search/SearchButton.tsx | 2 +- .../molecules/Search/SearchInput.tsx | 2 +- .../molecules/Search/SearchResults.tsx | 4 +- .../molecules/Search/SearchResultsEmpty.tsx | 2 +- src/components/molecules/Search/index.tsx | 6 +- src/components/molecules/ThemeSwitch.test.tsx | 2 +- src/components/molecules/ThemeSwitch.tsx | 4 +- src/components/molecules/Vcard.tsx | 2 +- .../molecules/Web3Donation/Alert.test.tsx | 1 - .../Web3Donation/Conversion.test.tsx | 1 - .../molecules/Web3Donation/Conversion.tsx | 4 +- .../Web3Donation/InputGroup.test.tsx | 3 +- .../molecules/Web3Donation/index.tsx | 10 +- src/components/organisms/Footer.tsx | 2 +- src/components/organisms/Header.test.tsx | 2 +- src/components/organisms/Header.tsx | 6 +- src/components/templates/Archive.test.tsx | 3 +- src/components/templates/Archive.tsx | 4 +- src/components/templates/Photos.test.tsx | 3 +- src/components/templates/Photos.tsx | 4 +- src/components/templates/Post/Actions.tsx | 2 +- src/components/templates/Post/Content.tsx | 2 +- src/components/templates/Post/LinkActions.tsx | 4 +- src/components/templates/Post/Meta.tsx | 4 +- src/components/templates/Post/Title.tsx | 2 +- src/components/templates/Post/index.test.tsx | 3 +- src/components/templates/Post/index.tsx | 16 +- src/helpers/rainbowkit.ts | 6 +- src/helpers/wrapPageElement.tsx | 2 +- src/hooks/useDarkMode.ts | 8 +- src/hooks/useSiteMetadata.ts | 2 +- src/pages/404.tsx | 2 +- src/pages/__tests__/index.test.tsx | 3 +- src/pages/__tests__/tags.test.tsx | 1 - src/pages/index.tsx | 2 +- src/pages/tags.tsx | 8 +- src/pages/thanks.tsx | 14 +- 72 files changed, 622 insertions(+), 156 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..ae10a5cc --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +# editorconfig.org +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.jest/setup-test-env.ts b/.jest/setup-test-env.ts index 46cea308..d80d873e 100644 --- a/.jest/setup-test-env.ts +++ b/.jest/setup-test-env.ts @@ -1,12 +1,12 @@ +import * as Gatsby from 'gatsby' import '@testing-library/jest-dom/extend-expect' +import avatar from './__fixtures__/avatar.json' +import github from './__fixtures__/github.json' +import meta from './__fixtures__/meta.json' +import posts from './__fixtures__/posts.json' import './__mocks__/matchMedia' -import * as Gatsby from 'gatsby' const useStaticQuery = jest.spyOn(Gatsby, 'useStaticQuery') -import meta from './__fixtures__/meta.json' -import avatar from './__fixtures__/avatar.json' -import posts from './__fixtures__/posts.json' -import github from './__fixtures__/github.json' beforeAll(() => { useStaticQuery.mockImplementation(() => ({ diff --git a/.jest/testRender.ts b/.jest/testRender.ts index 85342b85..041d0f68 100644 --- a/.jest/testRender.ts +++ b/.jest/testRender.ts @@ -1,5 +1,5 @@ -import { render } from '@testing-library/react' import { ReactElement } from 'react' +import { render } from '@testing-library/react' const testRender = (component: ReactElement): void => { it('renders without crashing', () => { diff --git a/.prettierrc b/.prettierrc index 338a8b9c..3fd3e7b4 100644 --- a/.prettierrc +++ b/.prettierrc @@ -2,5 +2,17 @@ "semi": false, "singleQuote": true, "trailingComma": "none", - "tabWidth": 2 + "tabWidth": 2, + "endOfLine": "lf", + "importOrder": [ + "^(react/(.*)$)|^(react$)", + "^(gatsby/(.*)$)|^(gatsby$)", + "", + "^[./]" + ], + "importOrderSeparation": false, + "importOrderSortSpecifiers": true, + "importOrderBuiltinModulesToTop": true, + "importOrderMergeDuplicateImports": true, + "importOrderCombineTypeAndValueImports": true } diff --git a/README.md b/README.md index ff3285fa..7b560652 100644 --- a/README.md +++ b/README.md @@ -143,6 +143,7 @@ All SVG assets under `src/images/` will be converted to React components with th ```jsx import { ReactComponent as Logo } from './components/svg/Logo' + ; ``` diff --git a/gatsby-browser.tsx b/gatsby-browser.tsx index 6dba1097..12ecb1af 100644 --- a/gatsby-browser.tsx +++ b/gatsby-browser.tsx @@ -1,7 +1,7 @@ import { GatsbyBrowser } from 'gatsby' import './src/global/global.css' import './src/global/imports.css' - import wrapPageElementWithLayout from './src/helpers/wrapPageElement' + export const wrapPageElement: GatsbyBrowser['wrapPageElement'] = wrapPageElementWithLayout diff --git a/gatsby-config.ts b/gatsby-config.ts index f3ef85c7..26745d9d 100644 --- a/gatsby-config.ts +++ b/gatsby-config.ts @@ -1,11 +1,9 @@ import type { GatsbyConfig } from 'gatsby' - -import siteConfig from './config' -import sources from './gatsby/sources' -import { feedContent } from './gatsby/feeds' - // required for gatsby-plugin-meta-redirect import 'regenerator-runtime/runtime' +import siteConfig from './config' +import { feedContent } from './gatsby/feeds' +import sources from './gatsby/sources' //import algolia from './gatsby/algolia' diff --git a/gatsby-node.ts b/gatsby-node.ts index aea59b61..b2e93eb0 100644 --- a/gatsby-node.ts +++ b/gatsby-node.ts @@ -1,14 +1,14 @@ -import { createMarkdownFields } from './gatsby/createMarkdownFields' +import type { GatsbyNode } from 'gatsby' import { createExif } from './gatsby/createExif' +import { createMarkdownFields } from './gatsby/createMarkdownFields' import { - generatePostPages, - generateTagPages, - generateRedirectPages, generateArchivePages, - generatePhotosPages + generatePhotosPages, + generatePostPages, + generateRedirectPages, + generateTagPages } from './gatsby/createPages' import { generateJsonFeed } from './gatsby/feeds' -import type { GatsbyNode } from 'gatsby' export const onCreateNode: GatsbyNode['onCreateNode'] = ({ node, diff --git a/gatsby-ssr.tsx b/gatsby-ssr.tsx index 182376df..7753a155 100644 --- a/gatsby-ssr.tsx +++ b/gatsby-ssr.tsx @@ -1,7 +1,7 @@ import React from 'react' import { GatsbySSR } from 'gatsby' -import wrapPageElementWithLayout from './src/helpers/wrapPageElement' import { UMAMI_SCRIPT_URL, UMAMI_WEBSITE_ID } from './src/helpers/umami' +import wrapPageElementWithLayout from './src/helpers/wrapPageElement' export const wrapPageElement: GatsbySSR['wrapPageElement'] = wrapPageElementWithLayout diff --git a/gatsby/createExif.ts b/gatsby/createExif.ts index 5b717894..9af11fb8 100644 --- a/gatsby/createExif.ts +++ b/gatsby/createExif.ts @@ -1,9 +1,9 @@ -import fs from 'fs' +import type { Actions, Node, NodePluginArgs } from 'gatsby' +import getCoordinates from 'dms2dec' import fastExif from 'fast-exif' import Fraction from 'fraction.js' -import getCoordinates from 'dms2dec' +import fs from 'fs' import iptc from 'node-iptc' -import type { Actions, NodePluginArgs, Node } from 'gatsby' export const createExif = async ( node: Node, diff --git a/gatsby/createMarkdownFields.ts b/gatsby/createMarkdownFields.ts index 953e20b9..d1fcf2f7 100644 --- a/gatsby/createMarkdownFields.ts +++ b/gatsby/createMarkdownFields.ts @@ -1,7 +1,7 @@ -import { parse } from 'path' -import { createFilePath } from 'gatsby-source-filesystem' -import config from '../config' import { Actions, Node, NodePluginArgs } from 'gatsby' +import { createFilePath } from 'gatsby-source-filesystem' +import { parse } from 'path' +import config from '../config' // Create slug, date & github file link for posts from file path values export function createMarkdownFields( diff --git a/gatsby/createPages.ts b/gatsby/createPages.ts index 6e93f427..99fd5aed 100644 --- a/gatsby/createPages.ts +++ b/gatsby/createPages.ts @@ -1,6 +1,6 @@ +import { Actions } from 'gatsby' import path from 'path' import config from '../config' -import { Actions } from 'gatsby' const postTemplate = path.resolve('src/components/templates/Post/index.tsx') const archiveTemplate = path.resolve('src/components/templates/Archive.tsx') diff --git a/gatsby/sources.ts b/gatsby/sources.ts index f07512b5..0b8836c3 100644 --- a/gatsby/sources.ts +++ b/gatsby/sources.ts @@ -1,5 +1,5 @@ -import path from 'path' import * as dotenv from 'dotenv' +import path from 'path' dotenv.config() diff --git a/package-lock.json b/package-lock.json index cf0c738b..cd3d2ece 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,6 +59,7 @@ "@svgr/webpack": "^6.5.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", + "@trivago/prettier-plugin-sort-imports": "^4.0.0", "@types/fs-extra": "^9.0.13", "@types/jest": "^29.2.6", "@types/lunr": "^2.3.4", @@ -6983,6 +6984,124 @@ "node": ">= 10" } }, + "node_modules/@trivago/prettier-plugin-sort-imports": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.0.0.tgz", + "integrity": "sha512-Tyuk5ZY4a0e2MNFLdluQO9F6d1awFQYXVVujEPFfvKPPXz8DADNHzz73NMhwCSXGSuGGZcA/rKOyZBrxVNMxaA==", + "dev": true, + "dependencies": { + "@babel/core": "7.17.8", + "@babel/generator": "7.17.7", + "@babel/parser": "7.18.9", + "@babel/traverse": "7.17.3", + "@babel/types": "7.17.0", + "javascript-natural-sort": "0.7.1", + "lodash": "4.17.21" + }, + "peerDependencies": { + "@vue/compiler-sfc": "3.x", + "prettier": "2.x" + } + }, + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/core": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/generator": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/parser": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", + "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -8107,6 +8226,101 @@ "resolve": "^1.10.0" } }, + "node_modules/@vue/compiler-core": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.45.tgz", + "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-core/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz", + "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==", + "dev": true, + "peer": true, + "dependencies": { + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz", + "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/compiler-dom": "3.2.45", + "@vue/compiler-ssr": "3.2.45", + "@vue/reactivity-transform": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz", + "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==", + "dev": true, + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz", + "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz", + "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==", + "dev": true, + "peer": true + }, "node_modules/@wagmi/chains": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/@wagmi/chains/-/chains-0.1.7.tgz", @@ -13675,6 +13889,13 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "peer": true + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -19415,6 +19636,12 @@ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==", "devOptional": true }, + "node_modules/javascript-natural-sort": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", + "dev": true + }, "node_modules/javascript-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", @@ -22317,6 +22544,16 @@ "lz-string": "bin/bin.js" } }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "peer": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -28852,6 +29089,14 @@ "node": ">=0.10.0" } }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true, + "peer": true + }, "node_modules/space-separated-tokens": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", @@ -36865,6 +37110,97 @@ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, + "@trivago/prettier-plugin-sort-imports": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.0.0.tgz", + "integrity": "sha512-Tyuk5ZY4a0e2MNFLdluQO9F6d1awFQYXVVujEPFfvKPPXz8DADNHzz73NMhwCSXGSuGGZcA/rKOyZBrxVNMxaA==", + "dev": true, + "requires": { + "@babel/core": "7.17.8", + "@babel/generator": "7.17.7", + "@babel/parser": "7.18.9", + "@babel/traverse": "7.17.3", + "@babel/types": "7.17.0", + "javascript-natural-sort": "0.7.1", + "lodash": "4.17.21" + }, + "dependencies": { + "@babel/core": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/parser": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", + "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", + "dev": true + }, + "@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + } + } + }, "@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -37790,6 +38126,99 @@ "resolve": "^1.10.0" } }, + "@vue/compiler-core": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.45.tgz", + "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==", + "dev": true, + "peer": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "peer": true + } + } + }, + "@vue/compiler-dom": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz", + "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==", + "dev": true, + "peer": true, + "requires": { + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz", + "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==", + "dev": true, + "peer": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/compiler-dom": "3.2.45", + "@vue/compiler-ssr": "3.2.45", + "@vue/reactivity-transform": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "peer": true + } + } + }, + "@vue/compiler-ssr": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz", + "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==", + "dev": true, + "peer": true, + "requires": { + "@vue/compiler-dom": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz", + "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==", + "dev": true, + "peer": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/shared": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz", + "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==", + "dev": true, + "peer": true + }, "@wagmi/chains": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/@wagmi/chains/-/chains-0.1.7.tgz", @@ -42045,6 +42474,13 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "peer": true + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -46278,6 +46714,12 @@ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==", "devOptional": true }, + "javascript-natural-sort": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", + "dev": true + }, "javascript-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", @@ -48499,6 +48941,16 @@ "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", "dev": true }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "peer": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -53117,6 +53569,13 @@ } } }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true, + "peer": true + }, "space-separated-tokens": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", diff --git a/package.json b/package.json index 7b831960..0fa94e74 100644 --- a/package.json +++ b/package.json @@ -77,6 +77,7 @@ "@svgr/webpack": "^6.5.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", + "@trivago/prettier-plugin-sort-imports": "^4.0.0", "@types/fs-extra": "^9.0.13", "@types/jest": "^29.2.6", "@types/lunr": "^2.3.4", diff --git a/scripts/new.ts b/scripts/new.ts index c72a84e2..bc4f8877 100644 --- a/scripts/new.ts +++ b/scripts/new.ts @@ -1,9 +1,9 @@ +import fastExif from 'fast-exif' import fs from 'fs-extra' +import iptc from 'node-iptc' +import ora from 'ora' import path from 'path' import slugify from 'slugify' -import ora from 'ora' -import fastExif from 'fast-exif' -import iptc from 'node-iptc' const templatePath = path.join(__dirname, 'new-article.md') const templatePathPhoto = path.join(__dirname, 'new-photo.md') diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index 017f10a6..4ab07349 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -1,8 +1,8 @@ import React, { ReactElement } from 'react' -import Typekit from './atoms/Typekit' -import Header from './organisms/Header' -import Footer from './organisms/Footer' import * as styles from './Layout.module.css' +import Typekit from './atoms/Typekit' +import Footer from './organisms/Footer' +import Header from './organisms/Header' export default function Layout({ children }: { children: any }): ReactElement { return ( diff --git a/src/components/atoms/Changelog.test.tsx b/src/components/atoms/Changelog.test.tsx index 00fe8e35..3eb8f489 100644 --- a/src/components/atoms/Changelog.test.tsx +++ b/src/components/atoms/Changelog.test.tsx @@ -1,6 +1,5 @@ import React from 'react' import { render } from '@testing-library/react' - import Changelog from './Changelog' describe('Changelog', () => { diff --git a/src/components/atoms/Changelog.tsx b/src/components/atoms/Changelog.tsx index 590036e3..772c324e 100644 --- a/src/components/atoms/Changelog.tsx +++ b/src/components/atoms/Changelog.tsx @@ -1,15 +1,15 @@ import React, { + Fragment, ReactElement, - useEffect, - useState, createElement, - Fragment + useEffect, + useState } from 'react' import { graphql, useStaticQuery } from 'gatsby' -import { unified } from 'unified' +import rehypeReact from 'rehype-react' import remarkParse from 'remark-parse' import remarkRehype from 'remark-rehype' -import rehypeReact from 'rehype-react' +import { unified } from 'unified' import * as styles from './Changelog.module.css' export function PureChangelog({ diff --git a/src/components/atoms/Copy.test.tsx b/src/components/atoms/Copy.test.tsx index 5bac65d1..f99dfb94 100644 --- a/src/components/atoms/Copy.test.tsx +++ b/src/components/atoms/Copy.test.tsx @@ -1,6 +1,5 @@ import React from 'react' -import { render, screen, fireEvent } from '@testing-library/react' - +import { fireEvent, render, screen } from '@testing-library/react' import Copy from './Copy' describe('Copy', () => { diff --git a/src/components/atoms/Copy.tsx b/src/components/atoms/Copy.tsx index 75743f83..a021d3fb 100644 --- a/src/components/atoms/Copy.tsx +++ b/src/components/atoms/Copy.tsx @@ -1,7 +1,7 @@ import React, { ReactElement } from 'react' +import Clipboard from 'react-clipboard.js' import * as styles from './Copy.module.css' import Icon from './Icon' -import Clipboard from 'react-clipboard.js' const onCopySuccess = (e: any) => { e.trigger.classList.add(styles.copied) diff --git a/src/components/atoms/Exif.test.tsx b/src/components/atoms/Exif.test.tsx index 822554f8..b3cd560b 100644 --- a/src/components/atoms/Exif.test.tsx +++ b/src/components/atoms/Exif.test.tsx @@ -1,6 +1,5 @@ import React from 'react' import { render } from '@testing-library/react' - import Exif from './Exif' const exif: Partial = { diff --git a/src/components/atoms/Exif.tsx b/src/components/atoms/Exif.tsx index 17a69c99..7d4645d6 100644 --- a/src/components/atoms/Exif.tsx +++ b/src/components/atoms/Exif.tsx @@ -1,6 +1,6 @@ import React, { ReactElement } from 'react' -import ExifMap from './ExifMap' import * as styles from './Exif.module.css' +import ExifMap from './ExifMap' import Icon from './Icon' const ExifData = ({ diff --git a/src/components/atoms/HeadMeta/SchemaOrg.tsx b/src/components/atoms/HeadMeta/SchemaOrg.tsx index 2b11e50f..f0a395f4 100644 --- a/src/components/atoms/HeadMeta/SchemaOrg.tsx +++ b/src/components/atoms/HeadMeta/SchemaOrg.tsx @@ -1,5 +1,5 @@ -import { ImageDataLike } from 'gatsby-plugin-image' import React, { ReactElement } from 'react' +import { ImageDataLike } from 'gatsby-plugin-image' import { useSiteMetadata } from '../../../hooks/useSiteMetadata' type SchemaOrgProps = { diff --git a/src/components/atoms/HeadMeta/index.tsx b/src/components/atoms/HeadMeta/index.tsx index a0e4f244..a5a1eae5 100644 --- a/src/components/atoms/HeadMeta/index.tsx +++ b/src/components/atoms/HeadMeta/index.tsx @@ -1,8 +1,8 @@ import React, { ReactElement } from 'react' import { graphql, useStaticQuery } from 'gatsby' -import { getSrc, ImageDataLike } from 'gatsby-plugin-image' -import { useSiteMetadata } from '../../../hooks/useSiteMetadata' +import { ImageDataLike, getSrc } from 'gatsby-plugin-image' import useDarkMode from '../../../hooks/useDarkMode' +import { useSiteMetadata } from '../../../hooks/useSiteMetadata' const query = graphql` query Logo { diff --git a/src/components/atoms/Icon.test.tsx b/src/components/atoms/Icon.test.tsx index bfbfd93c..7e1a9d3c 100644 --- a/src/components/atoms/Icon.test.tsx +++ b/src/components/atoms/Icon.test.tsx @@ -1,6 +1,5 @@ import React from 'react' import { render } from '@testing-library/react' - import Icon from './Icon' describe('Icon', () => { diff --git a/src/components/atoms/Icon.tsx b/src/components/atoms/Icon.tsx index b3b7c97b..267de3d4 100644 --- a/src/components/atoms/Icon.tsx +++ b/src/components/atoms/Icon.tsx @@ -1,33 +1,32 @@ import React, { FunctionComponent, ReactElement } from 'react' - // https://featherstyles.com // import * as Feather from '@kremalicious/react-feather' import { - ArrowDownCircle, - Edit, - GitHub, - Twitter, - Rss, - Sun, - Moon, - Compass, - X, - Copy, - Search, - ExternalLink, - Link, - ChevronRight, - ChevronLeft, - Camera, Aperture, + ArrowDownCircle, + Camera, + ChevronLeft, + ChevronRight, + Compass, + Copy, + Crosshair, + Edit, + ExternalLink, + GitHub, + Link, Maximize, - Crosshair + Moon, + Rss, + Search, + Sun, + Twitter, + X } from 'react-feather' +import { ReactComponent as Bitcoin } from '../../images/bitcoin.svg' // custom icons import { ReactComponent as Jsonfeed } from '../../images/jsonfeed.svg' -import { ReactComponent as Bitcoin } from '../../images/bitcoin.svg' -import { ReactComponent as Stopwatch } from '../../images/stopwatch.svg' import { ReactComponent as Mastodon } from '../../images/mastodon.svg' +import { ReactComponent as Stopwatch } from '../../images/stopwatch.svg' import * as styles from './Icon.module.css' const components: { diff --git a/src/components/atoms/Input.test.tsx b/src/components/atoms/Input.test.tsx index 2a388ade..78299d65 100644 --- a/src/components/atoms/Input.test.tsx +++ b/src/components/atoms/Input.test.tsx @@ -1,7 +1,6 @@ import React from 'react' // import { render } from '@testing-library/react' import testRender from '../../../.jest/testRender' - import Input from './Input' describe('Input', () => { diff --git a/src/components/atoms/Input.tsx b/src/components/atoms/Input.tsx index 938f0e5f..6504b585 100644 --- a/src/components/atoms/Input.tsx +++ b/src/components/atoms/Input.tsx @@ -1,4 +1,4 @@ -import React, { ReactElement, InputHTMLAttributes } from 'react' +import React, { InputHTMLAttributes, ReactElement } from 'react' import * as styles from './Input.module.css' export default function Input({ diff --git a/src/components/atoms/Typekit.tsx b/src/components/atoms/Typekit.tsx index 4246d2e9..6d8de3a9 100644 --- a/src/components/atoms/Typekit.tsx +++ b/src/components/atoms/Typekit.tsx @@ -1,5 +1,5 @@ -import { Script } from 'gatsby' import React from 'react' +import { Script } from 'gatsby' const script = ` (function(d) { diff --git a/src/components/molecules/Menu.tsx b/src/components/molecules/Menu.tsx index 0eed5c56..c38d69f0 100644 --- a/src/components/molecules/Menu.tsx +++ b/src/components/molecules/Menu.tsx @@ -1,8 +1,8 @@ import React, { ReactElement, useEffect, useState } from 'react' import { Link } from 'gatsby' +import { useSiteMetadata } from '../../hooks/useSiteMetadata' import Hamburger from '../atoms/Hamburger' import * as styles from './Menu.module.css' -import { useSiteMetadata } from '../../hooks/useSiteMetadata' export default function Menu(): ReactElement { const [menuOpen, setMenuOpen] = useState(false) diff --git a/src/components/molecules/Networks.test.tsx b/src/components/molecules/Networks.test.tsx index 79c55ca1..18b8de77 100644 --- a/src/components/molecules/Networks.test.tsx +++ b/src/components/molecules/Networks.test.tsx @@ -1,8 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import Networks from './Networks' - import meta from '../../../.jest/__fixtures__/meta.json' +import Networks from './Networks' const { author, rss, jsonfeed } = meta.site.siteMetadata const { twitter, github } = author diff --git a/src/components/molecules/PostTeaser.test.tsx b/src/components/molecules/PostTeaser.test.tsx index 633da16c..e3d400fc 100644 --- a/src/components/molecules/PostTeaser.test.tsx +++ b/src/components/molecules/PostTeaser.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import PostTeaser from './PostTeaser' import post from '../../../.jest/__fixtures__/post.json' +import PostTeaser from './PostTeaser' describe('PostTeaser', () => { it('renders correctly', () => { diff --git a/src/components/molecules/RelatedPosts.test.tsx b/src/components/molecules/RelatedPosts.test.tsx index 0ff96ff8..5260e426 100644 --- a/src/components/molecules/RelatedPosts.test.tsx +++ b/src/components/molecules/RelatedPosts.test.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { render, fireEvent, screen } from '@testing-library/react' +import { fireEvent, render, screen } from '@testing-library/react' import RelatedPosts from './RelatedPosts' describe('RelatedPosts', () => { diff --git a/src/components/molecules/RelatedPosts.tsx b/src/components/molecules/RelatedPosts.tsx index 4034921b..f0d00a60 100644 --- a/src/components/molecules/RelatedPosts.tsx +++ b/src/components/molecules/RelatedPosts.tsx @@ -1,8 +1,8 @@ import React, { ReactElement, useState } from 'react' import { graphql, useStaticQuery } from 'gatsby' +import { PhotoThumb } from '../templates/Photos' import PostTeaser from './PostTeaser' import * as styles from './RelatedPosts.module.css' -import { PhotoThumb } from '../templates/Photos' const query = graphql` query RelatedPosts { diff --git a/src/components/molecules/Search/SearchButton.tsx b/src/components/molecules/Search/SearchButton.tsx index 98ea0631..541265f9 100644 --- a/src/components/molecules/Search/SearchButton.tsx +++ b/src/components/molecules/Search/SearchButton.tsx @@ -1,6 +1,6 @@ import React, { ReactElement } from 'react' -import * as styles from './SearchButton.module.css' import Icon from '../../atoms/Icon' +import * as styles from './SearchButton.module.css' const SearchButton = ({ onClick }: { onClick: () => void }): ReactElement => (