Big bang/webgune berria (#18)
* chore: netlify deployments plugina kentzen du * chore: Strapi berria instalatzen du * feat: astro instalatzen du * chore: cypress instalatzen du * feat: back eta front konektatzen ditu * feat: server side rendering egiten du * chore: Strapin enterprise edition flagak kentzen ditu * feat: euskara sartzen du * chore: Strapi bertsioa igotzen du * feat: preview modua sortzen du ingurune bariableen bidez * aurreko commitarekin doa * fix: cypress konpontzen du * chore: Strapi bertsioa igotzen du * feat: ekintza back-ean sortzen du * feat: zikloa eta erakundea sortzen ditu * feat: erakundeen kudeaketa hobetzen du * chore: pnpm erabiltzen du * feat: Strapi bertsioa igotzen du * ekintza sortzen du eta zerbitzuak eguneratzen ditu * chore: graphql erabiltzen du populazioa ekiditeko * chore: collection erabiltzen du ekintzetarako * chore: bertsioak igotzen ditu * chore: Astro bertsioa igotzen du * chore: Strapi bertsioa igotzen du * feat: home-a hasten du * feat: zig zag separadorea sortzen du * feat: zig zaga doitzen du * feat: heroa doitzen du * feat: agenda sortzen du * feat: agenda eta izan labazkide atalak konektatzen ditu * feat: home-aren edukia sortzen du * chore: app.js sartzen du WTF * feat: header-a sortzen du * feat: card-a hobetzen du * feat: footer-a sortzen du * feat: ekintzen zerrenda erakusten du * feat: zikloaren bista sortzen du * fix: header-aren estekak konpontzen ditu * chore: remove unused code * chore: components directorioa kentzen du * chore: typescript konfigurazioa hobetzen du * chore: views path-a sortzen du * feat: zikloaren deskribapena erakusten du * feat: ekintzaren bista sortzen du * feat: zig zag marra erakusten du * ignore: comment * feat: hitzordua erakusten du * feat: zikloa erakusten du * feat: Waveko erroreak errepasatzen ditu * feat: Wave birpasatzen du * feat: zerrendan irudia erakusten du * feat: karga optimizatzen du * feat: irudien formatuak kontuan hartzen ditu * feat: zikloan ekintza irudiak erakusten ditu * feat: ekintza zerrenda atontzen du * feat: header-eko estekak markatzen ditu * feat: irudi estela erakusten du * feat: responsive-a hobetzen du * feat: orri basikoa sortzen du * feat: hasiera responsive egiten du * feat: overflow konpontzen du * feat: bug-a uzten du LOL * feat: irudi estela mugikorrean aktibatzen du * feat: orri basikoa eta ekintza mugikorrean jartzen ditu * feat: mugikor menua sortzen du * feat: mugikor menua amaitzen du * feat: build estatikoa sortzen du * feat: sitemap-a sortzen du * feat: rss feed-a sortzen du * chore: ingurune aldagaiak sortzen ditu * chore: public-proxy komandoa sortzen du * feat: irudiak webp formatuan jartzen ditu * fix: irudiak erakusten ditu ekintzen zerrendan * feat: ekintza zerrendaren irudia animatzen du * refactor: extract functions * fix: animazioa konpontzen du * feat: irudi estela hobetzen du * chore: prerender aldagaiak kentzen ditu * chore: SASS warning-ak kentzen ditu * feat: ziklo eta ekintzetan H1 ezartzen du * feat: slideshow-a sortzen du * feat: ekintzak hitzorduan oinarrituta filtratzen ditu * feat: hitzorduen arabera filtratzen du eta moment kentzen du * feat: titulua aldatzen du * feat: menua eguneratzen du * feat: parte hartun deskribapena sortzen du * feat: Cloudinary konfiguratzen du * fix: cloudinary konfigurazioa konpontzen du * feat: erositako fonteak jartzen ditu
This commit is contained in:
35
front/src/models/Ekintza.ts
Normal file
35
front/src/models/Ekintza.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import type { ImageMedia } from "./ImageMedia";
|
||||
import type { Zikloa } from "./Zikloa";
|
||||
|
||||
export interface Ekintza {
|
||||
id: string;
|
||||
slug: string;
|
||||
createdAt: string;
|
||||
izenburua: string;
|
||||
titularra: string;
|
||||
deskribapena: string;
|
||||
hitzordua: string;
|
||||
sarrera: {
|
||||
label: string;
|
||||
deskribapena: string;
|
||||
};
|
||||
mainMedia: ImageMedia;
|
||||
zikloa: Pick<Zikloa, "izena" | "slug">;
|
||||
}
|
||||
|
||||
export type EkintzaSnippet = Pick<
|
||||
Ekintza,
|
||||
"id" | "izenburua" | "hitzordua" | "slug" | "mainMedia"
|
||||
>;
|
||||
|
||||
export function getShortDate(ekintza: Pick<Ekintza, "hitzordua">): string {
|
||||
const date = new Date(ekintza.hitzordua);
|
||||
const day = date.getDate();
|
||||
const month = date.toLocaleString("eu", { month: "short" });
|
||||
|
||||
return `${month} ${day}`;
|
||||
}
|
||||
|
||||
export function getUrl(ekintza: Pick<Ekintza, "slug">): string {
|
||||
return `/ekintzak/${ekintza.slug}`;
|
||||
}
|
||||
30
front/src/models/Hasiera.ts
Normal file
30
front/src/models/Hasiera.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import type { ImageMedia } from "./ImageMedia";
|
||||
import type { Markdown } from "./Markdown";
|
||||
|
||||
export type ExternalSVG = string;
|
||||
|
||||
export interface Partehartzea {
|
||||
ikonoa: ExternalSVG;
|
||||
izenburua: string;
|
||||
deskribapena: string;
|
||||
email: string;
|
||||
}
|
||||
|
||||
export interface Hasiera {
|
||||
id: number;
|
||||
izenburua: string;
|
||||
izanLabazkide: {
|
||||
izenburua: string;
|
||||
deskribapena: Markdown;
|
||||
url: {
|
||||
label: string;
|
||||
url: string;
|
||||
};
|
||||
};
|
||||
parteHartu: {
|
||||
izenburua: string;
|
||||
deskribapena?: Markdown;
|
||||
parteHartzea: Partehartzea[];
|
||||
};
|
||||
mosaikoa: ImageMedia[];
|
||||
}
|
||||
42
front/src/models/ImageMedia.ts
Normal file
42
front/src/models/ImageMedia.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
export interface ImageMedia {
|
||||
alternativeText?: string;
|
||||
formats: {
|
||||
thumbnail: {
|
||||
url: string;
|
||||
height: number;
|
||||
width: number;
|
||||
};
|
||||
small?: {
|
||||
url: string;
|
||||
height: number;
|
||||
width: number;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
export interface ImageData {
|
||||
alt: string;
|
||||
src: string;
|
||||
height: number;
|
||||
width: number;
|
||||
}
|
||||
|
||||
export function getImageData(imageMedia: ImageMedia): ImageData {
|
||||
if (imageMedia.formats.small) {
|
||||
return {
|
||||
alt: imageMedia.alternativeText ?? "",
|
||||
// react konponentean ingurune aldagaiak undefined ematen du
|
||||
// TODO STRAPI_URL ingurune aldagaia erabili
|
||||
src: `http://127.0.0.1:1337${imageMedia.formats.small.url}`,
|
||||
width: imageMedia.formats.small.width,
|
||||
height: imageMedia.formats.small.height,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
alt: imageMedia.alternativeText ?? "",
|
||||
src: `http://127.0.0.1:1337${imageMedia.formats.thumbnail.url}`,
|
||||
width: imageMedia.formats.thumbnail.width,
|
||||
height: imageMedia.formats.thumbnail.height,
|
||||
};
|
||||
}
|
||||
1
front/src/models/Markdown.ts
Normal file
1
front/src/models/Markdown.ts
Normal file
@@ -0,0 +1 @@
|
||||
export type Markdown = string;
|
||||
14
front/src/models/OrriBasikoa.ts
Normal file
14
front/src/models/OrriBasikoa.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import type { Markdown } from "./Markdown";
|
||||
|
||||
interface ParagraphTestua {
|
||||
id: string;
|
||||
testua: Markdown;
|
||||
}
|
||||
|
||||
export interface OrriBasikoa {
|
||||
id: string;
|
||||
izenburua: string;
|
||||
slug: string;
|
||||
deskribapena?: string;
|
||||
edukiLibrea: ParagraphTestua[];
|
||||
}
|
||||
13
front/src/models/Zikloa.ts
Normal file
13
front/src/models/Zikloa.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import type { EkintzaSnippet } from "./Ekintza";
|
||||
|
||||
export interface Zikloa {
|
||||
id: string;
|
||||
slug: string;
|
||||
izena: string;
|
||||
deskribapena?: string;
|
||||
ekintzak: EkintzaSnippet[];
|
||||
}
|
||||
|
||||
export function getUrl(zikloa: Pick<Zikloa, "slug">): string {
|
||||
return `/zikloak/${zikloa.slug}`;
|
||||
}
|
||||
Reference in New Issue
Block a user