feat: antolatzailea erakusten du
This commit is contained in:
@@ -23,6 +23,7 @@ const ekintzak = defineCollection({
|
|||||||
logo {
|
logo {
|
||||||
formats
|
formats
|
||||||
}
|
}
|
||||||
|
esteka
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
hitzordua
|
hitzordua
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
|
import type { Erakundea } from "./Erakundea";
|
||||||
import type { ImageMedia } from "./ImageMedia";
|
import type { ImageMedia } from "./ImageMedia";
|
||||||
import type { Zikloa } from "./Zikloa";
|
import type { Zikloa } from "./Zikloa";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import "dayjs/locale/eu";
|
import "dayjs/locale/eu";
|
||||||
|
|
||||||
|
export interface Elkarlana {
|
||||||
|
label: string;
|
||||||
|
erakundeak?: Erakundea[];
|
||||||
|
}
|
||||||
|
|
||||||
export interface Ekintza {
|
export interface Ekintza {
|
||||||
id: string;
|
id: string;
|
||||||
slug: string;
|
slug: string;
|
||||||
@@ -11,6 +17,7 @@ export interface Ekintza {
|
|||||||
titularra: string;
|
titularra: string;
|
||||||
deskribapena: string;
|
deskribapena: string;
|
||||||
hitzordua: string;
|
hitzordua: string;
|
||||||
|
elkarlana?: Elkarlana;
|
||||||
sarrera: {
|
sarrera: {
|
||||||
label: string;
|
label: string;
|
||||||
deskribapena: string;
|
deskribapena: string;
|
||||||
|
|||||||
7
front/src/models/Erakundea.ts
Normal file
7
front/src/models/Erakundea.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import type { ImageMedia } from "./ImageMedia";
|
||||||
|
|
||||||
|
export interface Erakundea {
|
||||||
|
izena: string;
|
||||||
|
logo?: ImageMedia;
|
||||||
|
esteka?: string;
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@ import { getUrl } from "models/Zikloa";
|
|||||||
import { getImageData } from "models/ImageMedia";
|
import { getImageData } from "models/ImageMedia";
|
||||||
|
|
||||||
import "dayjs/locale/eu";
|
import "dayjs/locale/eu";
|
||||||
|
import Elkarlana from "./_components/Elkarlana.astro";
|
||||||
dayjs.locale("eu");
|
dayjs.locale("eu");
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
@@ -37,6 +38,14 @@ const irudia = ekintza.mainMedia ? getImageData(ekintza.mainMedia) : null;
|
|||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
ekintza.elkarlana && (
|
||||||
|
<div class="elkarlana-wrapper-desktop">
|
||||||
|
<Elkarlana elkarlana={ekintza.elkarlana} />
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
</aside>
|
</aside>
|
||||||
<article>
|
<article>
|
||||||
<h1>{ekintza.izenburua}</h1>
|
<h1>{ekintza.izenburua}</h1>
|
||||||
@@ -66,6 +75,14 @@ const irudia = ekintza.mainMedia ? getImageData(ekintza.mainMedia) : null;
|
|||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
ekintza.elkarlana && (
|
||||||
|
<div class="elkarlana-wrapper-mobile">
|
||||||
|
<Elkarlana elkarlana={ekintza.elkarlana} />
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
@@ -178,8 +195,26 @@ const irudia = ekintza.mainMedia ? getImageData(ekintza.mainMedia) : null;
|
|||||||
.deskribapena {
|
.deskribapena {
|
||||||
margin-top: var(--space-04-mobile);
|
margin-top: var(--space-04-mobile);
|
||||||
|
|
||||||
|
color: var(--marroia);
|
||||||
|
|
||||||
@include mediaQueries.aboveTablet {
|
@include mediaQueries.aboveTablet {
|
||||||
margin-top: var(--space-05-desktop);
|
margin-top: var(--space-05-desktop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.elkarlana-wrapper-desktop {
|
||||||
|
margin-top: var(--space-07-desktop);
|
||||||
|
|
||||||
|
@include mediaQueries.belowTablet {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.elkarlana-wrapper-mobile {
|
||||||
|
margin-top: var(--space-05-mobile);
|
||||||
|
|
||||||
|
@include mediaQueries.aboveTablet {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
87
front/src/views/ekintza/_components/Elkarlana.astro
Normal file
87
front/src/views/ekintza/_components/Elkarlana.astro
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
---
|
||||||
|
import { type Elkarlana } from "models/Ekintza";
|
||||||
|
import { getImageData } from "models/ImageMedia";
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
elkarlana: Elkarlana;
|
||||||
|
}
|
||||||
|
|
||||||
|
const { elkarlana } = Astro.props;
|
||||||
|
---
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h2>{elkarlana.label}</h2>
|
||||||
|
|
||||||
|
{
|
||||||
|
elkarlana.erakundeak?.map((erakundea) => {
|
||||||
|
const irudia = erakundea.logo ? getImageData(erakundea.logo) : null;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<a href={erakundea.esteka}>
|
||||||
|
{irudia && (
|
||||||
|
<img
|
||||||
|
src={irudia.src}
|
||||||
|
height={irudia.height}
|
||||||
|
width={irudia.width}
|
||||||
|
alt={irudia.alt}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
|
||||||
|
<span>{erakundea.izena}</span>
|
||||||
|
</a>
|
||||||
|
);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
@use "../../../style/mixins/displayFonts.scss";
|
||||||
|
@use "../../../style/tools/mediaQueries.scss";
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
@include displayFonts.display5;
|
||||||
|
color: var(--gorria);
|
||||||
|
margin-bottom: var(--space-03-mobile);
|
||||||
|
|
||||||
|
@include mediaQueries.aboveTablet {
|
||||||
|
margin-bottom: var(--space-05-desktop);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
display: inline-flex;
|
||||||
|
gap: var(--space-02-mobile);
|
||||||
|
|
||||||
|
color: var(--marroia);
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
transition: opacity 0.3s ease-in;
|
||||||
|
|
||||||
|
@include displayFonts.display6;
|
||||||
|
|
||||||
|
@include mediaQueries.aboveTablet {
|
||||||
|
gap: var(--space-02-desktop);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(:last-child) {
|
||||||
|
margin-bottom: var(--space-03-mobile);
|
||||||
|
|
||||||
|
@include mediaQueries.aboveTablet {
|
||||||
|
gap: var(--space-04-desktop);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
height: var(--space-08-mobile);
|
||||||
|
width: auto;
|
||||||
|
|
||||||
|
@include mediaQueries.aboveTablet {
|
||||||
|
height: var(--space-08-desktop);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user