diff --git a/.gitignore b/.gitignore
index 74edcfb1..fe3654e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,4 +11,7 @@ yarn-error.log
**/public/worker-*.js
**/public/worker-*.js.map
**/public/workbox-*.js
-**/public/workbox-*.js.map
\ No newline at end of file
+**/public/workbox-*.js.map
+
+# typescript
+*.tsbuildinfo
\ No newline at end of file
diff --git a/components/ContactUsCards.js b/components/ContactUsCards.tsx
similarity index 100%
rename from components/ContactUsCards.js
rename to components/ContactUsCards.tsx
diff --git a/components/ContactUsForm/index.js b/components/ContactUsForm/index.tsx
similarity index 100%
rename from components/ContactUsForm/index.js
rename to components/ContactUsForm/index.tsx
diff --git a/components/ContactUsForm/styles.js b/components/ContactUsForm/styles.ts
similarity index 100%
rename from components/ContactUsForm/styles.js
rename to components/ContactUsForm/styles.ts
diff --git a/components/blog/BlogPostsContainer/index.js b/components/blog/BlogPostsContainer/index.tsx
similarity index 100%
rename from components/blog/BlogPostsContainer/index.js
rename to components/blog/BlogPostsContainer/index.tsx
diff --git a/components/blog/BlogPostsContainer/styles.js b/components/blog/BlogPostsContainer/styles.ts
similarity index 100%
rename from components/blog/BlogPostsContainer/styles.js
rename to components/blog/BlogPostsContainer/styles.ts
diff --git a/components/blog/SearchBar/index.js b/components/blog/SearchBar/index.tsx
similarity index 100%
rename from components/blog/SearchBar/index.js
rename to components/blog/SearchBar/index.tsx
diff --git a/components/blog/SearchBar/styles.js b/components/blog/SearchBar/styles.ts
similarity index 100%
rename from components/blog/SearchBar/styles.js
rename to components/blog/SearchBar/styles.ts
diff --git a/components/blog/Tag/index.js b/components/blog/Tag/index.tsx
similarity index 100%
rename from components/blog/Tag/index.js
rename to components/blog/Tag/index.tsx
diff --git a/components/blog/Tag/styles.js b/components/blog/Tag/styles.ts
similarity index 100%
rename from components/blog/Tag/styles.js
rename to components/blog/Tag/styles.ts
diff --git a/components/buttons/ButtonLink/index.js b/components/buttons/ButtonLink/index.tsx
similarity index 100%
rename from components/buttons/ButtonLink/index.js
rename to components/buttons/ButtonLink/index.tsx
diff --git a/components/buttons/ButtonLink/styles.js b/components/buttons/ButtonLink/styles.ts
similarity index 100%
rename from components/buttons/ButtonLink/styles.js
rename to components/buttons/ButtonLink/styles.ts
diff --git a/components/buttons/SubmitButton/index.js b/components/buttons/SubmitButton/index.tsx
similarity index 100%
rename from components/buttons/SubmitButton/index.js
rename to components/buttons/SubmitButton/index.tsx
diff --git a/components/buttons/SubmitButton/styles.js b/components/buttons/SubmitButton/styles.ts
similarity index 100%
rename from components/buttons/SubmitButton/styles.js
rename to components/buttons/SubmitButton/styles.ts
diff --git a/components/containers/Card/AboutUsCard.js b/components/containers/Card/AboutUsCard.tsx
similarity index 100%
rename from components/containers/Card/AboutUsCard.js
rename to components/containers/Card/AboutUsCard.tsx
diff --git a/components/containers/Card/BlogCard.js b/components/containers/Card/BlogCard.tsx
similarity index 100%
rename from components/containers/Card/BlogCard.js
rename to components/containers/Card/BlogCard.tsx
diff --git a/components/containers/Card/CardInterface.js b/components/containers/Card/CardInterface.tsx
similarity index 100%
rename from components/containers/Card/CardInterface.js
rename to components/containers/Card/CardInterface.tsx
diff --git a/components/containers/Card/ContactUsCard.js b/components/containers/Card/ContactUsCard.tsx
similarity index 100%
rename from components/containers/Card/ContactUsCard.js
rename to components/containers/Card/ContactUsCard.tsx
diff --git a/components/containers/Card/index.js b/components/containers/Card/index.tsx
similarity index 100%
rename from components/containers/Card/index.js
rename to components/containers/Card/index.tsx
diff --git a/components/containers/Card/styles.js b/components/containers/Card/styles.ts
similarity index 100%
rename from components/containers/Card/styles.js
rename to components/containers/Card/styles.ts
diff --git a/components/containers/CardColumns/BlogCardsColumns.js b/components/containers/CardColumns/BlogCardsColumns.tsx
similarity index 100%
rename from components/containers/CardColumns/BlogCardsColumns.js
rename to components/containers/CardColumns/BlogCardsColumns.tsx
diff --git a/components/containers/CardColumns/CardColumnsInterface.js b/components/containers/CardColumns/CardColumnsInterface.tsx
similarity index 100%
rename from components/containers/CardColumns/CardColumnsInterface.js
rename to components/containers/CardColumns/CardColumnsInterface.tsx
diff --git a/components/containers/CardColumns/ContactCardsColumns.js b/components/containers/CardColumns/ContactCardsColumns.tsx
similarity index 100%
rename from components/containers/CardColumns/ContactCardsColumns.js
rename to components/containers/CardColumns/ContactCardsColumns.tsx
diff --git a/components/containers/CardColumns/OurGoalsCardsColumns.js b/components/containers/CardColumns/OurGoalsCardsColumns.tsx
similarity index 100%
rename from components/containers/CardColumns/OurGoalsCardsColumns.js
rename to components/containers/CardColumns/OurGoalsCardsColumns.tsx
diff --git a/components/containers/CardColumns/index.js b/components/containers/CardColumns/index.tsx
similarity index 100%
rename from components/containers/CardColumns/index.js
rename to components/containers/CardColumns/index.tsx
diff --git a/components/containers/CardColumns/styles.js b/components/containers/CardColumns/styles.ts
similarity index 100%
rename from components/containers/CardColumns/styles.js
rename to components/containers/CardColumns/styles.ts
diff --git a/components/containers/Container/index.js b/components/containers/Container/index.tsx
similarity index 100%
rename from components/containers/Container/index.js
rename to components/containers/Container/index.tsx
diff --git a/components/containers/Container/styles.js b/components/containers/Container/styles.ts
similarity index 100%
rename from components/containers/Container/styles.js
rename to components/containers/Container/styles.ts
diff --git a/components/containers/Member/index.js b/components/containers/Member/index.tsx
similarity index 100%
rename from components/containers/Member/index.js
rename to components/containers/Member/index.tsx
diff --git a/components/containers/Member/styles.js b/components/containers/Member/styles.ts
similarity index 100%
rename from components/containers/Member/styles.js
rename to components/containers/Member/styles.ts
diff --git a/components/containers/RevealContentContainer/index.js b/components/containers/RevealContentContainer/index.tsx
similarity index 100%
rename from components/containers/RevealContentContainer/index.js
rename to components/containers/RevealContentContainer/index.tsx
diff --git a/components/containers/RevealContentContainer/styles.js b/components/containers/RevealContentContainer/styles.ts
similarity index 100%
rename from components/containers/RevealContentContainer/styles.js
rename to components/containers/RevealContentContainer/styles.ts
diff --git a/components/containers/Row/index.js b/components/containers/Row/index.tsx
similarity index 100%
rename from components/containers/Row/index.js
rename to components/containers/Row/index.tsx
diff --git a/components/containers/Row/styles.js b/components/containers/Row/styles.ts
similarity index 100%
rename from components/containers/Row/styles.js
rename to components/containers/Row/styles.ts
diff --git a/components/containers/TwoColumn/index.js b/components/containers/TwoColumn/index.tsx
similarity index 100%
rename from components/containers/TwoColumn/index.js
rename to components/containers/TwoColumn/index.tsx
diff --git a/components/containers/TwoColumn/styles.js b/components/containers/TwoColumn/styles.ts
similarity index 100%
rename from components/containers/TwoColumn/styles.js
rename to components/containers/TwoColumn/styles.ts
diff --git a/components/containers/Wrapper/index.js b/components/containers/Wrapper/index.tsx
similarity index 100%
rename from components/containers/Wrapper/index.js
rename to components/containers/Wrapper/index.tsx
diff --git a/components/containers/Wrapper/styles.js b/components/containers/Wrapper/styles.ts
similarity index 100%
rename from components/containers/Wrapper/styles.js
rename to components/containers/Wrapper/styles.ts
diff --git a/components/decorations/Bracket.js b/components/decorations/Bracket.tsx
similarity index 100%
rename from components/decorations/Bracket.js
rename to components/decorations/Bracket.tsx
diff --git a/components/decorations/Stick.js b/components/decorations/Stick.tsx
similarity index 100%
rename from components/decorations/Stick.js
rename to components/decorations/Stick.tsx
diff --git a/components/layout/Footer/index.js b/components/layout/Footer/index.tsx
similarity index 100%
rename from components/layout/Footer/index.js
rename to components/layout/Footer/index.tsx
diff --git a/components/layout/Footer/styles.js b/components/layout/Footer/styles.ts
similarity index 100%
rename from components/layout/Footer/styles.js
rename to components/layout/Footer/styles.ts
diff --git a/components/layout/Hero/index.js b/components/layout/Hero/index.tsx
similarity index 100%
rename from components/layout/Hero/index.js
rename to components/layout/Hero/index.tsx
diff --git a/components/layout/Hero/styles.js b/components/layout/Hero/styles.ts
similarity index 100%
rename from components/layout/Hero/styles.js
rename to components/layout/Hero/styles.ts
diff --git a/components/layout/Layout/index.js b/components/layout/Layout/index.tsx
similarity index 100%
rename from components/layout/Layout/index.js
rename to components/layout/Layout/index.tsx
diff --git a/components/layout/Layout/styles.js b/components/layout/Layout/styles.ts
similarity index 100%
rename from components/layout/Layout/styles.js
rename to components/layout/Layout/styles.ts
diff --git a/components/layout/Meta.js b/components/layout/Meta.tsx
similarity index 100%
rename from components/layout/Meta.js
rename to components/layout/Meta.tsx
diff --git a/components/layout/Nav/index.js b/components/layout/Nav/index.tsx
similarity index 100%
rename from components/layout/Nav/index.js
rename to components/layout/Nav/index.tsx
diff --git a/components/layout/Nav/styles.js b/components/layout/Nav/styles.ts
similarity index 100%
rename from components/layout/Nav/styles.js
rename to components/layout/Nav/styles.ts
diff --git a/components/mailchimp/NewsletterForm/index.js b/components/mailchimp/NewsletterForm/index.tsx
similarity index 100%
rename from components/mailchimp/NewsletterForm/index.js
rename to components/mailchimp/NewsletterForm/index.tsx
diff --git a/components/mailchimp/NewsletterForm/styles.js b/components/mailchimp/NewsletterForm/styles.ts
similarity index 100%
rename from components/mailchimp/NewsletterForm/styles.js
rename to components/mailchimp/NewsletterForm/styles.ts
diff --git a/components/mailchimp/NewsletterSubscribe.js b/components/mailchimp/NewsletterSubscribe.tsx
similarity index 100%
rename from components/mailchimp/NewsletterSubscribe.js
rename to components/mailchimp/NewsletterSubscribe.tsx
diff --git a/components/snippets/BlogSearch.js b/components/snippets/BlogSearch.ts
similarity index 100%
rename from components/snippets/BlogSearch.js
rename to components/snippets/BlogSearch.ts
diff --git a/components/snippets/Title.js b/components/snippets/Title.tsx
similarity index 100%
rename from components/snippets/Title.js
rename to components/snippets/Title.tsx
diff --git a/hooks/useIntersect.js b/hooks/useIntersect.ts
similarity index 100%
rename from hooks/useIntersect.js
rename to hooks/useIntersect.ts
diff --git a/jsconfig.json b/jsconfig.json
deleted file mode 100644
index 80cf7480..00000000
--- a/jsconfig.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "compilerOptions": {
- "baseUrl": ".",
- "paths": {
- "@/components/*": ["components/*"],
- "@/styles/*": ["styles/*"],
- "@/hooks/*": ["hooks/*"],
- "@/utils/*": ["utils/*"]
- }
- }
-}
diff --git a/next-env.d.ts b/next-env.d.ts
new file mode 100644
index 00000000..4f11a03d
--- /dev/null
+++ b/next-env.d.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/package.json b/package.json
index c38ef2c3..2d5e40e6 100644
--- a/package.json
+++ b/package.json
@@ -33,11 +33,15 @@
"swiper": "^8.2.2"
},
"devDependencies": {
+ "@types/node": "20.3.1",
+ "@types/react": "18.2.12",
+ "@types/react-dom": "18.2.5",
"babel-plugin-styled-components": "^2.1.1",
"husky": "^8.0.0",
"lint-staged": "^13.0.3",
"prettier": "^2.7.1",
- "prettylint": "^1.0.0"
+ "prettylint": "^1.0.0",
+ "typescript": "5.1.3"
},
"resolutions": {
"styled-components": "^5"
diff --git a/pages/404.js b/pages/404.tsx
similarity index 100%
rename from pages/404.js
rename to pages/404.tsx
diff --git a/pages/_app.js b/pages/_app.tsx
similarity index 100%
rename from pages/_app.js
rename to pages/_app.tsx
diff --git a/pages/_document.js b/pages/_document.tsx
similarity index 100%
rename from pages/_document.js
rename to pages/_document.tsx
diff --git a/pages/about.js b/pages/about.tsx
similarity index 100%
rename from pages/about.js
rename to pages/about.tsx
diff --git a/pages/api/contact.js b/pages/api/contact.tsx
similarity index 100%
rename from pages/api/contact.js
rename to pages/api/contact.tsx
diff --git a/pages/api/register.js b/pages/api/register.tsx
similarity index 100%
rename from pages/api/register.js
rename to pages/api/register.tsx
diff --git a/pages/blog/category/[tag].js b/pages/blog/category/[tag].tsx
similarity index 100%
rename from pages/blog/category/[tag].js
rename to pages/blog/category/[tag].tsx
diff --git a/pages/blog/category/all.js b/pages/blog/category/all.tsx
similarity index 100%
rename from pages/blog/category/all.js
rename to pages/blog/category/all.tsx
diff --git a/pages/blog/index.js b/pages/blog/index.tsx
similarity index 100%
rename from pages/blog/index.js
rename to pages/blog/index.tsx
diff --git a/pages/contact.js b/pages/contact.tsx
similarity index 100%
rename from pages/contact.js
rename to pages/contact.tsx
diff --git a/pages/index.js b/pages/index.tsx
similarity index 100%
rename from pages/index.js
rename to pages/index.tsx
diff --git a/pages/sitemap.xml.js b/pages/sitemap.xml
similarity index 100%
rename from pages/sitemap.xml.js
rename to pages/sitemap.xml
diff --git a/public/images/vincent.webp b/public/images/vincent.webp
index 8c579162..dfe3f8ca 100644
Binary files a/public/images/vincent.webp and b/public/images/vincent.webp differ
diff --git a/styles/_mixins.js b/styles/_mixins.ts
similarity index 100%
rename from styles/_mixins.js
rename to styles/_mixins.ts
diff --git a/styles/_variables.js b/styles/_variables.ts
similarity index 100%
rename from styles/_variables.js
rename to styles/_variables.ts
diff --git a/styles/pages/contactStyles.js b/styles/pages/contactStyles.ts
similarity index 100%
rename from styles/pages/contactStyles.js
rename to styles/pages/contactStyles.ts
diff --git a/styles/pages/homeStyles.js b/styles/pages/homeStyles.ts
similarity index 100%
rename from styles/pages/homeStyles.js
rename to styles/pages/homeStyles.ts
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 00000000..d0b034f2
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,33 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": false,
+ "noImplicitAny": false,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "baseUrl": ".",
+ "paths": {
+ "@/components/*": ["components/*"],
+ "@/styles/*": ["styles/*"],
+ "@/hooks/*": ["hooks/*"],
+ "@/utils/*": ["utils/*"]
+ }
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "exclude": ["node_modules"]
+}
diff --git a/utils/about.js b/utils/about.ts
similarity index 100%
rename from utils/about.js
rename to utils/about.ts
diff --git a/utils/blogCategories.js b/utils/blogCategories.ts
similarity index 100%
rename from utils/blogCategories.js
rename to utils/blogCategories.ts
diff --git a/utils/config.js b/utils/config.ts
similarity index 100%
rename from utils/config.js
rename to utils/config.ts
diff --git a/utils/hero-options.js b/utils/hero-options.ts
similarity index 100%
rename from utils/hero-options.js
rename to utils/hero-options.ts
diff --git a/utils/links.js b/utils/links.ts
similarity index 100%
rename from utils/links.js
rename to utils/links.ts
diff --git a/utils/meta.js b/utils/meta.ts
similarity index 100%
rename from utils/meta.js
rename to utils/meta.ts
diff --git a/utils/search.js b/utils/search.ts
similarity index 100%
rename from utils/search.js
rename to utils/search.ts
diff --git a/yarn.lock b/yarn.lock
index 84776813..d4b6b7ff 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1239,6 +1239,32 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.6.tgz#0ba49ac517ad69abe7a1508bc9b3a5483df9d5d7"
integrity sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==
+"@types/node@20.3.1":
+ version "20.3.1"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe"
+ integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==
+
+"@types/prop-types@*":
+ version "15.7.5"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
+ integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
+
+"@types/react-dom@18.2.5":
+ version "18.2.5"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.5.tgz#5c5f13548bda23cd98f50ca4a59107238bfe18f3"
+ integrity sha512-sRQsOS/sCLnpQhR4DSKGTtWFE3FZjpQa86KPVbhUqdYMRZ9FEFcfAytKhR/vUG2rH1oFbOOej6cuD7MFSobDRQ==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*", "@types/react@18.2.12":
+ version "18.2.12"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.12.tgz#95d584338610b78bb9ba0415e3180fb03debdf97"
+ integrity sha512-ndmBMLCgn38v3SntMeoJaIrO6tGHYKMEBohCUmw8HoLLQdRMOIGXfeYaBTLe2lsFaSB3MOK1VXscYFnmLtTSmw==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
"@types/resolve@1.17.1":
version "1.17.1"
resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
@@ -1246,6 +1272,11 @@
dependencies:
"@types/node" "*"
+"@types/scheduler@*":
+ version "0.16.3"
+ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5"
+ integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==
+
"@types/trusted-types@^2.0.2":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756"
@@ -1717,6 +1748,11 @@ css-to-react-native@^3.0.0:
css-color-keywords "^1.0.0"
postcss-value-parser "^4.0.2"
+csstype@^3.0.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
+ integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
+
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@@ -3734,6 +3770,11 @@ type-fest@^0.21.3:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+typescript@5.1.3:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826"
+ integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==
+
unbox-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"