diff --git a/.eslintrc.js b/.eslintrc.js index 9fa6060a..237f067a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,7 +1,9 @@ module.exports = { - extends: 'react-app', + extends: 'next', rules: { 'react/react-in-jsx-scope': 'off', + 'react/display-name': 'off', + 'react-hooks/exhaustive-deps': 'off', 'jsx-a11y/anchor-is-valid': 'off', }, } diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..45d257b2 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,133 @@ + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[INSERT CONTACT METHOD]. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/package.json b/package.json index 0ce12701..ef9edc20 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "javaistic", - "version": "1.4.0", + "version": "1.5.0", "description": "The official website for Javaistic.", "private": true, "main": "index.js", @@ -12,7 +12,9 @@ "build": "next build", "start": "next start", "export": "next build && next export", - "format": "prettier {src,remark}/**/*.{css,js,mdx} --write" + "format": "prettier {src,remark}/**/*.{css,js,mdx} --write", + "lint": "next lint", + "clean": "rimraf .next" }, "browserslist": [ "> 1%" @@ -21,11 +23,13 @@ "@badrap/bar-of-progress": "^0.1.2", "@docsearch/react": "^1.0.0-alpha.28", "@formspree/react": "^2.2.4", + "@headlessui/react": "^1.4.2", + "@heroicons/react": "^1.0.5", "@juggle/resize-observer": "^3.3.1", "@mdx-js/loader": "^1.6.22", "@mdx-js/react": "^1.6.22", - "@next/bundle-analyzer": "^12.0.4", - "@next/mdx": "^12.0.4", + "@next/bundle-analyzer": "^12.0.7", + "@next/mdx": "^12.0.7", "@reach/rect": "^0.16.0", "@silvenon/remark-smartypants": "^1.0.0", "@sindresorhus/slugify": "^1.1.0", @@ -43,36 +47,36 @@ "glob": "^7.2.0", "intersection-observer": "^0.12.0", "minimatch": "^3.0.4", - "next": "^12.0.4", - "postcss": "^8.4.1", + "next": "^12.0.7", + "next-themes": "^0.0.15", + "postcss": "^8.4.4", "postcss-focus-visible": "^5.0.0", "postcss-import": "^14.0.2", "postcss-nested": "^5.0.6", "prismjs": "^1.25.0", "react": "^17.0.2", "react-dom": "^17.0.2", - "react-intersection-observer": "^8.32.5", + "react-intersection-observer": "^8.33.0", "redent": "^3.0.0", + "sharp": "^0.29.3", "simple-functional-loader": "^1.2.1", "tailwindcss": "^2.2.19", "tinytime": "^0.2.6", - "unist-util-visit": "^2.0.3", - "webpack": "^5.64.4" + "unist-util-visit": "^2.0.3" }, "devDependencies": { "@babel/core": "^7.16.0", "@types/react": "^17.0.37", - "@typescript-eslint/eslint-plugin": "2.34.0", - "@typescript-eslint/parser": "2.34.0", - "babel-eslint": "10.x", - "eslint": "6.x", - "eslint-config-react-app": "^5.2.1", - "eslint-plugin-flowtype": "4.x", - "eslint-plugin-import": "2.x", - "eslint-plugin-jsx-a11y": "6.x", - "eslint-plugin-react": "7.x", - "eslint-plugin-react-hooks": "2.x", - "prettier": "^2.5.0", - "typescript": "^4.5.2" + "@typescript-eslint/eslint-plugin": "5.6.0", + "@typescript-eslint/parser": "5.6.0", + "babel-eslint": "10.1.0", + "eslint": "7.32.0", + "eslint-config-next": "^12.0.7", + "eslint-config-react-app": "^6.0.0", + "eslint-plugin-flowtype": "8.0.3", + "eslint-plugin-import": "2.25.3", + "prettier": "^2.5.1", + "typescript": "^4.5.3", + "webpack": "^5.65.0" } -} \ No newline at end of file +} diff --git a/public/img/docs/jvm-jre-jdk/1.svg b/public/img/docs/jvm-jre-jdk/1.svg deleted file mode 100644 index c18e63a9..00000000 --- a/public/img/docs/jvm-jre-jdk/1.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/img/docs/jvm-jre-jdk/2.svg b/public/img/docs/jvm-jre-jdk/2.svg deleted file mode 100644 index 8d16d87e..00000000 --- a/public/img/docs/jvm-jre-jdk/2.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/public/img/docs/jvm-jre-jdk/4.svg b/public/img/docs/jvm-jre-jdk/4.svg deleted file mode 100644 index 05bbde33..00000000 --- a/public/img/docs/jvm-jre-jdk/4.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/manifest.json b/public/manifest.json index 1c92d384..3e6e948b 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,7 +1,7 @@ { "short_name": "Javaistic", "name": "Javaistic", - "start_url": "/", + "start_url": "https://javaistic.vercel.app/", "theme_color": "#ffffff", "background_color": "#ffffff", "display": "standalone", @@ -17,4 +17,4 @@ "type": "image/png" } ] -} +} \ No newline at end of file diff --git a/public/sitemap.xml b/public/sitemap.xml index 2316e3c6..b5b2e5b2 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -9,174 +9,92 @@ https://javaistic.vercel.app/ - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 1.00 https://javaistic.vercel.app/docs - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.80 https://javaistic.vercel.app/docs/installation - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.80 https://javaistic.vercel.app/programs/introduction - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.80 https://javaistic.vercel.app/programs - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.80 https://javaistic.vercel.app/brand - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.80 https://javaistic.vercel.app/sponsors - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.80 https://javaistic.vercel.app/docs/introduction - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.64 https://javaistic.vercel.app/docs/hello-world - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.64 https://javaistic.vercel.app/docs/jvm-jre-jdk - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.64 https://javaistic.vercel.app/docs/variables-and-literals - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.64 https://javaistic.vercel.app/docs/variables-primitive-data-types - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.64 https://javaistic.vercel.app/docs/operators - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.64 https://javaistic.vercel.app/docs/basic-input-output - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.64 https://javaistic.vercel.app/docs/expressions-statements-blocks - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.64 https://javaistic.vercel.app/docs/comments - 2021-11-14T22:12:56+00:00 + 2021-12-07T14:51:17+00:00 0.64 - https://javaistic.vercel.app/programs/print-an-integer - 2021-11-14T22:12:56+00:00 - 0.64 - - - - - - - - - - - https://javaistic.vercel.app/ - 2021-11-02T15:34:38+00:00 - 1.00 - - - https://javaistic.vercel.app/docs - 2021-11-02T15:34:38+00:00 - 0.80 - - - https://javaistic.vercel.app/docs/installation - 2021-11-02T15:34:38+00:00 - 0.80 - - - https://javaistic.vercel.app/programs/introduction - 2021-11-02T15:34:38+00:00 - 0.80 - - - https://javaistic.vercel.app/programs - 2021-11-02T15:34:38+00:00 - 0.80 - - - https://javaistic.vercel.app/brand - 2021-11-02T15:34:38+00:00 - 0.80 - - - https://javaistic.vercel.app/sponsors - 2021-11-02T15:34:38+00:00 - 0.80 - - - https://javaistic.vercel.app/docs/introduction - 2021-11-02T15:34:38+00:00 - 0.64 - - - https://javaistic.vercel.app/docs/hello-world - 2021-11-02T15:34:38+00:00 - 0.64 - - - https://javaistic.vercel.app/docs/jvm-jre-jdk - 2021-11-02T15:34:38+00:00 - 0.64 - - - https://javaistic.vercel.app/docs/variables-and-literals - 2021-11-02T15:34:38+00:00 - 0.64 - - - https://javaistic.vercel.app/docs/variables-primitive-data-types - 2021-11-02T15:34:38+00:00 - 0.64 - - - https://javaistic.vercel.app/docs/operators - 2021-11-02T15:34:38+00:00 - 0.64 - - - https://javaistic.vercel.app/docs/basic-input-output - 2021-11-02T15:34:38+00:00 + https://javaistic.vercel.app/docs/if-else-statement + 2021-12-07T14:51:17+00:00 0.64 https://javaistic.vercel.app/programs/print-an-integer - 2021-11-02T15:34:38+00:00 + 2021-12-07T14:51:17+00:00 0.64 diff --git a/redirects.json b/redirects.json index 41839d94..bfe8dfe8 100644 --- a/redirects.json +++ b/redirects.json @@ -7,6 +7,8 @@ }, { "source": "/docs/slug", "destination": "/docs/slug", "permanent": false }, { "source": "/community", "destination": "https://discord.gg/RkHJqvK9r8", "permanent": false }, + { "source": "/changelog", "destination": "https://javaistic-changelog.vercel.app/", "permanent": false }, + { "source": "/license", "destination": "https://raw.githubusercontent.com/javaistic/javaistic/main/LICENSE", "permanent": false }, { "source": "/discord", "destination": "https://discord.gg/RkHJqvK9r8", "permanent": false }, { "source": "/status", "destination": "https://javaistic.betteruptime.com/", "permanent": false }, { "source": "/stats", "destination": "https://javaistic.betteruptime.com/", "permanent": false } diff --git a/remark/withSyntaxHighlighting.js b/remark/withSyntaxHighlighting.js index 45202801..9394e3d7 100644 --- a/remark/withSyntaxHighlighting.js +++ b/remark/withSyntaxHighlighting.js @@ -17,7 +17,7 @@ module.exports.withSyntaxHighlighting = () => { if (node.lang !== null) { node.type = 'html' node.value = [ - `
`, + `
`, `
`,
diff --git a/src/components/Community.js b/src/components/Community.js
index 67d3dd77..b3054373 100644
--- a/src/components/Community.js
+++ b/src/components/Community.js
@@ -1,7 +1,7 @@
 export function Community() {
   return (
-    
   )
 }
diff --git a/src/components/Header.js b/src/components/Header.js
index b80f3907..34b153df 100644
--- a/src/components/Header.js
+++ b/src/components/Header.js
@@ -3,177 +3,14 @@ import { Search } from '@/components/Search'
 import clsx from 'clsx'
 import Link from 'next/link'
 import Router from 'next/router'
+import ThemeChanger from './ThemeChanger'
 
-function BannerMarkMobile(props) {
-  return (
-    
-      
-      
-      
-      
-      
-      
-        
-          
-          
-        
-        
-          
-          
-        
-        
-          
-          
-        
-      
-    
-  )
-}
-
-function BannerMarkLeft(props) {
-  return (
-    
-      
-      
-      
-      
-      
-        
-          
-          
-        
-        
-          
-          
-        
-      
-    
-  )
-}
-
-function BannerMarkRight(props) {
-  return (
-    
-      
-      
-      
-      
-        
-          
-          
-        
-      
-    
-  )
-}
 
 export function Header({ navIsOpen, onNavToggle }) {
   return (
     <>
-      
-
+
+ -
+
+ Javaistic on GitHub - + Open site navigation diff --git a/src/components/Logo.js b/src/components/Logo.js index c076a33d..86a7d4fa 100644 --- a/src/components/Logo.js +++ b/src/components/Logo.js @@ -11,7 +11,7 @@ export function Logo(props) { fillRule="evenodd" clipRule="evenodd" d="M74.972 20.192h5.908v-5.473h-5.907v5.473zM72.67 52.944c4.811 0 8.21-3.403 8.21-8.192V23.116h-5.907v21.191c0 2.104-1.13 3.199-3.228 3.199h-1.91v5.438h2.835zm31.643-29.828l-.608 2.07a10.77 10.77 0 00-7.192-2.677c-6.55 0-11.438 4.952-11.438 11.57 0 6.611 4.88 11.605 11.438 11.605 2.783 0 5.205-.975 7.072-2.642l.522 1.992h4.606V23.116h-4.4zm-7.32 16.967a5.83 5.83 0 01-4.263-1.726 5.81 5.81 0 01-1.68-4.277 5.791 5.791 0 011.67-4.29 5.808 5.808 0 014.273-1.722 5.81 5.81 0 015.551 3.695c.287.737.42 1.526.39 2.317a5.794 5.794 0 01-3.629 5.584 5.81 5.81 0 01-2.312.419zm31.746-16.966l-5.257 14.691-5.334-14.692h-6.31l8.896 21.918h5.453l8.647-21.918h-6.104.009zm26.283 0l-.608 2.069a10.766 10.766 0 00-7.191-2.677c-6.55 0-11.438 4.952-11.438 11.57 0 6.611 4.888 11.605 11.438 11.605 2.783 0 5.214-.975 7.071-2.642l.523 1.992h4.606V23.116h-4.401zm-7.32 16.966a5.827 5.827 0 01-5.543-3.692 5.815 5.815 0 01-.398-2.311 5.785 5.785 0 011.669-4.29 5.809 5.809 0 014.272-1.722 5.812 5.812 0 014.272 1.723 5.79 5.79 0 011.67 4.289 5.792 5.792 0 01-1.673 4.283 5.804 5.804 0 01-4.269 1.72zm17.44-19.891h5.856v-5.473h-5.856v5.473zm0 24.842h5.899V23.116h-5.908v21.927l.009-.009zm19.281.65c5.539 0 9.169-2.924 9.169-7.388 0-5.354-4.563-6.09-8.117-6.739-2.268-.402-4.126-.77-4.126-2.223 0-1.266 1.096-2.078 2.911-2.078 2.054 0 3.27.855 3.313 2.6h5.617c-.043-4.388-3.511-7.347-8.767-7.347-5.257 0-8.767 2.882-8.767 7.021 0 5.157 4.443 6.089 7.919 6.696 2.303.368 4.195.813 4.195 2.31 0 1.47-1.49 2.24-3.108 2.24-2.097 0-3.595-.975-3.638-2.925h-5.737c0 4.67 3.682 7.833 9.136 7.833zm23.98-5.926c-2.183 0-3.39-1.214-3.39-3.335v-8.518h5.942v-4.789h-6.028v-5.678h-1.13l-8.604 9.168v1.3h3.921v9.338c0 4.831 2.945 7.79 7.757 7.79h4.195v-5.276h-2.663zm6.695-19.566h5.865v-5.473h-5.865v5.473zm0 24.842h5.908V23.116h-5.908v21.927-.009zm21.712.65c5.693 0 10.18-3.737 11.19-9.253h-5.942c-1.01 2.352-2.868 3.652-5.248 3.652-3.159 0-5.616-2.634-5.616-6.003 0-3.421 2.423-6.012 5.616-6.012a5.604 5.604 0 015.248 3.455h5.865c-1.053-5.405-5.42-9.014-11.079-9.014-6.626 0-11.643 4.952-11.643 11.528 0 6.576 5.017 11.647 11.609 11.647zM30.452 42.6c4.924 0 8.917-3.98 8.917-8.889 0-4.909-3.992-8.888-8.917-8.888s-8.917 3.98-8.917 8.888c0 4.91 3.992 8.89 8.917 8.89z" - fill="#000" + fill="currentColor" /> ) diff --git a/src/components/PageHeader.js b/src/components/PageHeader.js index 8324b66b..ca56f671 100644 --- a/src/components/PageHeader.js +++ b/src/components/PageHeader.js @@ -4,7 +4,7 @@ export function PageHeader({ title, description, badge = {}, border = true }) { if (!title && !description) return null return ( -
+

{title} diff --git a/src/components/Search.js b/src/components/Search.js index 86dab01b..80997064 100644 --- a/src/components/Search.js +++ b/src/components/Search.js @@ -68,13 +68,13 @@ export function Search() { type="button" ref={searchButtonRef} onClick={onOpen} - className="group leading-6 font-medium flex items-center space-x-3 sm:space-x-4 hover:text-gray-600 transition-colors duration-200 w-full py-2" + className="group leading-6 font-medium flex items-center space-x-3 sm:space-x-4 text-gray-500 bg-gray-100 hover:text-gray-600 dark:bg-gray-800 dark:text-gray-400 transition ease-in-out duration-200 w-full py-1.5 px-1.5 sm:px-4 lg:px-4 rounded-lg border-2 border-gray-200 dark:border-gray-600" > - SearchQuick search for anything + SearchQuick search for anything Press diff --git a/src/components/Testimonials.js b/src/components/Testimonials.js index 06dc7519..a0517ecd 100644 --- a/src/components/Testimonials.js +++ b/src/components/Testimonials.js @@ -1,5 +1,6 @@ import { gradients } from '@/utils/gradients' import { animate, motion, useMotionValue, useTransform } from 'framer-motion' +import Image from 'next/image' import { useEffect, useState } from 'react' import { useInView } from 'react-intersection-observer' @@ -113,7 +114,7 @@ function Testimonial({ testimonial, base, index, total }) { {typeof testimonial.content === 'string' ? ( -

{testimonial.content}

+

{testimonial.content}

) : ( testimonial.content )} @@ -121,11 +122,17 @@ function Testimonial({ testimonial, base, index, total }) {
-
- +
@@ -183,7 +190,7 @@ export function Testimonials() { onMouseLeave={() => setDuration(150)} >
diff --git a/src/components/ThemeChanger.js b/src/components/ThemeChanger.js new file mode 100644 index 00000000..5a4d8c3a --- /dev/null +++ b/src/components/ThemeChanger.js @@ -0,0 +1,45 @@ +// ./components/ThemeChanger.js +import { useEffect, useState } from 'react'; +import { useTheme } from 'next-themes'; +import { MoonIcon, SunIcon } from '@heroicons/react/outline'; + + +export default function ThemeChanger() { + const { systemTheme, theme, setTheme } = useTheme(); + const [mounted, setMounted] = useState(false); + + useEffect(() => { + setMounted(true); + }, []); + + const renderThemeChanger = () => { + + if (!mounted) return null; + + const currentTheme = theme === 'system' ? systemTheme : theme; + if (currentTheme === 'light') { + return ( setTheme('dark')} + /> + ); + } + else { + return ( setTheme('light')} + /> + ); + } + } + + return ( +
+ {renderThemeChanger()} +
+ ); +} \ No newline at end of file diff --git a/src/components/Tip.js b/src/components/Tip.js index 5c21fb5f..be71e165 100644 --- a/src/components/Tip.js +++ b/src/components/Tip.js @@ -41,7 +41,7 @@ export function TipCompat({ children }) { export function TipInfo({ children }) { return ( -
+
diff --git a/src/components/home/Footer.js b/src/components/home/Footer.js index 381df02d..f52ee7a6 100644 --- a/src/components/home/Footer.js +++ b/src/components/home/Footer.js @@ -41,7 +41,7 @@ const footerNav = { className: 'row-span-2', items: programsNav['Getting started'], }, - Javaistic: { + Product: { className: 'row-span-2', items: [ { title: 'Home', href: '/' }, @@ -72,21 +72,21 @@ const footerNav = { export function Footer() { return ( -