mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-10 04:22:27 +10:00
Merge pull request #1999 from StijnGroenen/feature/custom-field-url
feat(templates): added url support for custom fields
This commit is contained in:
@ -64,7 +64,13 @@ const Header = () => {
|
|||||||
{basics.customFields.map((item) => (
|
{basics.customFields.map((item) => (
|
||||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||||
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
||||||
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
{isUrl(item.value) ? (
|
||||||
|
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
|
||||||
|
{item.name || item.value}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -64,7 +64,13 @@ const Header = () => {
|
|||||||
{basics.customFields.map((item) => (
|
{basics.customFields.map((item) => (
|
||||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||||
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
||||||
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
{isUrl(item.value) ? (
|
||||||
|
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
|
||||||
|
{item.name || item.value}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -65,7 +65,13 @@ const Header = () => {
|
|||||||
{basics.customFields.map((item) => (
|
{basics.customFields.map((item) => (
|
||||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||||
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
||||||
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
{isUrl(item.value) ? (
|
||||||
|
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
|
||||||
|
{item.name || item.value}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -82,7 +82,13 @@ const Header = () => {
|
|||||||
<Fragment key={item.id}>
|
<Fragment key={item.id}>
|
||||||
<div className="flex items-center gap-x-1.5">
|
<div className="flex items-center gap-x-1.5">
|
||||||
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
||||||
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
{isUrl(item.value) ? (
|
||||||
|
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
|
||||||
|
{item.name || item.value}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div className="bg-text size-1 rounded-full last:hidden" />
|
<div className="bg-text size-1 rounded-full last:hidden" />
|
||||||
</Fragment>
|
</Fragment>
|
||||||
|
|||||||
@ -65,7 +65,13 @@ const Header = () => {
|
|||||||
<Fragment key={item.id}>
|
<Fragment key={item.id}>
|
||||||
<div className="flex items-center gap-x-1.5">
|
<div className="flex items-center gap-x-1.5">
|
||||||
<i className={cn(`ph ph-bold ph-${item.icon}`)} />
|
<i className={cn(`ph ph-bold ph-${item.icon}`)} />
|
||||||
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
{isUrl(item.value) ? (
|
||||||
|
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
|
||||||
|
{item.name || item.value}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</Fragment>
|
</Fragment>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@ -65,7 +65,13 @@ const Header = () => {
|
|||||||
{basics.customFields.map((item) => (
|
{basics.customFields.map((item) => (
|
||||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||||
<i className={cn(`ph ph-bold ph-${item.icon} text-primary`)} />
|
<i className={cn(`ph ph-bold ph-${item.icon} text-primary`)} />
|
||||||
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
{isUrl(item.value) ? (
|
||||||
|
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
|
||||||
|
{item.name || item.value}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -65,7 +65,13 @@ const Header = () => {
|
|||||||
{basics.customFields.map((item) => (
|
{basics.customFields.map((item) => (
|
||||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||||
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
||||||
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
{isUrl(item.value) ? (
|
||||||
|
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
|
||||||
|
{item.name || item.value}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -81,7 +81,13 @@ const Header = () => {
|
|||||||
{basics.customFields.map((item) => (
|
{basics.customFields.map((item) => (
|
||||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||||
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
||||||
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
{isUrl(item.value) ? (
|
||||||
|
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
|
||||||
|
{item.name || item.value}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -70,8 +70,16 @@ const Header = () => {
|
|||||||
{basics.customFields.map((item) => (
|
{basics.customFields.map((item) => (
|
||||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||||
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
||||||
<span className="text-primary">{item.name}</span>
|
{isUrl(item.value) ? (
|
||||||
<span>{item.value}</span>
|
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
|
||||||
|
{item.name || item.value}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
<span className="text-primary">{item.name}</span>
|
||||||
|
<span>{item.value}</span>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -66,7 +66,13 @@ const Header = () => {
|
|||||||
{basics.customFields.map((item) => (
|
{basics.customFields.map((item) => (
|
||||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||||
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
||||||
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
{isUrl(item.value) ? (
|
||||||
|
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
|
||||||
|
{item.name || item.value}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -84,7 +84,13 @@ const Header = () => {
|
|||||||
<Fragment key={item.id}>
|
<Fragment key={item.id}>
|
||||||
<div className="flex items-center gap-x-1.5">
|
<div className="flex items-center gap-x-1.5">
|
||||||
<i className={cn(`ph ph-bold ph-${item.icon}`)} />
|
<i className={cn(`ph ph-bold ph-${item.icon}`)} />
|
||||||
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
{isUrl(item.value) ? (
|
||||||
|
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
|
||||||
|
{item.name || item.value}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div className="size-1 rounded-full bg-background last:hidden" />
|
<div className="size-1 rounded-full bg-background last:hidden" />
|
||||||
</Fragment>
|
</Fragment>
|
||||||
|
|||||||
@ -66,7 +66,13 @@ const Header = () => {
|
|||||||
className="flex items-center gap-x-1.5 border-r pr-2 last:border-r-0 last:pr-0"
|
className="flex items-center gap-x-1.5 border-r pr-2 last:border-r-0 last:pr-0"
|
||||||
>
|
>
|
||||||
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
||||||
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
{isUrl(item.value) ? (
|
||||||
|
<a href={item.value} target="_blank" rel="noreferrer noopener nofollow">
|
||||||
|
{item.name || item.value}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<span>{[item.name, item.value].filter(Boolean).join(": ")}</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user