Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 37 additions & 8 deletions src/lib/components/Contact.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,45 @@
import LinkElement from './LinkElement.svelte';
import { contactsById } from '$lib/contacts';

const activeContacts = ['email', 'school', 'github', 'twitter', 'linkedin'];
const displayContacts = activeContacts
.map((id) => contactsById[id])
.filter((c) => c !== undefined);
let {
variant = 'icon-only',
showLinks = true
}: {
variant?: 'icon-only' | 'labeled';
showLinks?: boolean;
} = $props();

let activeContacts = $derived(
variant === 'icon-only'
? ['email', 'school', 'github', 'twitter', 'linkedin']
: ['home', 'email', 'github', 'twitter', 'linkedin', 'school']
);

let displayContacts = $derived(
activeContacts.map((id) => contactsById[id]).filter((c) => c !== undefined)
);
</script>

<div class="flex items-center justify-center gap-1">
<div
class={variant === 'icon-only'
? 'flex items-center justify-center gap-1'
: 'mt-4 flex flex-wrap items-center'}
>
{#each displayContacts as contact}
<LinkElement href={contact.href} blank={contact.blank}>
<Icon icon={contact.icon} />
</LinkElement>
{#if showLinks}
<LinkElement href={contact.href} blank={contact.blank}>
<Icon icon={contact.icon} downloadingPDF={!showLinks} />
{#if variant === 'labeled'}
<span class="pl-1 pr-3">{contact.text}</span>
{/if}
</LinkElement>
{:else}
<span class="flex items-center">
<Icon icon={contact.icon} downloadingPDF={!showLinks} />
{#if variant === 'labeled'}
<span class="pl-1 pr-3">{contact.text}</span>
{/if}
</span>
{/if}
{/each}
</div>
21 changes: 0 additions & 21 deletions src/lib/components/cv/Contact.svelte

This file was deleted.

4 changes: 2 additions & 2 deletions src/routes/cv/+page.svelte
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script lang="ts">
import { onMount } from 'svelte';
import Icon from '$lib/components/Icon.svelte';
import Contact from '$lib/components/cv/Contact.svelte';
import Contact from '$lib/components/Contact.svelte';
import { getEducationElements } from '$lib/helpers/educationProvider';
import { getFunding } from '$lib/helpers/fundingProvider';
import { getMentorshipActivities } from '$lib/helpers/mentoringProvider';
Expand Down Expand Up @@ -85,7 +85,7 @@
novel modes of interaction with AI, focusing on interfaces that help humans be creative with
AI systems.
</p>
<Contact {showLinks} />
<Contact variant="labeled" {showLinks} />
</section>

<!-- Education -->
Expand Down
Loading