Path: blob/master/src/packages/next/components/landing/social-media-icon-list.tsx
6150 views
import React from "react";1import { Flex } from "antd";23import { Icon, IconName } from "@cocalc/frontend/components/icon";4import { COLORS } from "@cocalc/util/theme";56enum SocialMediaType {7FACEBOOK = "facebook",8GITHUB = "github",9INSTAGRAM = "instagram",10LINKEDIN = "linkedin",11TWITTER = "twitter",12YOUTUBE = "youtube",13DISCORD = "discord",14}1516const ICON_MAP: Record<SocialMediaType, IconName> = {17[SocialMediaType.FACEBOOK]: "facebook-filled",18[SocialMediaType.GITHUB]: "github",19[SocialMediaType.INSTAGRAM]: "instagram",20[SocialMediaType.LINKEDIN]: "linkedin-filled",21[SocialMediaType.TWITTER]: "twitter",22[SocialMediaType.YOUTUBE]: "youtube-filled",23[SocialMediaType.DISCORD]: "discord",24};2526export interface SocialMediaIconListProps {27links: Partial<Record<SocialMediaType, string>>;28iconFontSize?: number;29style?: React.CSSProperties;30}3132export default function SocialMediaIconList(props: SocialMediaIconListProps) {33const { links, iconFontSize = 12, style = {} } = props;3435return (36<Flex37align="center"38wrap="wrap"39style={{40fontSize: `${iconFontSize}px`,41...style,42}}43>44{Object.keys(links)45.sort()46.map((mediaType: SocialMediaType) => (47<a48key={mediaType}49href={links[mediaType]}50target="_blank"51style={{52color: COLORS.GRAY,53}}54>55<Icon56name={ICON_MAP[mediaType]}57style={{ margin: `0 ${iconFontSize / 2}px` }}58/>59</a>60))}61</Flex>62);63}646566