mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-21 04:01:41 +10:00
Merge branch 'develop' into develop
This commit is contained in:
@ -37,16 +37,19 @@ const ContactA = () => {
|
||||
<ContactItem
|
||||
label={t('shared.forms.phone')}
|
||||
value={data.profile.phone}
|
||||
icon="phone"
|
||||
link={`tel:${data.profile.phone}`}
|
||||
/>
|
||||
<ContactItem
|
||||
label={t('shared.forms.website')}
|
||||
value={data.profile.website}
|
||||
icon="website"
|
||||
link={data.profile.website}
|
||||
/>
|
||||
<ContactItem
|
||||
label={t('shared.forms.email')}
|
||||
value={data.profile.email}
|
||||
icon="email"
|
||||
link={`mailto:${data.profile.email}`}
|
||||
/>
|
||||
|
||||
|
||||
@ -37,16 +37,19 @@ const ContactB = () => {
|
||||
<ContactItem
|
||||
label={t('shared.forms.phone')}
|
||||
value={data.profile.phone}
|
||||
icon="phone"
|
||||
link={`tel:${data.profile.phone}`}
|
||||
/>
|
||||
<ContactItem
|
||||
label={t('shared.forms.website')}
|
||||
value={data.profile.website}
|
||||
icon="website"
|
||||
link={data.profile.website}
|
||||
/>
|
||||
<ContactItem
|
||||
label={t('shared.forms.email')}
|
||||
value={data.profile.email}
|
||||
icon="email"
|
||||
link={`mailto:${data.profile.email}`}
|
||||
/>
|
||||
|
||||
|
||||
@ -1,37 +1,47 @@
|
||||
import React, { memo, useContext } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import ReactMarkdown from 'react-markdown';
|
||||
import PageContext from '../../../contexts/PageContext';
|
||||
import { formatDateRange, safetyCheck } from '../../../utils';
|
||||
|
||||
const EducationItem = ({ item, language }) => (
|
||||
<div>
|
||||
<div className="flex justify-between items-center">
|
||||
<div className="flex flex-col text-left mr-2">
|
||||
<h6 className="font-semibold">{item.institution}</h6>
|
||||
<span className="text-xs">
|
||||
<strong>{item.degree}</strong> {item.field}
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex flex-col items-end text-right">
|
||||
{item.startDate && (
|
||||
<h6 className="text-xs font-medium mb-1">
|
||||
(
|
||||
{formatDateRange({
|
||||
startDate: item.startDate,
|
||||
endDate: item.endDate,
|
||||
language,
|
||||
})}
|
||||
)
|
||||
</h6>
|
||||
)}
|
||||
<span className="text-sm font-medium">{item.gpa}</span>
|
||||
const EducationItem = ({ item, language }) => {
|
||||
const { t } = useTranslation();
|
||||
return (
|
||||
<div>
|
||||
<div className="flex justify-between items-center">
|
||||
<div className="flex flex-col text-left mr-2">
|
||||
<h6 className="font-semibold">{item.institution}</h6>
|
||||
<span className="text-xs">
|
||||
<strong>{item.degree}</strong> {item.field}
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex flex-col items-end text-right">
|
||||
{item.startDate && (
|
||||
<h6 className="text-xs font-medium mb-1">
|
||||
(
|
||||
{formatDateRange(
|
||||
{
|
||||
startDate: item.startDate,
|
||||
endDate: item.endDate,
|
||||
language,
|
||||
},
|
||||
t,
|
||||
)}
|
||||
)
|
||||
</h6>
|
||||
)}
|
||||
<span className="text-sm font-medium">{item.gpa}</span>
|
||||
</div>
|
||||
</div>
|
||||
{item.summary && (
|
||||
<ReactMarkdown
|
||||
className="markdown mt-2 text-sm"
|
||||
source={item.summary}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
{item.summary && (
|
||||
<ReactMarkdown className="markdown mt-2 text-sm" source={item.summary} />
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
);
|
||||
};
|
||||
|
||||
const EducationA = () => {
|
||||
const { data, heading: Heading } = useContext(PageContext);
|
||||
|
||||
@ -7,7 +7,8 @@ import {
|
||||
FaDribbble,
|
||||
FaInstagram,
|
||||
FaStackOverflow,
|
||||
FaBehance
|
||||
FaBehance,
|
||||
FaGitlab
|
||||
} from 'react-icons/fa';
|
||||
import { MdPhone, MdEmail } from 'react-icons/md';
|
||||
|
||||
@ -23,6 +24,7 @@ const Icons = {
|
||||
instagram: FaInstagram,
|
||||
stackoverflow: FaStackOverflow,
|
||||
behance: FaBehance,
|
||||
gitlab: FaGitlab
|
||||
};
|
||||
|
||||
export default Icons;
|
||||
|
||||
@ -15,7 +15,7 @@ const SkillsA = () => {
|
||||
return safetyCheck(data.skills) ? (
|
||||
<div>
|
||||
<Heading>{data.skills.heading}</Heading>
|
||||
<div className="grid grid-cols-2 row-gap-2 col-gap-4">
|
||||
<div className="grid grid-cols-2 gap-y-2 gap-x-4">
|
||||
{data.skills.items.map(SkillItem)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,32 +1,42 @@
|
||||
import React, { memo, useContext } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import ReactMarkdown from 'react-markdown';
|
||||
import PageContext from '../../../contexts/PageContext';
|
||||
import { formatDateRange, safetyCheck } from '../../../utils';
|
||||
|
||||
const WorkItem = ({ item, language }) => (
|
||||
<div>
|
||||
<div className="flex justify-between items-center">
|
||||
<div className="flex flex-col text-left mr-2">
|
||||
<h6 className="font-semibold">{item.company}</h6>
|
||||
<span className="text-xs">{item.position}</span>
|
||||
const WorkItem = ({ item, language }) => {
|
||||
const { t } = useTranslation();
|
||||
return (
|
||||
<div>
|
||||
<div className="flex justify-between items-center">
|
||||
<div className="flex flex-col text-left mr-2">
|
||||
<h6 className="font-semibold">{item.company}</h6>
|
||||
<span className="text-xs">{item.position}</span>
|
||||
</div>
|
||||
{item.startDate && (
|
||||
<h6 className="text-xs font-medium text-right">
|
||||
(
|
||||
{formatDateRange(
|
||||
{
|
||||
startDate: item.startDate,
|
||||
endDate: item.endDate,
|
||||
language,
|
||||
},
|
||||
t,
|
||||
)}
|
||||
)
|
||||
</h6>
|
||||
)}
|
||||
</div>
|
||||
{item.startDate && (
|
||||
<h6 className="text-xs font-medium text-right">
|
||||
(
|
||||
{formatDateRange({
|
||||
startDate: item.startDate,
|
||||
endDate: item.endDate,
|
||||
language,
|
||||
})}
|
||||
)
|
||||
</h6>
|
||||
{item.summary && (
|
||||
<ReactMarkdown
|
||||
className="markdown mt-2 text-sm"
|
||||
source={item.summary}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
{item.summary && (
|
||||
<ReactMarkdown className="markdown mt-2 text-sm" source={item.summary} />
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
);
|
||||
};
|
||||
|
||||
const WorkA = () => {
|
||||
const { data, heading: Heading } = useContext(PageContext);
|
||||
|
||||
Reference in New Issue
Block a user