/*
* 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);