mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-15 15:26:59 +10:00
fixes #2868
This commit is contained in:
@@ -45,12 +45,13 @@ export function AwardsItem({ className, ...item }: AwardsItemProps) {
|
||||
<div className={cn("awards-item", className)}>
|
||||
{/* Header */}
|
||||
<div className="section-item-header awards-item-header">
|
||||
<div className="flex flex-wrap items-start justify-between gap-x-2">
|
||||
{headerFields.map((field, index) => (
|
||||
<div key={field.key} className={cn(index === 0 && "basis-full")}>
|
||||
{field.content}
|
||||
</div>
|
||||
))}
|
||||
<div className="flex items-start justify-between gap-x-2">
|
||||
<div className="flex min-w-0 flex-1 flex-col items-start">
|
||||
{headerFields.get("title")?.content}
|
||||
{headerFields.get("awarder")?.content}
|
||||
</div>
|
||||
|
||||
<div className="flex min-w-0 shrink-0 flex-col items-end text-end">{headerFields.get("date")?.content}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -45,12 +45,13 @@ export function CertificationsItem({ className, ...item }: CertificationsItemPro
|
||||
<div className={cn("certifications-item", className)}>
|
||||
{/* Header */}
|
||||
<div className="section-item-header certifications-item-header">
|
||||
<div className="flex flex-wrap items-start justify-between gap-x-2">
|
||||
{headerFields.map((field, index) => (
|
||||
<div key={field.key} className={cn(index === 0 && "basis-full")}>
|
||||
{field.content}
|
||||
</div>
|
||||
))}
|
||||
<div className="flex items-start justify-between gap-x-2">
|
||||
<div className="flex min-w-0 flex-1 flex-col items-start">
|
||||
{headerFields.get("title")?.content}
|
||||
{headerFields.get("issuer")?.content}
|
||||
</div>
|
||||
|
||||
<div className="flex min-w-0 shrink-0 flex-col items-end text-end">{headerFields.get("date")?.content}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -52,12 +52,16 @@ export function EducationItem({ className, ...item }: EducationItemProps) {
|
||||
<div className={cn("education-item", className)}>
|
||||
{/* Header */}
|
||||
<div className="section-item-header education-item-header mb-2">
|
||||
<div className="flex flex-wrap items-start justify-between gap-x-2">
|
||||
{headerFields.map((field, index) => (
|
||||
<div key={field.key} className={cn(index === 0 && "basis-full")}>
|
||||
{field.content}
|
||||
</div>
|
||||
))}
|
||||
<div className="flex items-start justify-between gap-x-2">
|
||||
<div className="flex min-w-0 flex-1 flex-col items-start">
|
||||
{headerFields.get("school")?.content}
|
||||
{headerFields.get("area")?.content}
|
||||
</div>
|
||||
|
||||
<div className="flex min-w-0 shrink-0 flex-col items-end text-end">
|
||||
{headerFields.get("degreeAndGrade")?.content}
|
||||
{headerFields.get("locationAndPeriod")?.content}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -46,17 +46,20 @@ export function ExperienceItem({ className, ...item }: ExperienceItemProps) {
|
||||
content: <span className="section-item-metadata experience-item-period">{item.period}</span>,
|
||||
},
|
||||
);
|
||||
|
||||
return (
|
||||
<div className={cn("experience-item", className)}>
|
||||
{/* Header */}
|
||||
<div className="section-item-header experience-item-header">
|
||||
<div className="flex flex-wrap items-start justify-between gap-x-2">
|
||||
{headerFields.map((field, index) => (
|
||||
<div key={field.key} className={cn(index === 0 && "basis-full")}>
|
||||
{field.content}
|
||||
</div>
|
||||
))}
|
||||
<div className="flex items-start justify-between gap-x-2">
|
||||
<div className="flex min-w-0 flex-1 flex-col items-start">
|
||||
{headerFields.get("company")?.content}
|
||||
{headerFields.get("position")?.content}
|
||||
</div>
|
||||
|
||||
<div className="flex min-w-0 shrink-0 flex-col items-end text-end">
|
||||
{headerFields.get("location")?.content}
|
||||
{headerFields.get("period")?.content}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -65,7 +68,7 @@ export function ExperienceItem({ className, ...item }: ExperienceItemProps) {
|
||||
<div className="experience-item-roles mt-0 flex flex-col gap-y-1">
|
||||
{item.roles.map((role) => (
|
||||
<div key={role.id} className="experience-item-role">
|
||||
<div className="flex flex-wrap items-start justify-between gap-x-2">
|
||||
<div className="grid grid-cols-2 items-start justify-between gap-x-2">
|
||||
<div className="section-item-metadata experience-item-role-position">{role.position}</div>
|
||||
<div className="section-item-metadata experience-item-role-period">{role.period}</div>
|
||||
</div>
|
||||
|
||||
@@ -45,12 +45,13 @@ export function PublicationsItem({ className, ...item }: PublicationsItemProps)
|
||||
<div className={cn("publications-item", className)}>
|
||||
{/* Header */}
|
||||
<div className="section-item-header publications-item-header">
|
||||
<div className="flex flex-wrap items-start justify-between gap-x-2">
|
||||
{headerFields.map((field, index) => (
|
||||
<div key={field.key} className={cn(index === 0 && "basis-full")}>
|
||||
{field.content}
|
||||
</div>
|
||||
))}
|
||||
<div className="flex items-start justify-between gap-x-2">
|
||||
<div className="flex min-w-0 flex-1 flex-col items-start">
|
||||
{headerFields.get("title")?.content}
|
||||
{headerFields.get("publisher")?.content}
|
||||
</div>
|
||||
|
||||
<div className="flex min-w-0 shrink-0 flex-col items-end text-end">{headerFields.get("date")?.content}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -40,12 +40,12 @@ export function ReferencesItem({ className, ...item }: ReferencesItemProps) {
|
||||
<div className={cn("references-item", className)}>
|
||||
{/* Header */}
|
||||
<div className="section-item-header references-item-header">
|
||||
<div className="flex flex-wrap items-start justify-between gap-x-2">
|
||||
{headerFields.map((field, index) => (
|
||||
<div key={field.key} className={cn(index === 0 && "basis-full")}>
|
||||
{field.content}
|
||||
</div>
|
||||
))}
|
||||
<div className="flex items-start justify-between gap-x-2">
|
||||
<div className="flex min-w-0 flex-1 flex-col items-start">{headerFields.get("name")?.content}</div>
|
||||
|
||||
<div className="flex min-w-0 shrink-0 flex-col items-end text-end">
|
||||
{headerFields.get("position")?.content}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -45,12 +45,13 @@ export function VolunteerItem({ className, ...item }: VolunteerItemProps) {
|
||||
<div className={cn("volunteer-item", className)}>
|
||||
{/* Header */}
|
||||
<div className="section-item-header volunteer-item-header">
|
||||
<div className="flex flex-wrap items-start justify-between gap-x-2">
|
||||
{headerFields.map((field, index) => (
|
||||
<div key={field.key} className={cn(index === 0 && "basis-full")}>
|
||||
{field.content}
|
||||
</div>
|
||||
))}
|
||||
<div className="flex items-start justify-between gap-x-2">
|
||||
<div className="flex min-w-0 flex-1 flex-col items-start">
|
||||
{headerFields.get("organization")?.content}
|
||||
{headerFields.get("location")?.content}
|
||||
</div>
|
||||
|
||||
<div className="flex min-w-0 shrink-0 flex-col items-end text-end">{headerFields.get("period")?.content}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ type LinkedTitleProps = {
|
||||
export function LinkedTitle({ title, website, showLinkInTitle, className }: LinkedTitleProps) {
|
||||
if (showLinkInTitle && website?.url) {
|
||||
return (
|
||||
<a href={website.url} target="_blank" rel="noopener" className={cn("inline-block", className)}>
|
||||
<a href={website.url} target="_blank" rel="noopener" className={cn("inline", className)}>
|
||||
<strong>{title}</strong>
|
||||
</a>
|
||||
);
|
||||
|
||||
+2
-1
@@ -19,5 +19,6 @@ export function filterFieldValues<TKey extends string, TField extends KeyedField
|
||||
values: KeyValueMap<TKey>,
|
||||
...fields: TField[]
|
||||
) {
|
||||
return fields.filter((field) => Boolean(values[field.key]?.trim()));
|
||||
const filteredFields = fields.filter((field) => Boolean(values[field.key]?.trim()));
|
||||
return new Map(filteredFields.map((field) => [field.key, field] as const));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user