mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-09 20:12:26 +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) => (
|
||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||
<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>
|
||||
|
||||
@ -64,7 +64,13 @@ const Header = () => {
|
||||
{basics.customFields.map((item) => (
|
||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||
<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>
|
||||
|
||||
@ -65,7 +65,13 @@ const Header = () => {
|
||||
{basics.customFields.map((item) => (
|
||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||
<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>
|
||||
|
||||
@ -82,7 +82,13 @@ const Header = () => {
|
||||
<Fragment key={item.id}>
|
||||
<div className="flex items-center gap-x-1.5">
|
||||
<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 className="bg-text size-1 rounded-full last:hidden" />
|
||||
</Fragment>
|
||||
|
||||
@ -65,7 +65,13 @@ const Header = () => {
|
||||
<Fragment key={item.id}>
|
||||
<div className="flex items-center gap-x-1.5">
|
||||
<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>
|
||||
</Fragment>
|
||||
))}
|
||||
|
||||
@ -65,7 +65,13 @@ const Header = () => {
|
||||
{basics.customFields.map((item) => (
|
||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||
<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>
|
||||
|
||||
@ -65,7 +65,13 @@ const Header = () => {
|
||||
{basics.customFields.map((item) => (
|
||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||
<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>
|
||||
|
||||
@ -81,7 +81,13 @@ const Header = () => {
|
||||
{basics.customFields.map((item) => (
|
||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||
<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>
|
||||
|
||||
@ -70,8 +70,16 @@ const Header = () => {
|
||||
{basics.customFields.map((item) => (
|
||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||
<i className={cn(`ph ph-bold ph-${item.icon}`, "text-primary")} />
|
||||
<span className="text-primary">{item.name}</span>
|
||||
<span>{item.value}</span>
|
||||
{isUrl(item.value) ? (
|
||||
<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>
|
||||
|
||||
@ -66,7 +66,13 @@ const Header = () => {
|
||||
{basics.customFields.map((item) => (
|
||||
<div key={item.id} className="flex items-center gap-x-1.5">
|
||||
<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>
|
||||
|
||||
@ -84,7 +84,13 @@ const Header = () => {
|
||||
<Fragment key={item.id}>
|
||||
<div className="flex items-center gap-x-1.5">
|
||||
<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 className="size-1 rounded-full bg-background last:hidden" />
|
||||
</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"
|
||||
>
|
||||
<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>
|
||||
|
||||
Reference in New Issue
Block a user