/* * SPDX-FileCopyrightText: 2023-2024 Kristóf Marussy * * SPDX-License-Identifier: MIT */ import { useId } from 'react'; import { siCreativecommons, siDblp, siGithub, siGooglescholar, siLinkedin, siOrcid, siScopus, } from 'simple-icons'; import fediverse from './icons/fediverse'; import mtmt from './icons/mtmt'; export interface IconProps { hidden?: boolean; className?: string; alt?: string; } export function Icon({ path, alt, hidden, className, }: IconProps & { path: string; }) { const titleId = useId(); return ( <> {!hidden && ( {alt} )} ); } export interface SimpleIcon { path: string; title: string; } export function SimpleIcon({ icon: { path, title }, ...props }: IconProps & { icon: SimpleIcon; }) { return ; } function makeSimpleIcon(icon: SimpleIcon): (props: IconProps) => JSX.Element { return (props) => ; } export const CreativeCommonsIcon = makeSimpleIcon(siCreativecommons); export const DBLPIcon = makeSimpleIcon(siDblp); export const FediverseIcon = makeSimpleIcon(fediverse); export const GithubIcon = makeSimpleIcon(siGithub); export const GoogleScholarIcon = makeSimpleIcon(siGooglescholar); export const LinkedInIcon = makeSimpleIcon(siLinkedin); export const MTMTIcon = makeSimpleIcon(mtmt); export const OrcidIcon = makeSimpleIcon(siOrcid); export const ScopusIcon = makeSimpleIcon(siScopus);