1
- import { ChangeDetectionStrategy , Component , input } from '@angular/core' ;
1
+ import {
2
+ ChangeDetectionStrategy ,
3
+ Component ,
4
+ computed ,
5
+ input ,
6
+ } from '@angular/core' ;
2
7
import { Event } from '../../../models/event.model' ;
3
8
import { DatePipe , NgOptimizedImage } from '@angular/common' ;
4
9
import { TagComponent } from '../tag.component' ;
@@ -11,12 +16,14 @@ import { TagComponent } from '../tag.component';
11
16
<article>
12
17
<a
13
18
[href]="event().url ?? '#'"
19
+ [title]="eventLinkTitle()"
14
20
target="_blank"
15
21
class="flex w-full items-start gap-4"
16
22
>
17
23
<img
18
24
class="rounded-xl"
19
25
[src]="event().community?.logo"
26
+ aria-hidden="true"
20
27
height="100"
21
28
width="100"
22
29
alt=""
@@ -26,16 +33,15 @@ import { TagComponent } from '../tag.component';
26
33
<span class="font-bold text-primary" itemprop="date">{{
27
34
event().date
28
35
}}</span>
29
- <h3
30
- [attr.id]="event().name"
31
- class="text-xl font-bold"
32
- itemprop="title"
33
- >
36
+ <h3 class="text-xl font-bold">
34
37
{{ event().name || event().community?.name }}
35
38
</h3>
36
- <span class="text-gray-500 dark:text-gray-400" itemprop="location">{{
37
- event().location
38
- }}</span>
39
+ <div
40
+ class="text-gray-500 dark:text-gray-400 min-h-4"
41
+ itemprop="location"
42
+ >
43
+ {{ event().location }}
44
+ </div>
39
45
<ul class="flex flex-wrap gap-2">
40
46
<li class="inline">
41
47
<app-tag [title]="event().language" />
@@ -52,7 +58,7 @@ import { TagComponent } from '../tag.component';
52
58
}
53
59
@if (event().isOnsite) {
54
60
<li class="inline">
55
- <app-tag [title]="'Onsite'" color="#963232 " />
61
+ <app-tag [title]="'Onsite'" color="#ae6b09 " />
56
62
</li>
57
63
}
58
64
</ul>
@@ -70,7 +76,7 @@ import { TagComponent } from '../tag.component';
70
76
71
77
&:hover {
72
78
h3 {
73
- color: theme('colors. secondary') ;
79
+ @apply text- secondary underline ;
74
80
}
75
81
}
76
82
}
@@ -79,4 +85,8 @@ import { TagComponent } from '../tag.component';
79
85
} )
80
86
export class EventCardComponent {
81
87
event = input . required < Event > ( ) ;
88
+
89
+ eventLinkTitle = computed ( ( ) => {
90
+ return ( this . event ( ) . name || this . event ( ) . community ?. name ) + 'event link' ;
91
+ } ) ;
82
92
}
0 commit comments