mirror of
https://github.com/theoludwig/theoludwig.git
synced 2024-12-08 00:44:30 +01:00
refactor: avoid usage of React.FC to use JSX.Element (to stay consistent)
This commit is contained in:
parent
4b2e7bae90
commit
2e0138194c
@ -7,7 +7,7 @@ export interface ErrorPageProps {
|
|||||||
message: string
|
message: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ErrorPage: React.FC<ErrorPageProps> = (props) => {
|
export const ErrorPage = (props: ErrorPageProps): JSX.Element => {
|
||||||
const { message, statusCode } = props
|
const { message, statusCode } = props
|
||||||
const i18n = getI18n()
|
const i18n = getI18n()
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
export const Arrow: React.FC = () => {
|
export const Arrow = (): JSX.Element => {
|
||||||
return (
|
return (
|
||||||
<svg
|
<svg
|
||||||
width='12'
|
width='12'
|
||||||
|
@ -8,7 +8,7 @@ export interface LocaleFlagProps {
|
|||||||
cookiesStore: CookiesStore
|
cookiesStore: CookiesStore
|
||||||
}
|
}
|
||||||
|
|
||||||
export const LocaleFlag: React.FC<LocaleFlagProps> = (props) => {
|
export const LocaleFlag = (props: LocaleFlagProps): JSX.Element => {
|
||||||
const { locale, cookiesStore } = props
|
const { locale, cookiesStore } = props
|
||||||
|
|
||||||
const i18n = useI18n(cookiesStore)
|
const i18n = useI18n(cookiesStore)
|
||||||
|
@ -5,7 +5,9 @@ export interface InterestParagraphProps {
|
|||||||
description: string
|
description: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export const InterestParagraph: React.FC<InterestParagraphProps> = (props) => {
|
export const InterestParagraph = (
|
||||||
|
props: InterestParagraphProps
|
||||||
|
): JSX.Element => {
|
||||||
const { title, description } = props
|
const { title, description } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -6,7 +6,7 @@ interface InterestItemProps {
|
|||||||
fontAwesomeIcon: IconDefinition
|
fontAwesomeIcon: IconDefinition
|
||||||
}
|
}
|
||||||
|
|
||||||
export const InterestItem: React.FC<InterestItemProps> = (props) => {
|
export const InterestItem = (props: InterestItemProps): JSX.Element => {
|
||||||
const { fontAwesomeIcon, title } = props
|
const { fontAwesomeIcon, title } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -3,7 +3,7 @@ import { faGit } from '@fortawesome/free-brands-svg-icons'
|
|||||||
|
|
||||||
import { InterestItem } from './InterestItem'
|
import { InterestItem } from './InterestItem'
|
||||||
|
|
||||||
export const InterestsList: React.FC = () => {
|
export const InterestsList = (): JSX.Element => {
|
||||||
return (
|
return (
|
||||||
<div className='my-4 flex justify-center'>
|
<div className='my-4 flex justify-center'>
|
||||||
<ul className='m-0 flex w-96 list-none justify-around p-0'>
|
<ul className='m-0 flex w-96 list-none justify-around p-0'>
|
||||||
|
@ -4,7 +4,7 @@ import type { InterestParagraphProps } from './InterestParagraph'
|
|||||||
import { InterestParagraph } from './InterestParagraph'
|
import { InterestParagraph } from './InterestParagraph'
|
||||||
import { InterestsList } from './InterestsList'
|
import { InterestsList } from './InterestsList'
|
||||||
|
|
||||||
export const Interests: React.FC = () => {
|
export const Interests = (): JSX.Element => {
|
||||||
const i18n = getI18n()
|
const i18n = getI18n()
|
||||||
|
|
||||||
let paragraphs = i18n.translate<InterestParagraphProps[]>(
|
let paragraphs = i18n.translate<InterestParagraphProps[]>(
|
||||||
|
@ -6,7 +6,7 @@ export interface LoaderProps {
|
|||||||
className?: string
|
className?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export const Loader: React.FC<LoaderProps> = (props) => {
|
export const Loader = (props: LoaderProps): JSX.Element => {
|
||||||
const { width = 50, height = 50, className } = props
|
const { width = 50, height = 50, className } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -7,7 +7,7 @@ export interface RepositoryProps {
|
|||||||
href: string
|
href: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export const Repository: React.FC<RepositoryProps> = (props) => {
|
export const Repository = (props: RepositoryProps): JSX.Element => {
|
||||||
const { name, description, href } = props
|
const { name, description, href } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -2,7 +2,7 @@ import { getI18n } from '@/i18n/i18n.server'
|
|||||||
|
|
||||||
import { Repository } from './Repository'
|
import { Repository } from './Repository'
|
||||||
|
|
||||||
export const OpenSource: React.FC = () => {
|
export const OpenSource = (): JSX.Element => {
|
||||||
const i18n = getI18n()
|
const i18n = getI18n()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -9,7 +9,7 @@ export interface PortfolioItemProps {
|
|||||||
image: string
|
image: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export const PortfolioItem: React.FC<PortfolioItemProps> = (props) => {
|
export const PortfolioItem = (props: PortfolioItemProps): JSX.Element => {
|
||||||
const { title, description, link, image } = props
|
const { title, description, link, image } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -3,7 +3,7 @@ import { getI18n } from '@/i18n/i18n.server'
|
|||||||
import type { PortfolioItemProps } from './PortfolioItem'
|
import type { PortfolioItemProps } from './PortfolioItem'
|
||||||
import { PortfolioItem } from './PortfolioItem'
|
import { PortfolioItem } from './PortfolioItem'
|
||||||
|
|
||||||
export const Portfolio: React.FC = () => {
|
export const Portfolio = (): JSX.Element => {
|
||||||
const i18n = getI18n()
|
const i18n = getI18n()
|
||||||
|
|
||||||
let items = i18n.translate<PortfolioItemProps[]>('home.portfolio.items')
|
let items = i18n.translate<PortfolioItemProps[]>('home.portfolio.items')
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { getI18n } from '@/i18n/i18n.server'
|
import { getI18n } from '@/i18n/i18n.server'
|
||||||
|
|
||||||
export const ProfileDescriptionBottom: React.FC = () => {
|
export const ProfileDescriptionBottom = (): JSX.Element => {
|
||||||
const i18n = getI18n()
|
const i18n = getI18n()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { getI18n } from '@/i18n/i18n.server'
|
import { getI18n } from '@/i18n/i18n.server'
|
||||||
|
|
||||||
export const ProfileInformation: React.FC = () => {
|
export const ProfileInformation = (): JSX.Element => {
|
||||||
const i18n = getI18n()
|
const i18n = getI18n()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -4,7 +4,7 @@ interface ProfileItemProps {
|
|||||||
link?: string
|
link?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ProfileItem: React.FC<ProfileItemProps> = (props) => {
|
export const ProfileItem = (props: ProfileItemProps): JSX.Element => {
|
||||||
const { title, value, link } = props
|
const { title, value, link } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -2,7 +2,7 @@ import Image from 'next/image'
|
|||||||
|
|
||||||
import Logo from 'public/images/logo.png'
|
import Logo from 'public/images/logo.png'
|
||||||
|
|
||||||
export const ProfileLogo: React.FC = () => {
|
export const ProfileLogo = (): JSX.Element => {
|
||||||
return (
|
return (
|
||||||
<div className='max-h-[370px] max-w-[370px] px-2 py-6'>
|
<div className='max-h-[370px] max-w-[370px] px-2 py-6'>
|
||||||
<Image quality={100} src={Logo} alt='Théo LUDWIG' priority />
|
<Image quality={100} src={Logo} alt='Théo LUDWIG' priority />
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import { Icon } from './Icon'
|
import { Icon } from './Icon'
|
||||||
|
|
||||||
export const EmailIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {
|
export const EmailIcon = (
|
||||||
|
props: React.SVGProps<SVGSVGElement>
|
||||||
|
): JSX.Element => {
|
||||||
return (
|
return (
|
||||||
<Icon {...props}>
|
<Icon {...props}>
|
||||||
<title>Email</title>
|
<title>Email</title>
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import { Icon } from './Icon'
|
import { Icon } from './Icon'
|
||||||
|
|
||||||
export const GitHubIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {
|
export const GitHubIcon = (
|
||||||
|
props: React.SVGProps<SVGSVGElement>
|
||||||
|
): JSX.Element => {
|
||||||
return (
|
return (
|
||||||
<Icon {...props}>
|
<Icon {...props}>
|
||||||
<title>GitHub</title>
|
<title>GitHub</title>
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import { Icon } from './Icon'
|
import { Icon } from './Icon'
|
||||||
|
|
||||||
export const GitLabIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {
|
export const GitLabIcon = (
|
||||||
|
props: React.SVGProps<SVGSVGElement>
|
||||||
|
): JSX.Element => {
|
||||||
return (
|
return (
|
||||||
<Icon {...props}>
|
<Icon {...props}>
|
||||||
<title>GitLab</title>
|
<title>GitLab</title>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import classNames from 'clsx'
|
import classNames from 'clsx'
|
||||||
|
|
||||||
export const Icon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {
|
export const Icon = (props: React.SVGProps<SVGSVGElement>): JSX.Element => {
|
||||||
const { children, className, ...rest } = props
|
const { children, className, ...rest } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Icon } from './Icon'
|
import { Icon } from './Icon'
|
||||||
|
|
||||||
export const NPMIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {
|
export const NPMIcon = (props: React.SVGProps<SVGSVGElement>): JSX.Element => {
|
||||||
return (
|
return (
|
||||||
<Icon {...props}>
|
<Icon {...props}>
|
||||||
<title>npm</title>
|
<title>npm</title>
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import { Icon } from './Icon'
|
import { Icon } from './Icon'
|
||||||
|
|
||||||
export const TwitchIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {
|
export const TwitchIcon = (
|
||||||
|
props: React.SVGProps<SVGSVGElement>
|
||||||
|
): JSX.Element => {
|
||||||
return (
|
return (
|
||||||
<Icon {...props}>
|
<Icon {...props}>
|
||||||
<title>Twitch</title>
|
<title>Twitch</title>
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import { Icon } from './Icon'
|
import { Icon } from './Icon'
|
||||||
|
|
||||||
export const TwitterIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {
|
export const TwitterIcon = (
|
||||||
|
props: React.SVGProps<SVGSVGElement>
|
||||||
|
): JSX.Element => {
|
||||||
return (
|
return (
|
||||||
<Icon {...props}>
|
<Icon {...props}>
|
||||||
<title>Twitter</title>
|
<title>Twitter</title>
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import { Icon } from './Icon'
|
import { Icon } from './Icon'
|
||||||
|
|
||||||
export const YouTubeIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {
|
export const YouTubeIcon = (
|
||||||
|
props: React.SVGProps<SVGSVGElement>
|
||||||
|
): JSX.Element => {
|
||||||
return (
|
return (
|
||||||
<Icon {...props}>
|
<Icon {...props}>
|
||||||
<title>YouTube</title>
|
<title>YouTube</title>
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
interface SocialMediaItemProps {
|
interface SocialMediaItemProps extends React.PropsWithChildren {
|
||||||
link: string
|
link: string
|
||||||
ariaLabel: string
|
ariaLabel: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export const SocialMediaItem: React.FC<
|
export const SocialMediaItem = (props: SocialMediaItemProps): JSX.Element => {
|
||||||
React.PropsWithChildren<SocialMediaItemProps>
|
|
||||||
> = (props) => {
|
|
||||||
const { link, ariaLabel, children } = props
|
const { link, ariaLabel, children } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -7,7 +7,7 @@ import { TwitchIcon } from './SocialMediaIcons/TwitchIcon'
|
|||||||
import { EmailIcon } from './SocialMediaIcons/EmailIcon'
|
import { EmailIcon } from './SocialMediaIcons/EmailIcon'
|
||||||
import { NPMIcon } from './SocialMediaIcons/NPMIcon'
|
import { NPMIcon } from './SocialMediaIcons/NPMIcon'
|
||||||
|
|
||||||
export const SocialMediaList: React.FC = () => {
|
export const SocialMediaList = (): JSX.Element => {
|
||||||
return (
|
return (
|
||||||
<ul className='social-media-list m-0 mt-2 list-none py-4 text-center'>
|
<ul className='social-media-list m-0 mt-2 list-none py-4 text-center'>
|
||||||
<SocialMediaItem link='https://github.com/theoludwig' ariaLabel='GitHub'>
|
<SocialMediaItem link='https://github.com/theoludwig' ariaLabel='GitHub'>
|
||||||
|
@ -5,7 +5,7 @@ import { ProfileInformation } from './ProfileInfo'
|
|||||||
import { ProfileList } from './ProfileList'
|
import { ProfileList } from './ProfileList'
|
||||||
import { ProfileLogo } from './ProfileLogo'
|
import { ProfileLogo } from './ProfileLogo'
|
||||||
|
|
||||||
export const Profile: React.FC = () => {
|
export const Profile = (): JSX.Element => {
|
||||||
const cookiesStore = cookies()
|
const cookiesStore = cookies()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -9,7 +9,7 @@ export interface SkillComponentProps {
|
|||||||
skill: SkillName
|
skill: SkillName
|
||||||
}
|
}
|
||||||
|
|
||||||
export const SkillComponent: React.FC<SkillComponentProps> = (props) => {
|
export const SkillComponent = (props: SkillComponentProps): JSX.Element => {
|
||||||
const { skill } = props
|
const { skill } = props
|
||||||
|
|
||||||
const skillProperties = skills[skill]
|
const skillProperties = skills[skill]
|
||||||
|
@ -5,7 +5,7 @@ export interface SkillsSectionProps {
|
|||||||
children: React.ReactNode
|
children: React.ReactNode
|
||||||
}
|
}
|
||||||
|
|
||||||
export const SkillsSection: React.FC<SkillsSectionProps> = (props) => {
|
export const SkillsSection = (props: SkillsSectionProps): JSX.Element => {
|
||||||
const { title, children } = props
|
const { title, children } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -3,7 +3,7 @@ import { getI18n } from '@/i18n/i18n.server'
|
|||||||
import { SkillComponent } from './Skill'
|
import { SkillComponent } from './Skill'
|
||||||
import { SkillsSection } from './SkillsSection'
|
import { SkillsSection } from './SkillsSection'
|
||||||
|
|
||||||
export const Skills: React.FC = () => {
|
export const Skills = (): JSX.Element => {
|
||||||
const i18n = getI18n()
|
const i18n = getI18n()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
import { useEffect, useRef } from 'react'
|
import { useEffect, useRef } from 'react'
|
||||||
|
|
||||||
export const RevealFade: React.FC<React.PropsWithChildren> = (props) => {
|
export type RevealFadeProps = React.PropsWithChildren
|
||||||
|
|
||||||
|
export const RevealFade = (props: RevealFadeProps): JSX.Element => {
|
||||||
const { children } = props
|
const { children } = props
|
||||||
|
|
||||||
const htmlElement = useRef<HTMLDivElement>(null)
|
const htmlElement = useRef<HTMLDivElement>(null)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
type SectionHeadingProps = React.ComponentPropsWithRef<'h2'>
|
type SectionHeadingProps = React.ComponentPropsWithRef<'h2'>
|
||||||
|
|
||||||
export const SectionHeading: React.FC<SectionHeadingProps> = (props) => {
|
export const SectionHeading = (props: SectionHeadingProps): JSX.Element => {
|
||||||
const { children, ...rest } = props
|
const { children, ...rest } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -8,7 +8,7 @@ type SectionProps = React.ComponentPropsWithRef<'section'> & {
|
|||||||
withoutShadowContainer?: boolean
|
withoutShadowContainer?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export const Section: React.FC<SectionProps> = (props) => {
|
export const Section = (props: SectionProps): JSX.Element => {
|
||||||
const {
|
const {
|
||||||
children,
|
children,
|
||||||
heading,
|
heading,
|
||||||
|
@ -2,7 +2,7 @@ import classNames from 'clsx'
|
|||||||
|
|
||||||
type ShadowContainerProps = React.ComponentPropsWithRef<'div'>
|
type ShadowContainerProps = React.ComponentPropsWithRef<'div'>
|
||||||
|
|
||||||
export const ShadowContainer: React.FC<ShadowContainerProps> = (props) => {
|
export const ShadowContainer = (props: ShadowContainerProps): JSX.Element => {
|
||||||
const { children, className, ...rest } = props
|
const { children, className, ...rest } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
Loading…
Reference in New Issue
Block a user