Update socials imports so unused ones could be tree shook
This commit is contained in:
parent
f7589b6ca7
commit
edfb3ed8d0
5 changed files with 207 additions and 55 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
import type { ExperienceSection } from '@/types/experience-section';
|
import type { ExperienceSection } from '@/types/experience-section';
|
||||||
|
|
||||||
import getSocial from '../socials';
|
import { facebook, github, instagram, linkedin, twitter, website } from '../socials';
|
||||||
|
|
||||||
const experienceData: ExperienceSection = {
|
const experienceData: ExperienceSection = {
|
||||||
config: {
|
config: {
|
||||||
|
|
@ -53,7 +53,7 @@ const experienceData: ExperienceSection = {
|
||||||
url: 'https://firebase.google.com/',
|
url: 'https://firebase.google.com/',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
socials: [getSocial('facebook', '#'), getSocial('linkedin', '#')],
|
socials: [facebook('#'), linkedin('#')],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
role: 'React.js developer',
|
role: 'React.js developer',
|
||||||
|
|
@ -92,7 +92,7 @@ const experienceData: ExperienceSection = {
|
||||||
url: 'https://eslint.org/',
|
url: 'https://eslint.org/',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
socials: [getSocial('website', '#'), getSocial('instagram', '#')],
|
socials: [website('#'), instagram('#')],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
role: 'Junior front-end developer',
|
role: 'Junior front-end developer',
|
||||||
|
|
@ -125,7 +125,7 @@ const experienceData: ExperienceSection = {
|
||||||
url: 'https://pnpm.io/',
|
url: 'https://pnpm.io/',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
socials: [getSocial('twitter', '#'), getSocial('github', '#')],
|
socials: [twitter('#'), github('#')],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { MainSection } from '@/types/main-section';
|
import type { MainSection } from '@/types/main-section';
|
||||||
|
|
||||||
import getSocial from '../socials';
|
import { facebook, github, linkedin, twitter } from '../socials';
|
||||||
|
|
||||||
const mainData: MainSection = {
|
const mainData: MainSection = {
|
||||||
config: {
|
config: {
|
||||||
|
|
@ -23,12 +23,7 @@ const mainData: MainSection = {
|
||||||
label: 'Download CV',
|
label: 'Download CV',
|
||||||
url: '#',
|
url: '#',
|
||||||
},
|
},
|
||||||
socials: [
|
socials: [facebook('#'), github('#'), linkedin('#'), twitter('#')],
|
||||||
getSocial('facebook', '#'),
|
|
||||||
getSocial('github', '#'),
|
|
||||||
getSocial('linkedin', '#'),
|
|
||||||
getSocial('twitter', '#'),
|
|
||||||
],
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default mainData;
|
export default mainData;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { PortfolioSection } from '@/types/portfolio-section';
|
import type { PortfolioSection } from '@/types/portfolio-section';
|
||||||
|
|
||||||
import getSocial from '../socials';
|
import { demo, github, mockups, website } from '../socials';
|
||||||
|
|
||||||
const portfolioData: PortfolioSection = {
|
const portfolioData: PortfolioSection = {
|
||||||
config: {
|
config: {
|
||||||
|
|
@ -54,7 +54,7 @@ const portfolioData: PortfolioSection = {
|
||||||
url: 'https://prettier.io/',
|
url: 'https://prettier.io/',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
socials: [getSocial('mockups', '#'), getSocial('demo', '#')],
|
socials: [mockups('#'), demo('#')],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'TruQuest',
|
name: 'TruQuest',
|
||||||
|
|
@ -95,7 +95,7 @@ const portfolioData: PortfolioSection = {
|
||||||
url: 'https://www.postgresql.org/',
|
url: 'https://www.postgresql.org/',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
socials: [getSocial('mockups', '#'), getSocial('demo', '#')],
|
socials: [mockups('#'), demo('#')],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Software Chasers',
|
name: 'Software Chasers',
|
||||||
|
|
@ -142,7 +142,7 @@ const portfolioData: PortfolioSection = {
|
||||||
url: 'https://pnpm.io/',
|
url: 'https://pnpm.io/',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
socials: [getSocial('website', '#'), getSocial('github', '#')],
|
socials: [website('#'), github('#')],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Disco Ninjas',
|
name: 'Disco Ninjas',
|
||||||
|
|
@ -177,7 +177,7 @@ const portfolioData: PortfolioSection = {
|
||||||
url: 'https://firebase.google.com/',
|
url: 'https://firebase.google.com/',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
socials: [getSocial('mockups', '#')],
|
socials: [mockups('#'), github('#')],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import type { TestimonialsSection } from '@/types/testimonials-section';
|
import type { TestimonialsSection } from '@/types/testimonials-section';
|
||||||
|
|
||||||
import getSocial from '../socials';
|
import { github, linkedin, website } from '../socials';
|
||||||
|
|
||||||
const testimonialsData: TestimonialsSection = {
|
const testimonialsData: TestimonialsSection = {
|
||||||
config: {
|
config: {
|
||||||
|
|
@ -14,7 +14,7 @@ const testimonialsData: TestimonialsSection = {
|
||||||
relation: 'We work together as front-end developers at Google',
|
relation: 'We work together as front-end developers at Google',
|
||||||
content:
|
content:
|
||||||
'In nec mattis sem. Morbi purus lorem, euismod ac varius at, aliquet vitae augue. Pellentesque ut facilisis felis. In sed dui blandit, aliquet odio eu, elementum leo. In facilisis dapibus tortor ac volutpat. Cras cursus nec odio maximus elementum.',
|
'In nec mattis sem. Morbi purus lorem, euismod ac varius at, aliquet vitae augue. Pellentesque ut facilisis felis. In sed dui blandit, aliquet odio eu, elementum leo. In facilisis dapibus tortor ac volutpat. Cras cursus nec odio maximus elementum.',
|
||||||
socials: [getSocial('github', '#'), getSocial('linkedin', '#')],
|
socials: [github('#'), linkedin('#')],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
image: import('@/assets/testimonials/testimonial-2.jpeg'),
|
image: import('@/assets/testimonials/testimonial-2.jpeg'),
|
||||||
|
|
@ -22,7 +22,7 @@ const testimonialsData: TestimonialsSection = {
|
||||||
relation: 'My project manager at GitLab',
|
relation: 'My project manager at GitLab',
|
||||||
content:
|
content:
|
||||||
'Praesent nec congue elit. Vestibulum lobortis congue ipsum, a gravida mi tempus ac. Mauris aliquet purus nibh, vel varius turpis tempus non. Nullam eget ultricies orci. Quisque nulla ante, auctor eget varius ac, imperdiet nec magna.',
|
'Praesent nec congue elit. Vestibulum lobortis congue ipsum, a gravida mi tempus ac. Mauris aliquet purus nibh, vel varius turpis tempus non. Nullam eget ultricies orci. Quisque nulla ante, auctor eget varius ac, imperdiet nec magna.',
|
||||||
socials: [getSocial('linkedin', '#')],
|
socials: [linkedin('#')],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
image: import('@/assets/testimonials/testimonial-3.jpeg'),
|
image: import('@/assets/testimonials/testimonial-3.jpeg'),
|
||||||
|
|
@ -30,7 +30,7 @@ const testimonialsData: TestimonialsSection = {
|
||||||
relation: 'My customer for sidewing.com website',
|
relation: 'My customer for sidewing.com website',
|
||||||
content:
|
content:
|
||||||
'Mauris tincidunt at purus vehicula porta. Mauris eget mollis turpis. Sed iaculis rutrum pharetra. Vivamus risus quam, suscipit et semper ut, aliquet ut tellus. Donec quis auctor nunc.',
|
'Mauris tincidunt at purus vehicula porta. Mauris eget mollis turpis. Sed iaculis rutrum pharetra. Vivamus risus quam, suscipit et semper ut, aliquet ut tellus. Donec quis auctor nunc.',
|
||||||
socials: [getSocial('github', '#'), getSocial('website', '#')],
|
socials: [github('#'), website('#')],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,42 +2,199 @@ import type { Social } from '../types/common';
|
||||||
|
|
||||||
type SocialWithoutUrl = Omit<Social, 'url'>;
|
type SocialWithoutUrl = Omit<Social, 'url'>;
|
||||||
|
|
||||||
const socials = {
|
// GENERAL
|
||||||
facebook: { name: 'Facebook', icon: 'fa6-brands:facebook-f' },
|
|
||||||
github: { name: 'GitHub', icon: 'fa6-brands:github' },
|
|
||||||
linkedin: { name: 'LinkedIn', icon: 'fa6-brands:linkedin-in' },
|
|
||||||
twitter: { name: 'Twitter', icon: 'fa6-brands:twitter' },
|
|
||||||
instagram: { name: 'Instagram', icon: 'fa6-brands:instagram' },
|
|
||||||
youtube: { name: 'YouTube', icon: 'fa6-brands:youtube' },
|
|
||||||
twitch: { name: 'Twitch', icon: 'fa6-brands:twitch' },
|
|
||||||
discord: { name: 'Discord', icon: 'fa6-brands:discord' },
|
|
||||||
stackoverflow: { name: 'Stack Overflow', icon: 'fa6-brands:stack-overflow' },
|
|
||||||
codepen: { name: 'CodePen', icon: 'fa6-brands:codepen' },
|
|
||||||
dev: { name: 'Dev', icon: 'fa6-brands:dev' },
|
|
||||||
behance: { name: 'Behance', icon: 'fa6-brands:behance' },
|
|
||||||
dribbble: { name: 'Dribbble', icon: 'fa6-brands:dribbble' },
|
|
||||||
medium: { name: 'Medium', icon: 'fa6-brands:medium' },
|
|
||||||
reddit: { name: 'Reddit', icon: 'fa6-brands:reddit' },
|
|
||||||
quora: { name: 'Quora', icon: 'fa6-brands:quora' },
|
|
||||||
spotify: { name: 'Spotify', icon: 'fa6-brands:spotify' },
|
|
||||||
soundcloud: { name: 'SoundCloud', icon: 'fa6-brands:soundcloud' },
|
|
||||||
lastfm: { name: 'Last.fm', icon: 'fa6-brands:lastfm' },
|
|
||||||
vimeo: { name: 'Vimeo', icon: 'fa6-brands:vimeo' },
|
|
||||||
pinterest: { name: 'Pinterest', icon: 'fa6-brands:pinterest' },
|
|
||||||
tumblr: { name: 'Tumblr', icon: 'fa6-brands:tumblr' },
|
|
||||||
flickr: { name: 'Flickr', icon: 'fa6-brands:flickr' },
|
|
||||||
figma: { name: 'Figma', icon: 'fa6-brands:figma' },
|
|
||||||
|
|
||||||
website: { name: 'Website', icon: 'fa6-solid:globe' },
|
export const facebook = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
demo: { name: 'App demo', icon: 'fa6-solid:desktop' },
|
name: 'Facebook',
|
||||||
mockups: { name: 'Mockups', icon: 'fa6-solid:image' },
|
icon: 'fa6-brands:facebook-f',
|
||||||
repository: { name: 'Repository', icon: 'fa6-solid:code-branch' },
|
|
||||||
} satisfies Record<string, SocialWithoutUrl>;
|
|
||||||
|
|
||||||
const getSocial = (name: keyof typeof socials, url: string, overrides?: Partial<SocialWithoutUrl>): Social => ({
|
|
||||||
url,
|
url,
|
||||||
...socials[name],
|
...override,
|
||||||
...overrides,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export default getSocial;
|
export const linkedin = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'LinkedIn',
|
||||||
|
icon: 'fa6-brands:linkedin-in',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const twitter = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Twitter',
|
||||||
|
icon: 'fa6-brands:twitter',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const pinterest = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Pinterest',
|
||||||
|
icon: 'fa6-brands:pinterest',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
// CODE
|
||||||
|
|
||||||
|
export const github = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'GitHub',
|
||||||
|
icon: 'fa6-brands:github',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const codepen = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'CodePen',
|
||||||
|
icon: 'fa6-brands:codepen',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const stackblitz = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'StackBlitz',
|
||||||
|
icon: 'simple-icons:stackblitz',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const codesandbox = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'CodeSandbox',
|
||||||
|
icon: 'simple-icons:codesandbox',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
// BLOG
|
||||||
|
|
||||||
|
export const dev = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Dev',
|
||||||
|
icon: 'fa6-brands:dev',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const medium = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Medium',
|
||||||
|
icon: 'fa6-brands:medium',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
// FORUM / CHAT
|
||||||
|
|
||||||
|
export const reddit = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Reddit',
|
||||||
|
icon: 'fa6-brands:reddit',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const quora = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Quora',
|
||||||
|
icon: 'fa6-brands:quora',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const stackoverflow = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Stack Overflow',
|
||||||
|
icon: 'fa6-brands:stack-overflow',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
// DESIGN
|
||||||
|
|
||||||
|
export const instagram = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Instagram',
|
||||||
|
icon: 'fa6-brands:instagram',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
export const behance = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Behance',
|
||||||
|
icon: 'fa6-brands:behance',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const dribbble = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Dribbble',
|
||||||
|
icon: 'fa6-brands:dribbble',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const figma = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Figma',
|
||||||
|
icon: 'fa6-brands:figma',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
// MUSIC
|
||||||
|
|
||||||
|
export const spotify = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Spotify',
|
||||||
|
icon: 'fa6-brands:spotify',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const soundcloud = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'SoundCloud',
|
||||||
|
icon: 'fa6-brands:soundcloud',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
// VIDEO
|
||||||
|
|
||||||
|
export const youtube = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'YouTube',
|
||||||
|
icon: 'fa6-brands:youtube',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const twitch = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Twitch',
|
||||||
|
icon: 'fa6-brands:twitch',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const vimeo = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Vimeo',
|
||||||
|
icon: 'fa6-brands:vimeo',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
// PROJECT TYPE
|
||||||
|
|
||||||
|
export const website = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Website',
|
||||||
|
icon: 'fa6-solid:globe',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const demo = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'App demo',
|
||||||
|
icon: 'fa6-solid:desktop',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const mockups = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Mockups',
|
||||||
|
icon: 'fa6-solid:image',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const repository = (url: string, override?: Partial<SocialWithoutUrl>): Social => ({
|
||||||
|
name: 'Repository',
|
||||||
|
icon: 'fa6-solid:code-branch',
|
||||||
|
url,
|
||||||
|
...override,
|
||||||
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue