Skip to content

Commit 4a1884d

Browse files
committed
refactor: Easier setup for social accounts
1 parent 7e22110 commit 4a1884d

File tree

1 file changed

+14
-23
lines changed

1 file changed

+14
-23
lines changed
Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,25 @@
11
@using LinkDotNet.Blog.Domain
2-
<div class="d-flex flex-row justify-content-center" style="font-size: 1.25em;">
3-
@if (Social.HasLinkedinAccount)
2+
<div class="d-flex flex-row justify-content-center h3 gap-4 py-2">
3+
@foreach (var account in AllSocialAccounts.Where(a => a.HasAccount))
44
{
5-
<a id="linkedin" class="nav-link px-3 py-2" target="_blank" href="@Social.LinkedInAccountUrl" aria-label="LinkedIn" rel="noreferrer">
6-
<i class="linkedin"></i>
7-
</a>
8-
}
9-
@if (Social.HasGithubAccount)
10-
{
11-
<a id="github" class="nav-link px-3 py-2" target="_blank" href="@Social.GithubAccountUrl" aria-label="Github" rel="noreferrer">
12-
<i class="github"></i>
13-
</a>
14-
}
15-
@if (Social.HasTwitterAccount)
16-
{
17-
<a id="twitter" class="nav-link px-3 py-2" target="_blank" href="@Social.TwitterAccountUrl" aria-label="Twitter" rel="noreferrer">
18-
<i class="twitter"></i>
19-
</a>
20-
}
21-
22-
@if (Social.HasYoutubeAccount)
23-
{
24-
<a id="youtube" class="nav-link px-3 py-2" target="_blank" href="@Social.YoutubeAccountUrl" aria-label="Youtube" rel="noreferrer">
25-
<i class="youtube"></i>
5+
<a id="@account.Id" class="nav-link" target="_blank" href="@account.Url" aria-label="@account.Name" rel="noreferrer">
6+
<i class="@account.Icon"></i>
267
</a>
278
}
289
</div>
2910

3011
@code {
12+
private List<SocialAccount> AllSocialAccounts =>
13+
[
14+
// Icons have to be defined in the icons.css
15+
new("linkedin", Social.HasLinkedinAccount, Social.LinkedInAccountUrl, "LinkedIn", "linkedin"),
16+
new("github", Social.HasGithubAccount, Social.GithubAccountUrl, "Github", "github"),
17+
new("twitter", Social.HasTwitterAccount, Social.TwitterAccountUrl, "Twitter", "twitter"),
18+
new("youtube", Social.HasYoutubeAccount, Social.YoutubeAccountUrl, "Youtube", "youtube")
19+
];
3120

3221
[Parameter, EditorRequired]
3322
public required Social Social { get; set; }
23+
24+
private record SocialAccount(string Id, bool HasAccount, string? Url, string Name, string Icon);
3425
}

0 commit comments

Comments
 (0)