feat: sarrera sortzen du

This commit is contained in:
2025-09-24 18:51:34 +02:00
parent a6cc5a6946
commit 5f4e32f16d
3 changed files with 72 additions and 4 deletions

View File

@@ -9,6 +9,12 @@ export interface Elkarlana {
erakundeak?: Erakundea[]; erakundeak?: Erakundea[];
} }
export interface Sarrera {
label: string;
deskribapena?: string;
url?: string;
}
export interface Ekintza { export interface Ekintza {
id: string; id: string;
slug: string; slug: string;
@@ -18,10 +24,7 @@ export interface Ekintza {
deskribapena: string; deskribapena: string;
hitzordua: string; hitzordua: string;
elkarlana?: Elkarlana; elkarlana?: Elkarlana;
sarrera: { sarrera: Sarrera;
label: string;
deskribapena: string;
};
mainMedia: ImageMedia; mainMedia: ImageMedia;
zikloa: Pick<Zikloa, "izena" | "slug">; zikloa: Pick<Zikloa, "izena" | "slug">;
} }

View File

@@ -11,6 +11,7 @@ import { getImageData } from "models/ImageMedia";
import "dayjs/locale/eu"; import "dayjs/locale/eu";
import Elkarlana from "./_components/Elkarlana.astro"; import Elkarlana from "./_components/Elkarlana.astro";
import Sarrera from "./_components/Sarrera.astro";
dayjs.locale("eu"); dayjs.locale("eu");
interface Props { interface Props {
@@ -68,6 +69,8 @@ const irudia = ekintza.mainMedia ? getImageData(ekintza.mainMedia) : null;
<h2>{ekintza.titularra}</h2> <h2>{ekintza.titularra}</h2>
{ekintza.sarrera && <Sarrera sarrera={ekintza.sarrera} />}
{ {
ekintza.deskribapena && ( ekintza.deskribapena && (
<div class="deskribapena"> <div class="deskribapena">

View File

@@ -0,0 +1,62 @@
---
import type { Sarrera } from "models/Ekintza";
interface Props {
sarrera: Sarrera;
}
const { sarrera } = Astro.props;
---
{
sarrera.url ? (
<a href={sarrera.url}>{sarrera.label}</a>
) : (
<p class="label">{sarrera.label}</p>
)
}
<p class="deskribapena">{sarrera.deskribapena}</p>
<style lang="scss">
@use "../../../style/mixins/displayFonts.scss";
@use "../../../style/mixins/textFonts.scss";
@use "../../../style/tools/toDVW.scss";
@use "../../../style/tools/mediaQueries.scss";
.label {
color: var(--marroia);
@include displayFonts.display6;
}
.deskribapena {
margin-top: var(--space-01-mobile);
color: var(--marroia);
font-style: italic;
@include textFonts.captionFont;
@include mediaQueries.aboveTablet {
margin-top: var(--space-01-desktop);
}
}
a {
display: inline-block;
padding: var(--space-02-mobile) var(--space-03-mobile);
color: var(--marroia);
text-decoration: none;
border: #{toDVW.toMobileDVW(2)} solid var(--marroia);
&:hover {
text-decoration: underline;
}
@include displayFonts.display6;
@include mediaQueries.aboveTablet {
padding: var(--space-02-desktop) var(--space-04-desktop);
border: #{toDVW.toDesktopDVW(2)} solid var(--marroia);
}
}
</style>