refactor: projet stand-alone sans dépendance aoe_technology_radar
- Intégration du code source du framework dans radar-app/ (vendoring) - Suppression de la dépendance npm aoe_technology_radar - Création de scripts build-radar.js et serve-radar.js pour remplacer le CLI techradar - Adaptation de tous les scripts et Docker pour utiliser radar-app/ au lieu de .techradar - Refactorisation complète de Dockerfile.business - Mise à jour de la documentation (architecture, déploiement, développement) - Mise à jour de .gitignore pour ignorer les artefacts de build de radar-app/ - Ajout de postcss dans les dépendances Docker pour le build Next.js Le projet est maintenant complètement indépendant du package externe. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
66
radar-app/src/components/SocialLinks/SocialLinks.tsx
Normal file
66
radar-app/src/components/SocialLinks/SocialLinks.tsx
Normal file
@@ -0,0 +1,66 @@
|
||||
import styles from "./SocialLinks.module.css";
|
||||
|
||||
import {
|
||||
SocialFacebook,
|
||||
SocialGithub,
|
||||
SocialGitlab,
|
||||
SocialInstagram,
|
||||
SocialLinkedin,
|
||||
SocialX,
|
||||
SocialXing,
|
||||
SocialYoutube,
|
||||
} from "@/components/Icons";
|
||||
import { getSocialLinks } from "@/lib/data";
|
||||
import { cn } from "@/lib/utils";
|
||||
|
||||
interface SocialLinksProps {
|
||||
className?: string;
|
||||
}
|
||||
|
||||
function getIcon(name: string) {
|
||||
switch (name.toLowerCase()) {
|
||||
case "facebook":
|
||||
return SocialFacebook;
|
||||
case "github":
|
||||
return SocialGithub;
|
||||
case "gitlab":
|
||||
return SocialGitlab;
|
||||
case "instagram":
|
||||
return SocialInstagram;
|
||||
case "linkedin":
|
||||
return SocialLinkedin;
|
||||
case "x":
|
||||
return SocialX;
|
||||
case "xing":
|
||||
return SocialXing;
|
||||
case "youtube":
|
||||
return SocialYoutube;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export function SocialLinks({ className }: SocialLinksProps) {
|
||||
const links = getSocialLinks();
|
||||
return (
|
||||
<ul className={cn(styles.links, className)}>
|
||||
{links.map((link, i) => {
|
||||
const Icon = getIcon(link.icon);
|
||||
return (
|
||||
Icon && (
|
||||
<li key={i}>
|
||||
<a
|
||||
href={link.href}
|
||||
className={styles.link}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<Icon className={styles.icon} />
|
||||
</a>
|
||||
</li>
|
||||
)
|
||||
);
|
||||
})}
|
||||
</ul>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user