Add Medium Logo & Links in Contact

This commit is contained in:
Samuel W
2020-05-09 00:02:54 +08:00
parent 438a9fa6af
commit c87e5472ec
7 changed files with 167 additions and 133 deletions

View File

@@ -3,48 +3,51 @@ const getContactHref = (name: string, contact: string) => {
let href;
switch (name) {
case 'twitter':
case "twitter":
href = `https://www.twitter.com/${contact}`;
break;
case 'github':
case "github":
href = `https://github.com/${contact}`;
break;
case 'vkontakte':
case "vkontakte":
href = `https://vk.com/${contact}`;
break;
case 'telegram':
case "telegram":
href = `https://t.me/${contact}`;
break;
case 'email':
case "email":
href = `mailto:${contact}`;
break;
case 'linkedin':
case "linkedin":
href = `https://www.linkedin.com/in/${contact}`;
break;
case 'instagram':
case "instagram":
href = `https://www.instagram.com/${contact}`;
break;
case 'line':
case "line":
href = `line://ti/p/${contact}`;
break;
case 'facebook':
case "facebook":
href = `https://www.facebook.com/${contact}`;
break;
case 'gitlab':
case "gitlab":
href = `https://www.gitlab.com/${contact}`;
break;
case 'weibo':
case "weibo":
href = `https://www.weibo.com/${contact}`;
break;
case 'codepen':
case "codepen":
href = `https://www.codepen.io/${contact}`;
break;
case 'youtube':
case "youtube":
href = `https://www.youtube.com/channel/${contact}`;
break;
case 'soundcloud':
case "soundcloud":
href = `https://soundcloud.com/${contact}`;
break;
case "medium":
href = `https://medium.com/${contact}`;
break;
default:
href = contact;
break;

View File

@@ -1,20 +1,23 @@
// @flow strict
import getContactHref from './get-contact-href';
import getContactHref from "./get-contact-href";
test('getContactHref', () => {
expect(getContactHref('twitter', '#')).toBe('https://www.twitter.com/#');
expect(getContactHref('github', '#')).toBe('https://github.com/#');
expect(getContactHref('email', '#')).toBe('mailto:#');
expect(getContactHref('vkontakte', '#')).toBe('https://vk.com/#');
expect(getContactHref('telegram', '#')).toBe('https://t.me/#');
expect(getContactHref('rss', '#')).toBe('#');
expect(getContactHref('linkedin', '#')).toBe('https://www.linkedin.com/in/#');
expect(getContactHref('instagram', '#')).toBe('https://www.instagram.com/#');
expect(getContactHref('line', '#')).toBe('line://ti/p/#');
expect(getContactHref('facebook', '#')).toBe('https://www.facebook.com/#');
expect(getContactHref('gitlab', '#')).toBe('https://www.gitlab.com/#');
expect(getContactHref('weibo', '#')).toBe('https://www.weibo.com/#');
expect(getContactHref('codepen', '#')).toBe('https://www.codepen.io/#');
expect(getContactHref('youtube', '#')).toBe('https://www.youtube.com/channel/#');
expect(getContactHref('soundcloud', '#')).toBe('https://soundcloud.com/#');
test("getContactHref", () => {
expect(getContactHref("twitter", "#")).toBe("https://www.twitter.com/#");
expect(getContactHref("github", "#")).toBe("https://github.com/#");
expect(getContactHref("email", "#")).toBe("mailto:#");
expect(getContactHref("vkontakte", "#")).toBe("https://vk.com/#");
expect(getContactHref("telegram", "#")).toBe("https://t.me/#");
expect(getContactHref("rss", "#")).toBe("#");
expect(getContactHref("linkedin", "#")).toBe("https://www.linkedin.com/in/#");
expect(getContactHref("instagram", "#")).toBe("https://www.instagram.com/#");
expect(getContactHref("line", "#")).toBe("line://ti/p/#");
expect(getContactHref("facebook", "#")).toBe("https://www.facebook.com/#");
expect(getContactHref("gitlab", "#")).toBe("https://www.gitlab.com/#");
expect(getContactHref("weibo", "#")).toBe("https://www.weibo.com/#");
expect(getContactHref("codepen", "#")).toBe("https://www.codepen.io/#");
expect(getContactHref("youtube", "#")).toBe(
"https://www.youtube.com/channel/#"
);
expect(getContactHref("soundcloud", "#")).toBe("https://soundcloud.com/#");
expect(getContactHref("medium", "#")).toBe("https://medium.com/#");
});

View File

@@ -1,55 +1,58 @@
// @flow strict
import { ICONS } from '../constants';
import { ICONS } from "../constants";
const getIcon = (name: string) => {
let icon;
switch (name) {
case 'twitter':
case "twitter":
icon = ICONS.TWITTER;
break;
case 'github':
case "github":
icon = ICONS.GITHUB;
break;
case 'vkontakte':
case "vkontakte":
icon = ICONS.VKONTAKTE;
break;
case 'telegram':
case "telegram":
icon = ICONS.TELEGRAM;
break;
case 'email':
case "email":
icon = ICONS.EMAIL;
break;
case 'rss':
case "rss":
icon = ICONS.RSS;
break;
case 'linkedin':
case "linkedin":
icon = ICONS.LINKEDIN;
break;
case 'instagram':
case "instagram":
icon = ICONS.INSTAGRAM;
break;
case 'line':
case "line":
icon = ICONS.LINE;
break;
case 'facebook':
case "facebook":
icon = ICONS.FACEBOOK;
break;
case 'gitlab':
case "gitlab":
icon = ICONS.GITLAB;
break;
case 'weibo':
case "weibo":
icon = ICONS.WEIBO;
break;
case 'codepen':
case "codepen":
icon = ICONS.CODEPEN;
break;
case 'youtube':
case "youtube":
icon = ICONS.YOUTUBE;
break;
case 'soundcloud':
case "soundcloud":
icon = ICONS.SOUNDCLOUD;
break;
case "medium":
icon = ICONS.MEDIUM;
break;
default:
icon = {};
break;

View File

@@ -1,21 +1,22 @@
// @flow strict
import getIcon from './get-icon';
import { ICONS } from '../constants';
import getIcon from "./get-icon";
import { ICONS } from "../constants";
test('getIcon', () => {
expect(getIcon('twitter')).toBe(ICONS.TWITTER);
expect(getIcon('github')).toBe(ICONS.GITHUB);
expect(getIcon('vkontakte')).toBe(ICONS.VKONTAKTE);
expect(getIcon('telegram')).toEqual(ICONS.TELEGRAM);
expect(getIcon('email')).toEqual(ICONS.EMAIL);
expect(getIcon('rss')).toEqual(ICONS.RSS);
expect(getIcon('linkedin')).toEqual(ICONS.LINKEDIN);
expect(getIcon('instagram')).toEqual(ICONS.INSTAGRAM);
expect(getIcon('line')).toEqual(ICONS.LINE);
expect(getIcon('facebook')).toEqual(ICONS.FACEBOOK);
expect(getIcon('gitlab')).toEqual(ICONS.GITLAB);
expect(getIcon('weibo')).toEqual(ICONS.WEIBO);
expect(getIcon('codepen')).toEqual(ICONS.CODEPEN);
expect(getIcon('youtube')).toEqual(ICONS.YOUTUBE);
expect(getIcon('soundcloud')).toEqual(ICONS.SOUNDCLOUD);
});
test("getIcon", () => {
expect(getIcon("twitter")).toBe(ICONS.TWITTER);
expect(getIcon("github")).toBe(ICONS.GITHUB);
expect(getIcon("vkontakte")).toBe(ICONS.VKONTAKTE);
expect(getIcon("telegram")).toEqual(ICONS.TELEGRAM);
expect(getIcon("email")).toEqual(ICONS.EMAIL);
expect(getIcon("rss")).toEqual(ICONS.RSS);
expect(getIcon("linkedin")).toEqual(ICONS.LINKEDIN);
expect(getIcon("instagram")).toEqual(ICONS.INSTAGRAM);
expect(getIcon("line")).toEqual(ICONS.LINE);
expect(getIcon("facebook")).toEqual(ICONS.FACEBOOK);
expect(getIcon("gitlab")).toEqual(ICONS.GITLAB);
expect(getIcon("weibo")).toEqual(ICONS.WEIBO);
expect(getIcon("codepen")).toEqual(ICONS.CODEPEN);
expect(getIcon("youtube")).toEqual(ICONS.YOUTUBE);
expect(getIcon("soundcloud")).toEqual(ICONS.SOUNDCLOUD);
expect(getIcon("medium")).toEqual(ICONS.MEDIUM);
});