mirror of
https://github.com/kremalicious/portfolio.git
synced 2024-12-22 09:13:19 +01:00
add prettier-plugin-sort-imports
This commit is contained in:
parent
539eb20359
commit
730174f34c
13
.prettierrc
13
.prettierrc
@ -2,5 +2,16 @@
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "none",
|
||||
"tabWidth": 2
|
||||
"tabWidth": 2,
|
||||
"importOrder": [
|
||||
"^(react/(.*)$)|^(react$)",
|
||||
"^(next/(.*)$)|^(next$)",
|
||||
"<THIRD_PARTY_MODULES>",
|
||||
"^[./]"
|
||||
],
|
||||
"importOrderSeparation": false,
|
||||
"importOrderSortSpecifiers": true,
|
||||
"importOrderBuiltinModulesToTop": true,
|
||||
"importOrderMergeDuplicateImports": true,
|
||||
"importOrderCombineTypeAndValueImports": true
|
||||
}
|
||||
|
225
package-lock.json
generated
225
package-lock.json
generated
@ -28,6 +28,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/jest": "^29.2.6",
|
||||
"@types/js-yaml": "^4.0.5",
|
||||
"@types/sharp": "^0.31.1",
|
||||
@ -3822,6 +3823,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",
|
||||
@ -4245,6 +4364,81 @@
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
}
|
||||
},
|
||||
"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-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-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/@yaireo/relative-time": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@yaireo/relative-time/-/relative-time-1.0.2.tgz",
|
||||
@ -6474,6 +6668,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",
|
||||
@ -7888,6 +8089,12 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"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/jest": {
|
||||
"version": "29.3.1",
|
||||
"resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz",
|
||||
@ -9386,6 +9593,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",
|
||||
@ -12191,6 +12408,14 @@
|
||||
"source-map": "^0.6.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": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz",
|
||||
|
@ -43,6 +43,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/jest": "^29.2.6",
|
||||
"@types/js-yaml": "^4.0.5",
|
||||
"@types/sharp": "^0.31.1",
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { useEffect, useState, MouseEvent } from 'react'
|
||||
import { MouseEvent, useEffect, useState } from 'react'
|
||||
import Link from 'next/link'
|
||||
import Button from '../Button'
|
||||
import styles from './index.module.css'
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { useReducedMotion, LazyMotion, domAnimation, m } from 'framer-motion'
|
||||
import { moveInBottom, getAnimationProps } from '../Transitions'
|
||||
import styles from './index.module.css'
|
||||
import { LazyMotion, domAnimation, m, useReducedMotion } from 'framer-motion'
|
||||
import meta from '../../../_content/meta.json'
|
||||
import { getAnimationProps, moveInBottom } from '../Transitions'
|
||||
import styles from './index.module.css'
|
||||
|
||||
export default function Availability() {
|
||||
const shouldReduceMotion = useReducedMotion()
|
||||
|
@ -1,9 +1,9 @@
|
||||
import LogoUnit from '../LogoUnit'
|
||||
import Networks from '../Networks'
|
||||
import styles from './index.module.css'
|
||||
import meta from '../../../_content/meta.json'
|
||||
import resume from '../../../_content/resume.json'
|
||||
import LogoUnit from '../LogoUnit'
|
||||
import Networks from '../Networks'
|
||||
import Vcard from '../Vcard'
|
||||
import styles from './index.module.css'
|
||||
|
||||
export default function Footer() {
|
||||
const year = new Date().getFullYear()
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { render, screen, act } from '@testing-library/react'
|
||||
import { act, render, screen } from '@testing-library/react'
|
||||
import Header from '.'
|
||||
|
||||
describe('Header', () => {
|
||||
|
@ -1,9 +1,9 @@
|
||||
import Networks from '../Networks'
|
||||
import { Suspense } from 'react'
|
||||
import dynamic from 'next/dynamic'
|
||||
import Availability from '../Availability'
|
||||
import LogoUnit from '../LogoUnit'
|
||||
import Networks from '../Networks'
|
||||
import styles from './index.module.css'
|
||||
import dynamic from 'next/dynamic'
|
||||
import { Suspense } from 'react'
|
||||
|
||||
const DynamicLocation = dynamic(() => import('../Location'), {
|
||||
suspense: true
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { render } from '@testing-library/react'
|
||||
|
||||
import Icon from '.'
|
||||
|
||||
describe('Icon', () => {
|
||||
|
@ -2,28 +2,28 @@
|
||||
// import * as Feather from 'react-feather'
|
||||
import {
|
||||
ArrowDownCircle,
|
||||
Edit,
|
||||
GitHub,
|
||||
Twitter,
|
||||
Rss,
|
||||
Sun,
|
||||
Moon,
|
||||
Compass,
|
||||
FileText,
|
||||
Key,
|
||||
Image,
|
||||
Mail,
|
||||
MapPin,
|
||||
Globe,
|
||||
Briefcase,
|
||||
Award,
|
||||
BookOpen,
|
||||
Star,
|
||||
Info,
|
||||
Dribbble,
|
||||
ChevronDown,
|
||||
Briefcase,
|
||||
Check,
|
||||
Monitor
|
||||
ChevronDown,
|
||||
Compass,
|
||||
Dribbble,
|
||||
Edit,
|
||||
FileText,
|
||||
GitHub,
|
||||
Globe,
|
||||
Image,
|
||||
Info,
|
||||
Key,
|
||||
Mail,
|
||||
MapPin,
|
||||
Monitor,
|
||||
Moon,
|
||||
Rss,
|
||||
Star,
|
||||
Sun,
|
||||
Twitter
|
||||
} from 'react-feather'
|
||||
import Mastodon from '../../images/mastodon.svg'
|
||||
import styles from './index.module.css'
|
||||
|
@ -1,9 +1,9 @@
|
||||
import { LazyMotion, domAnimation, m, useReducedMotion } from 'framer-motion'
|
||||
import { getAnimationProps, moveInTop } from '../Transitions'
|
||||
import styles from './index.module.css'
|
||||
import { useLocation } from '../../hooks/useLocation'
|
||||
import RelativeTime from '@yaireo/relative-time'
|
||||
import { LazyMotion, domAnimation, m, useReducedMotion } from 'framer-motion'
|
||||
import { useLocation } from '../../hooks/useLocation'
|
||||
import { getAnimationProps, moveInTop } from '../Transitions'
|
||||
import { Flag } from './Flag'
|
||||
import styles from './index.module.css'
|
||||
|
||||
export default function Location() {
|
||||
const { now, next } = useLocation()
|
||||
|
@ -1,8 +1,8 @@
|
||||
import Link from 'next/link'
|
||||
import { useRouter } from 'next/router'
|
||||
import resume from '../../../_content/resume.json'
|
||||
import Logo from '../../images/logo.svg'
|
||||
import styles from './index.module.css'
|
||||
import resume from '../../../_content/resume.json'
|
||||
import { useRouter } from 'next/router'
|
||||
|
||||
type Props = {
|
||||
small?: boolean
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { render, act } from '@testing-library/react'
|
||||
import { act, render } from '@testing-library/react'
|
||||
import Meta from '.'
|
||||
|
||||
describe('Meta', () => {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { LazyMotion, domAnimation, m } from 'framer-motion'
|
||||
import Icon from '../Icon'
|
||||
import styles from './index.module.css'
|
||||
import { LazyMotion, m, domAnimation } from 'framer-motion'
|
||||
import { moveInTop } from '../Transitions'
|
||||
import styles from './index.module.css'
|
||||
|
||||
export const NetworkLink = ({ name, url }: { name: string; url: string }) => {
|
||||
const linkClasses =
|
||||
|
@ -1,8 +1,8 @@
|
||||
import styles from './index.module.css'
|
||||
import resume from '../../../_content/resume.json'
|
||||
import { LazyMotion, domAnimation, m, useReducedMotion } from 'framer-motion'
|
||||
import resume from '../../../_content/resume.json'
|
||||
import { getAnimationProps } from '../Transitions'
|
||||
import { NetworkLink } from './NetworkLink'
|
||||
import styles from './index.module.css'
|
||||
|
||||
type Props = {
|
||||
label: string
|
||||
|
@ -1,11 +1,11 @@
|
||||
import ProjectTechstack from './Techstack'
|
||||
import ProjectLinks from './Links'
|
||||
import { LazyMotion, domAnimation, m, useReducedMotion } from 'framer-motion'
|
||||
import type ImageType from '../../interfaces/image'
|
||||
import type ProjectType from '../../interfaces/project'
|
||||
import ProjectImage from '../ProjectImage'
|
||||
import styles from './index.module.css'
|
||||
import { LazyMotion, domAnimation, m, useReducedMotion } from 'framer-motion'
|
||||
import { getAnimationProps, moveInBottom, moveInTop } from '../Transitions'
|
||||
import ProjectLinks from './Links'
|
||||
import ProjectTechstack from './Techstack'
|
||||
import styles from './index.module.css'
|
||||
|
||||
const containerVariants = {
|
||||
enter: {
|
||||
|
@ -1,12 +1,12 @@
|
||||
import { useEffect, useState } from 'react'
|
||||
import Image from 'next/image'
|
||||
import {
|
||||
domAnimation,
|
||||
LazyMotion,
|
||||
domAnimation,
|
||||
m,
|
||||
useAnimation,
|
||||
useReducedMotion
|
||||
} from 'framer-motion'
|
||||
import Image from 'next/image'
|
||||
import { useState, useEffect } from 'react'
|
||||
import ImageType from '../../interfaces/image'
|
||||
import { getAnimationProps } from '../Transitions'
|
||||
import styles from './index.module.css'
|
||||
|
@ -1,8 +1,8 @@
|
||||
import { forwardRef, ForwardedRef } from 'react'
|
||||
import { ForwardedRef, forwardRef } from 'react'
|
||||
import Link from 'next/link'
|
||||
import ProjectType from '../../interfaces/project'
|
||||
import ProjectImage from '../ProjectImage'
|
||||
import styles from './index.module.css'
|
||||
import ProjectType from '../../interfaces/project'
|
||||
|
||||
export const Project = forwardRef(
|
||||
(
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { useEffect, createRef } from 'react'
|
||||
import styles from './index.module.css'
|
||||
import { createRef, useEffect } from 'react'
|
||||
import ProjectType from '../../interfaces/project'
|
||||
import { Project } from './Project'
|
||||
import styles from './index.module.css'
|
||||
|
||||
type Props = {
|
||||
projects: { slug: string }[]
|
||||
|
@ -1,7 +1,7 @@
|
||||
import Link from 'next/link'
|
||||
import styles from './index.module.css'
|
||||
import ProjectImage from '../ProjectImage'
|
||||
import ImageType from '../../interfaces/image'
|
||||
import ProjectImage from '../ProjectImage'
|
||||
import styles from './index.module.css'
|
||||
|
||||
type Props = {
|
||||
title: string
|
||||
|
@ -1,5 +1,5 @@
|
||||
import ProjectPreview from '../ProjectPreview'
|
||||
import ProjectType from '../../interfaces/project'
|
||||
import ProjectPreview from '../ProjectPreview'
|
||||
import styles from './index.module.css'
|
||||
|
||||
type Props = {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { render } from '@testing-library/react'
|
||||
import Repository from '../Repository'
|
||||
import repos from '../../../tests/__fixtures__/repos.json'
|
||||
import Repo from '../../interfaces/repo'
|
||||
import Repository from '../Repository'
|
||||
|
||||
describe('Repository', () => {
|
||||
it('renders correctly', () => {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import Icon from '../Icon'
|
||||
import * as Select from '@radix-ui/react-select'
|
||||
import { getIconName } from './index'
|
||||
import Icon from '../Icon'
|
||||
import styles from './Item.module.css'
|
||||
import { getIconName } from './index'
|
||||
|
||||
export function Item({ theme }: { theme: string }) {
|
||||
return (
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { render, fireEvent, cleanup, waitFor } from '@testing-library/react'
|
||||
import { cleanup, fireEvent, render, waitFor } from '@testing-library/react'
|
||||
import ThemeSwitch from '.'
|
||||
|
||||
describe('ThemeSwitch', () => {
|
||||
|
@ -1,10 +1,10 @@
|
||||
import Icon from '../Icon'
|
||||
import styles from './index.module.css'
|
||||
import { useEffect, useState } from 'react'
|
||||
import Head from 'next/head'
|
||||
import * as Select from '@radix-ui/react-select'
|
||||
import { useTheme } from 'next-themes'
|
||||
import Head from 'next/head'
|
||||
import { useState, useEffect } from 'react'
|
||||
import Icon from '../Icon'
|
||||
import { Item } from './Item'
|
||||
import styles from './index.module.css'
|
||||
|
||||
export function getIconName(theme: string) {
|
||||
return theme === 'light' ? 'Sun' : theme === 'dark' ? 'Moon' : 'Monitor'
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { constructVcard, toDataURL, init } from './_utils'
|
||||
import meta from '../../../_content/meta.json'
|
||||
import resume from '../../../_content/resume.json'
|
||||
import { constructVcard, init, toDataURL } from './_utils'
|
||||
|
||||
const metaMock = {
|
||||
...meta,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { render, fireEvent, waitFor, screen } from '@testing-library/react'
|
||||
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
|
||||
import Vcard from '.'
|
||||
|
||||
describe('Vcard', () => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { render, screen, act } from '@testing-library/react'
|
||||
import { act, render, screen } from '@testing-library/react'
|
||||
import Site from '.'
|
||||
|
||||
describe('Site', () => {
|
||||
|
@ -1,13 +1,13 @@
|
||||
import { useRouter } from 'next/router'
|
||||
import ThemeSwitch from '../../components/ThemeSwitch'
|
||||
import Header from '../../components/Header'
|
||||
import Footer from '../../components/Footer'
|
||||
import MetaFavicon from '../../components/Meta/Favicon'
|
||||
import meta from '../../../_content/meta.json'
|
||||
import HostnameCheck from '../../components/HostnameCheck'
|
||||
import styles from './index.module.css'
|
||||
import Script from 'next/script'
|
||||
import meta from '../../../_content/meta.json'
|
||||
import Footer from '../../components/Footer'
|
||||
import Header from '../../components/Header'
|
||||
import HostnameCheck from '../../components/HostnameCheck'
|
||||
import MetaFavicon from '../../components/Meta/Favicon'
|
||||
import ThemeSwitch from '../../components/ThemeSwitch'
|
||||
import { UMAMI_SCRIPT_URL, UMAMI_WEBSITE_ID } from '../../lib/umami'
|
||||
import styles from './index.module.css'
|
||||
|
||||
const isProduction = process.env.NODE_ENV === 'production'
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import fs from 'fs'
|
||||
import { join } from 'path'
|
||||
import yaml from 'js-yaml'
|
||||
import { join } from 'path'
|
||||
import sharp from 'sharp'
|
||||
import type ImageType from '../interfaces/image'
|
||||
import type ProjectType from '../interfaces/project'
|
||||
|
@ -1,3 +1,6 @@
|
||||
import data from '../../_content/repos.json'
|
||||
import Repo from '../interfaces/repo'
|
||||
|
||||
//
|
||||
// Get GitHub repos
|
||||
//
|
||||
@ -5,9 +8,6 @@ if (!process.env.GITHUB_TOKEN) {
|
||||
throw new Error('Missing GitHub environment variable')
|
||||
}
|
||||
|
||||
import data from '../../_content/repos.json'
|
||||
import Repo from '../interfaces/repo'
|
||||
|
||||
const gitHubConfig = {
|
||||
headers: {
|
||||
'User-Agent': 'kremalicious/portfolio',
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { remark } from 'remark'
|
||||
import html from 'remark-html'
|
||||
import gfm from 'remark-gfm'
|
||||
import html from 'remark-html'
|
||||
|
||||
export async function markdownToHtml(markdown: string) {
|
||||
const result = await remark().use(gfm).use(html).process(markdown)
|
||||
|
@ -1,14 +1,14 @@
|
||||
import { GetStaticPaths, GetStaticProps } from 'next/types'
|
||||
import resume from '../../_content/resume.json'
|
||||
import Project from '../components/Project'
|
||||
import ProjectNav from '../components/ProjectNav'
|
||||
import type ProjectType from '../interfaces/project'
|
||||
import Page from '../layouts/Page'
|
||||
import {
|
||||
getProjectBySlug,
|
||||
getAllProjects,
|
||||
getProjectBySlug,
|
||||
getProjectSlugs
|
||||
} from '../lib/content'
|
||||
import type ProjectType from '../interfaces/project'
|
||||
import Project from '../components/Project'
|
||||
import resume from '../../_content/resume.json'
|
||||
import ProjectNav from '../components/ProjectNav'
|
||||
import Page from '../layouts/Page'
|
||||
|
||||
type Props = {
|
||||
project: ProjectType
|
||||
|
@ -1,7 +1,7 @@
|
||||
import type { AppProps } from 'next/app'
|
||||
import '../styles/global.css'
|
||||
import Site from '../layouts/Site'
|
||||
import { ThemeProvider } from 'next-themes'
|
||||
import Site from '../layouts/Site'
|
||||
import '../styles/global.css'
|
||||
|
||||
export default function MyApp({ Component, pageProps, router }: AppProps) {
|
||||
return (
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Html, Head, Main, NextScript } from 'next/document'
|
||||
import { Head, Html, Main, NextScript } from 'next/document'
|
||||
import Typekit from '../components/Typekit'
|
||||
|
||||
export default function Document() {
|
||||
|
@ -1,13 +1,13 @@
|
||||
import { getAllProjects } from '../lib/content'
|
||||
import Project from '../interfaces/project'
|
||||
import { GetStaticProps } from 'next/types'
|
||||
import meta from '../../_content/meta.json'
|
||||
import resume from '../../_content/resume.json'
|
||||
import Projects from '../components/Projects'
|
||||
import { GetStaticProps } from 'next/types'
|
||||
import { getGithubRepos } from '../lib/github'
|
||||
import Repo from '../interfaces/repo'
|
||||
import Repositories from '../components/Repositories'
|
||||
import Project from '../interfaces/project'
|
||||
import Repo from '../interfaces/repo'
|
||||
import Page from '../layouts/Page'
|
||||
import { getAllProjects } from '../lib/content'
|
||||
import { getGithubRepos } from '../lib/github'
|
||||
|
||||
type Props = {
|
||||
projects: Project[]
|
||||
|
Loading…
Reference in New Issue
Block a user