Skip to content

Commit 9daf8a0

Browse files
committed
error badge in team list
1 parent 7bef50c commit 9daf8a0

File tree

6 files changed

+47
-13
lines changed

6 files changed

+47
-13
lines changed

src/lib/components/list/List.stories.svelte

+2-2
Original file line numberDiff line numberDiff line change
@@ -292,8 +292,8 @@
292292

293293
<Story name="Teams">
294294
<List>
295-
{#each teams as team (team.slug)}
296-
<TeamListItem {team} />
295+
{#each teams as team, i (team.slug)}
296+
<TeamListItem {team} errors={i} />
297297
{/each}
298298
</List>
299299
</Story>

src/lib/components/list/ListItem.svelte

+3-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@
1111
<style>
1212
.list-item {
1313
background-color: #f7f8f9;
14-
display: flex;
15-
justify-content: space-between;
14+
display: grid;
15+
grid-template-columns: 1fr auto;
1616
align-items: center;
17+
column-gap: var(--a-spacing-4);
1718
padding: var(--a-spacing-4) var(--a-spacing-6);
1819
1920
&:hover {

src/lib/components/list/TeamListItem.svelte

+24-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import IconLabel from '../IconLabel.svelte';
44
import ListItem from './ListItem.svelte';
55
6-
const { team }: { team: { slug: string; purpose: string } } = $props();
6+
const { team, errors }: { team: { slug: string; purpose: string }; errors: number } = $props();
77
</script>
88

99
<ListItem>
@@ -15,4 +15,27 @@
1515
level="3"
1616
href="/team/{team.slug}"
1717
/>
18+
{#if errors}
19+
<div class={['errors', { 'errors--long': `${errors}`.length > 2 }]}>
20+
{errors}
21+
</div>
22+
{/if}
1823
</ListItem>
24+
25+
<style>
26+
.errors {
27+
height: 2rem;
28+
width: 2rem;
29+
border-radius: 100%;
30+
display: flex;
31+
align-items: center;
32+
justify-content: center;
33+
font-weight: var(--a-font-weight-bold);
34+
background-color: var(--a-surface-danger);
35+
color: var(--a-text-on-danger);
36+
37+
&.errors--long {
38+
font-size: var(--a-font-size-medium);
39+
}
40+
}
41+
</style>

src/routes/+page.gql

+9
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@ query UserTeams @cache(policy: CacheAndNetwork) {
1717
id
1818
slug
1919
purpose
20+
workloads(first: 1000) {
21+
nodes {
22+
status {
23+
errors {
24+
__typename
25+
}
26+
}
27+
}
28+
}
2029
}
2130
}
2231
}

src/routes/+page.svelte

+8-7
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,10 @@
44
import Pagination from '$lib/Pagination.svelte';
55
import { BodyLong, Button } from '@nais/ds-svelte-community';
66
import Logo from '../Logo.svelte';
7-
import type { PageData } from './$houdini';
7+
import type { PageProps } from './$houdini';
88
import Onboarding from './Onboarding.svelte';
99
10-
interface Props {
11-
data: PageData;
12-
}
13-
14-
let { data }: Props = $props();
10+
let { data }: PageProps = $props();
1511
1612
let UserTeams = $derived(data.UserTeams);
1713
let tenantName = $derived(data.tenantName);
@@ -47,7 +43,12 @@
4743
{#if $UserTeams.data.me.__typename == 'User'}
4844
<List>
4945
{#each $UserTeams.data.me.teams.nodes as node (node.team.id)}
50-
<TeamListItem team={node.team} />
46+
<TeamListItem
47+
team={node.team}
48+
errors={node.team.workloads.nodes.filter((w) =>
49+
w.status.errors.some((e) => e.__typename === 'WorkloadStatusDeprecatedRegistry')
50+
).length}
51+
/>
5152
{:else}
5253
<BodyLong>
5354
You don't seem to belong to any teams at the moment. You can create a new team or

src/routes/team/[team]/+page.svelte

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
rel="noopener noreferrer">Read more in Nais announcement</a
4242
>.
4343
<p>
44-
{teamSlug} currently has {deprecatedImages.length}
44+
{teamSlug} currently has <strong>{deprecatedImages.length}</strong>
4545
workload{deprecatedImages.length === 1 ? '' : 's'} using
4646
{deprecatedImages.length === 1
4747
? 'a deprecated image registry'

0 commit comments

Comments
 (0)