mirror of
https://github.com/koloml/furbooru-tagging-assistant.git
synced 2026-03-24 23:02:58 +00:00
Reusing details block and tags list components on Profile & Group views
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
<script lang="ts">
|
||||
import TagsColorContainer from "$components/tags/TagsColorContainer.svelte";
|
||||
import type TagGroup from "$entities/TagGroup";
|
||||
import DetailsBlock from "$components/ui/DetailsBlock.svelte";
|
||||
import TagsList from "$components/tags/TagsList.svelte";
|
||||
|
||||
interface GroupViewProps {
|
||||
group: TagGroup;
|
||||
@@ -14,60 +16,27 @@
|
||||
|
||||
</script>
|
||||
|
||||
<div class="block">
|
||||
<strong>Group Name:</strong>
|
||||
<div>{group.settings.name}</div>
|
||||
</div>
|
||||
<DetailsBlock title="Group Name">
|
||||
{group.settings.name}
|
||||
</DetailsBlock>
|
||||
{#if sortedTagsList.length}
|
||||
<div class="block">
|
||||
<strong>Tags:</strong>
|
||||
<DetailsBlock title="Tags">
|
||||
<TagsColorContainer targetCategory={group.settings.category}>
|
||||
<div class="tags-list">
|
||||
{#each sortedTagsList as tagName}
|
||||
<span class="tag">{tagName}</span>
|
||||
{/each}
|
||||
</div>
|
||||
<TagsList tags={sortedTagsList} />
|
||||
</TagsColorContainer>
|
||||
</div>
|
||||
</DetailsBlock>
|
||||
{/if}
|
||||
{#if sortedPrefixes.length}
|
||||
<div class="block">
|
||||
<strong>Prefixes:</strong>
|
||||
<DetailsBlock title="Prefixes">
|
||||
<TagsColorContainer targetCategory={group.settings.category}>
|
||||
<div class="tags-list">
|
||||
{#each sortedPrefixes as prefixName}
|
||||
<span class="tag">{prefixName}*</span>
|
||||
{/each}
|
||||
</div>
|
||||
<TagsList tags={sortedPrefixes} append="*" />
|
||||
</TagsColorContainer>
|
||||
</div>
|
||||
</DetailsBlock>
|
||||
{/if}
|
||||
{#if sortedSuffixes.length}
|
||||
<div class="block">
|
||||
<strong>Suffixes:</strong>
|
||||
<DetailsBlock title="Suffixes">
|
||||
<TagsColorContainer targetCategory={group.settings.category}>
|
||||
<div class="tags-list">
|
||||
{#each sortedSuffixes as suffixName}
|
||||
<span class="tag">*{suffixName}</span>
|
||||
{/each}
|
||||
</div>
|
||||
<TagsList tags={sortedSuffixes} prepend="*" />
|
||||
</TagsColorContainer>
|
||||
</div>
|
||||
</DetailsBlock>
|
||||
{/if}
|
||||
|
||||
<style lang="scss">
|
||||
.tags-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.block + .block {
|
||||
margin-top: .5em;
|
||||
|
||||
strong {
|
||||
display: block;
|
||||
margin-bottom: .25em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<script lang="ts">
|
||||
import type TaggingProfile from "$entities/TaggingProfile";
|
||||
import DetailsBlock from "$components/ui/DetailsBlock.svelte";
|
||||
import TagsList from "$components/tags/TagsList.svelte";
|
||||
|
||||
interface ProfileViewProps {
|
||||
profile: TaggingProfile;
|
||||
@@ -10,32 +12,9 @@
|
||||
const sortedTagsList = $derived(profile.settings.tags.sort((a, b) => a.localeCompare(b)));
|
||||
</script>
|
||||
|
||||
<div class="block">
|
||||
<strong>Profile:</strong>
|
||||
<div>{profile.settings.name}</div>
|
||||
</div>
|
||||
<div class="block">
|
||||
<strong>Tags:</strong>
|
||||
<div class="tags-list">
|
||||
{#each sortedTagsList as tagName}
|
||||
<span class="tag">{tagName}</span>
|
||||
{/each}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style lang="scss">
|
||||
.tags-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.block + .block {
|
||||
margin-top: .5em;
|
||||
|
||||
strong {
|
||||
display: block;
|
||||
margin-bottom: .25em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<DetailsBlock title="Profile">
|
||||
{profile.settings.name}
|
||||
</DetailsBlock>
|
||||
<DetailsBlock title="Tags">
|
||||
<TagsList tags={sortedTagsList} />
|
||||
</DetailsBlock>
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
<script lang="ts">
|
||||
interface TagsListProps {
|
||||
tags: string[];
|
||||
prepend?: string;
|
||||
append?: string;
|
||||
}
|
||||
|
||||
let { tags }: TagsListProps = $props();
|
||||
let { tags, prepend, append }: TagsListProps = $props();
|
||||
</script>
|
||||
|
||||
<div class="tags-list">
|
||||
{#each tags as tagName}
|
||||
<div class="tag">{tagName}</div>
|
||||
<div class="tag">{prepend || ''}{tagName}{append || ''}</div>
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user