Karpetak ordenatzen ditu (#15)

* refactor: extract hooks

* refactor: naming

* refactor: naming

* refactor: domain karpeta atontzen du

* fix: og image konpontzen du

* refactor: move component

* refactor: move component

* refactor: move component

* refactor: move component
This commit is contained in:
Aitor Urrutia
2023-12-27 08:58:00 +01:00
committed by GitHub
parent 52cfe274e3
commit b0da67af86
70 changed files with 150 additions and 99 deletions

View File

@@ -3,8 +3,6 @@ import { Helmet } from 'react-helmet';
import { PageProps } from 'gatsby'; import { PageProps } from 'gatsby';
import ogImagePath from '../images/og-image.jpeg';
interface Props { interface Props {
title: string; title: string;
description?: string; description?: string;
@@ -18,7 +16,7 @@ export const SEO: React.FC<Props> = ({ title, description, location }) => (
<meta <meta
name="og:image" name="og:image"
content={`${location.protocol}//${location.host}${ogImagePath}`} content={`${location.protocol}//${location.host}/og-image.jpeg`}
/> />
<meta name="og:image:height" content="669" /> <meta name="og:image:height" content="669" />
<meta name="og:image:width" content="1205" /> <meta name="og:image:width" content="1205" />

View File

@@ -0,0 +1,20 @@
import { graphql, useStaticQuery } from 'gatsby';
import { RegularPageContent } from '../RegularPageContent';
interface DataProps {
strapiLegeOharra: RegularPageContent;
}
export function useLegeOharraContent(): RegularPageContent {
const { strapiLegeOharra } = useStaticQuery<DataProps>(graphql`
{
strapiLegeOharra {
izenburua
edukia
}
}
`);
return strapiLegeOharra;
}

View File

@@ -0,0 +1,20 @@
import { graphql, useStaticQuery } from 'gatsby';
import { RegularPageContent } from '../RegularPageContent';
interface DataProps {
strapiPribatutasunPolitika: RegularPageContent;
}
export function usePribatutasunPolitikaContent(): RegularPageContent {
const { strapiPribatutasunPolitika } = useStaticQuery<DataProps>(graphql`
{
strapiPribatutasunPolitika {
izenburua
edukia
}
}
`);
return strapiPribatutasunPolitika;
}

View File

@@ -0,0 +1,21 @@
import { graphql, useStaticQuery } from 'gatsby';
import { HasieraContent } from '../HasieraContent';
interface DataProps {
strapiHasiera: HasieraContent;
}
export function useHasieraContent(): HasieraContent {
const { strapiHasiera } = useStaticQuery<DataProps>(graphql`
{
strapiHasiera {
deskribapena
izenburua
edukia
}
}
`);
return strapiHasiera;
}

View File

@@ -0,0 +1,7 @@
import { MenuKonponentea } from './hooks/useKafetegiaContent';
export interface KafetegiaContent {
deskribapena: string;
izenburua: string;
menua: MenuKonponentea[];
}

View File

@@ -1,7 +1,7 @@
import { graphql, useStaticQuery } from 'gatsby'; import { graphql, useStaticQuery } from 'gatsby';
import { ProduktuaDTO } from '../domain/dtos/ProduktuaDTO'; import { ProduktuaDTO } from '../dtos/ProduktuaDTO';
import { KafetegiaData } from './KafetegiaData'; import { KafetegiaContent } from '../KafetegiaContent';
export type MenuKonponentea = export type MenuKonponentea =
| { | {
@@ -24,7 +24,7 @@ interface DataProps {
}; };
} }
export function useKafetegiaData(): KafetegiaData { export function useKafetegiaContent(): KafetegiaContent {
const { const {
strapiKafetegia: { izenburua, deskribapena, menua }, strapiKafetegia: { izenburua, deskribapena, menua },
} = useStaticQuery<DataProps>(graphql` } = useStaticQuery<DataProps>(graphql`

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

View File

@@ -0,0 +1,26 @@
import React from 'react';
import { graphql, PageProps, useStaticQuery } from 'gatsby';
import { SEO } from '../components/SEO';
import { RegularPage } from '../views/RegularPage/RegularPage';
import { DataProps } from './pribatutasun-politika';
export const PribatutasunPolitika: React.FC<PageProps> = ({ location }) => {
const { strapiPribatutasunPolitika } = useStaticQuery<DataProps>(graphql`
{
strapiPribatutasunPolitika {
izenburua
edukia
}
}
`);
return (
<>
<SEO title={strapiPribatutasunPolitika.izenburua} location={location} />
<RegularPage content={strapiPribatutasunPolitika} />
</>
);
};

View File

@@ -1,35 +1,23 @@
import React from 'react'; import React from 'react';
import { graphql, PageProps, useStaticQuery } from 'gatsby'; import { PageProps } from 'gatsby';
import { SEO } from '../components/SEO'; import { SEO } from '../components/SEO';
import { useHasieraContent } from '../domain/hasiera/hooks/useHasieraContent';
import { Hasiera } from '../views/Hasiera/Hasiera'; import { Hasiera } from '../views/Hasiera/Hasiera';
import { HasieraContent } from '../views/Hasiera/HasieraContent';
interface DataProps {
strapiHasiera: HasieraContent;
}
const IndexPage: React.FC<PageProps> = ({ location }) => { const IndexPage: React.FC<PageProps> = ({ location }) => {
const { strapiHasiera } = useStaticQuery<DataProps>(graphql` const content = useHasieraContent();
{
strapiHasiera {
deskribapena
izenburua
edukia
}
}
`);
return ( return (
<> <>
<SEO <SEO
title={strapiHasiera.izenburua} title={content.izenburua}
description={strapiHasiera.deskribapena} description={content.deskribapena}
location={location} location={location}
/> />
<Hasiera content={strapiHasiera} /> <Hasiera content={content} />
</> </>
); );
}; };

View File

@@ -3,11 +3,11 @@ import React from 'react';
import { PageProps } from 'gatsby'; import { PageProps } from 'gatsby';
import { SEO } from '../components/SEO'; import { SEO } from '../components/SEO';
import { useKafetegiaData } from '../viewQueries/useKafetegiaData'; import { useKafetegiaContent } from '../domain/kafetegia/hooks/useKafetegiaContent';
import { Kafetegia } from '../views/Kafetegia'; import { Kafetegia } from '../views/Kafetegia';
const KafetegiaPage: React.FC<PageProps> = ({ location }) => { const KafetegiaPage: React.FC<PageProps> = ({ location }) => {
const content = useKafetegiaData(); const content = useKafetegiaContent();
return ( return (
<> <>

View File

@@ -1,30 +1,19 @@
import React from 'react'; import React from 'react';
import { graphql, PageProps, useStaticQuery } from 'gatsby'; import { PageProps } from 'gatsby';
import { SEO } from '../components/SEO'; import { SEO } from '../components/SEO';
import { useLegeOharraContent } from '../domain/basicPage/hooks/useLegeOharraContent';
import { RegularPage } from '../views/RegularPage'; import { RegularPage } from '../views/RegularPage';
import { RegularPageContent } from '../views/RegularPage/RegularPageContent';
interface DataProps {
strapiLegeOharra: RegularPageContent;
}
const LegeOharra: React.FC<PageProps> = ({ location }) => { const LegeOharra: React.FC<PageProps> = ({ location }) => {
const { strapiLegeOharra } = useStaticQuery<DataProps>(graphql` const content = useLegeOharraContent();
{
strapiLegeOharra {
izenburua
edukia
}
}
`);
return ( return (
<> <>
<SEO title={strapiLegeOharra.izenburua} location={location} /> <SEO title={content.izenburua} location={location} />
<RegularPage content={strapiLegeOharra} /> <RegularPage content={content} />
</> </>
); );
}; };

View File

@@ -1,30 +1,19 @@
import React from 'react'; import React from 'react';
import { graphql, PageProps, useStaticQuery } from 'gatsby'; import { PageProps } from 'gatsby';
import { SEO } from '../components/SEO'; import { SEO } from '../components/SEO';
import { usePribatutasunPolitikaContent } from '../domain/basicPage/hooks/usePribatutasunPolitikaContent';
import { RegularPage } from '../views/RegularPage/RegularPage'; import { RegularPage } from '../views/RegularPage/RegularPage';
import { RegularPageContent } from '../views/RegularPage/RegularPageContent';
interface DataProps {
strapiPribatutasunPolitika: RegularPageContent;
}
const PribatutasunPolitika: React.FC<PageProps> = ({ location }) => { const PribatutasunPolitika: React.FC<PageProps> = ({ location }) => {
const { strapiPribatutasunPolitika } = useStaticQuery<DataProps>(graphql` const content = usePribatutasunPolitikaContent();
{
strapiPribatutasunPolitika {
izenburua
edukia
}
}
`);
return ( return (
<> <>
<SEO title={strapiPribatutasunPolitika.izenburua} location={location} /> <SEO title={content.izenburua} location={location} />
<RegularPage content={strapiPribatutasunPolitika} /> <RegularPage content={content} />
</> </>
); );
}; };

View File

@@ -1,7 +0,0 @@
import { MenuKonponentea } from './useKafetegiaData';
export interface KafetegiaData {
deskribapena: string;
izenburua: string;
menua: MenuKonponentea[];
}

View File

@@ -2,11 +2,11 @@ import React from 'react';
import ReactMarkdown from 'react-markdown'; import ReactMarkdown from 'react-markdown';
import Gezia from '../../assets/gezia.svg'; import Gezia from '../../assets/gezia.svg';
import { Container } from '../../components/Container'; import { HasieraContent } from '../../domain/hasiera/HasieraContent';
import { Gainburua } from '../../components/Gainburua'; import { Container } from '../components/Container';
import { Oina } from '../../components/Oina'; import { Gainburua } from '../components/Gainburua';
import { Oina } from '../components/Oina';
import * as styles from './Hasiera.module.scss'; import * as styles from './Hasiera.module.scss';
import { HasieraContent } from './HasieraContent';
interface Props { interface Props {
content: HasieraContent; content: HasieraContent;

View File

@@ -1,15 +1,15 @@
import React from 'react'; import React from 'react';
import { AlergenoLegenda } from '../../components/AlergenoLegenda'; import { produktuaFactory } from '../../domain/kafetegia/factories/produktuaFactory';
import { Container } from '../../components/Container'; import { KafetegiaContent } from '../../domain/kafetegia/KafetegiaContent';
import { Gainburua } from '../../components/Gainburua'; import { Container } from '../components/Container';
import { Oina } from '../../components/Oina'; import { Gainburua } from '../components/Gainburua';
import { produktuaFactory } from '../../domain/factories/produktuaFactory'; import { Oina } from '../components/Oina';
import { KafetegiaData } from '../../viewQueries/KafetegiaData'; import { AlergenoLegenda } from './components/AlergenoLegenda';
import { ProduktuZerrenda } from './components/ProduktuZerrenda'; import { ProduktuZerrenda } from './components/ProduktuZerrenda';
import * as styles from './Kafetegia.module.scss'; import * as styles from './Kafetegia.module.scss';
export const Kafetegia: React.FC<{ content: KafetegiaData }> = ({ export const Kafetegia: React.FC<{ content: KafetegiaContent }> = ({
content, content,
}) => { }) => {
const { izenburua, deskribapena, menua } = content; const { izenburua, deskribapena, menua } = content;

View File

@@ -1,4 +1,4 @@
@import '../../styles/tools/mediaQueries.scss'; @import '../../../../styles/tools/mediaQueries.scss';
.wrapper { .wrapper {
width: 100%; width: 100%;

View File

@@ -1,8 +1,8 @@
import React from 'react'; import React from 'react';
import { mapAlergenoIdentifikadoreaToIzena } from '../../domain/mappers/mapAlergenoIdentifikadoreaToIzena'; import { mapAlergenoIdentifikadoreaToIzena } from '../../../../domain/kafetegia/mappers/mapAlergenoIdentifikadoreaToIzena';
import { mapAlergenoIdentifikadoreaToZenbakia } from '../../domain/mappers/mapAlergenoIdentifikadoreaToZenbakia'; import { mapAlergenoIdentifikadoreaToZenbakia } from '../../../../domain/kafetegia/mappers/mapAlergenoIdentifikadoreaToZenbakia';
import { AlergenoIdentifikadorea } from '../../domain/models/AlergenoIdentifikadorea'; import { AlergenoIdentifikadorea } from '../../../../domain/kafetegia/models/AlergenoIdentifikadorea';
import * as styles from './AlergenoLegenda.module.scss'; import * as styles from './AlergenoLegenda.module.scss';
import { AlergenoLogoa } from './AlergenoLogoa'; import { AlergenoLogoa } from './AlergenoLogoa';

View File

@@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
import { AlergenoIdentifikadorea } from '../../domain/models/AlergenoIdentifikadorea'; import { AlergenoIdentifikadorea } from '../../../../domain/kafetegia/models/AlergenoIdentifikadorea';
import Apioa from './assets/alergenoak/apioa.svg'; import Apioa from './assets/alergenoak/apioa.svg';
import Arraina from './assets/alergenoak/arraina.svg'; import Arraina from './assets/alergenoak/arraina.svg';
import Arrautzak from './assets/alergenoak/arrautzak.svg'; import Arrautzak from './assets/alergenoak/arrautzak.svg';

View File

@@ -2,7 +2,7 @@ import React from 'react';
import BeganoaLogo from '../../../../assets/beganoa.svg'; import BeganoaLogo from '../../../../assets/beganoa.svg';
import EkologikoaLogo from '../../../../assets/ekologikoa.svg'; import EkologikoaLogo from '../../../../assets/ekologikoa.svg';
import { Produktua } from '../../../../domain/models/Produktua'; import { Produktua } from '../../../../domain/kafetegia/models/Produktua';
import * as styles from './ProduktuZerrenda.module.scss'; import * as styles from './ProduktuZerrenda.module.scss';
interface Props { interface Props {

View File

@@ -2,8 +2,8 @@ import React from 'react';
import { Link } from 'gatsby'; import { Link } from 'gatsby';
import { Container } from '../../components/Container'; import { Container } from '../components/Container';
import { Gainburua } from '../../components/Gainburua'; import { Gainburua } from '../components/Gainburua';
export const NotFound: React.FC = () => ( export const NotFound: React.FC = () => (
<> <>

View File

@@ -3,11 +3,11 @@ import ReactMarkdown from 'react-markdown';
import remarkGfm from 'remark-gfm'; import remarkGfm from 'remark-gfm';
import { Container } from '../../components/Container'; import { RegularPageContent } from '../../domain/basicPage/RegularPageContent';
import { Gainburua } from '../../components/Gainburua'; import { Container } from '../components/Container';
import { Oina } from '../../components/Oina'; import { Gainburua } from '../components/Gainburua';
import { Oina } from '../components/Oina';
import * as styles from './RegularPage.module.scss'; import * as styles from './RegularPage.module.scss';
import { RegularPageContent } from './RegularPageContent';
interface Props { interface Props {
content: RegularPageContent; content: RegularPageContent;

View File

@@ -1,4 +1,4 @@
@import '../../styles/tools/mediaQueries.scss'; @import '../../../styles/tools/mediaQueries.scss';
.wrapper { .wrapper {
margin-left: auto; margin-left: auto;

View File

@@ -1,6 +1,6 @@
@import '../../styles/tools/mediaQueries.scss'; @import '../../../styles/tools/mediaQueries.scss';
@import '../../styles/tools/mixins/font.scss'; @import '../../../styles/tools/mixins/font.scss';
@import '../../styles/tools/mixins/container.scss'; @import '../../../styles/tools/mixins/container.scss';
.geziaWrapper { .geziaWrapper {
display: none; display: none;

View File

@@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
import { classNames } from '../../utilities/classnames'; import { classNames } from '../../../utilities/classnames';
import Gezia from './assets/gezia.svg'; import Gezia from './assets/gezia.svg';
import Logo from './assets/logo.svg'; import Logo from './assets/logo.svg';
import { AtalaName } from './AtalaName'; import { AtalaName } from './AtalaName';

View File

Before

Width:  |  Height:  |  Size: 324 B

After

Width:  |  Height:  |  Size: 324 B

View File

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 267 B

View File

Before

Width:  |  Height:  |  Size: 248 B

After

Width:  |  Height:  |  Size: 248 B

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -2,7 +2,7 @@ import React from 'react';
import { Link } from 'gatsby'; import { Link } from 'gatsby';
import { classNames } from '../../../../utilities/classnames'; import { classNames } from '../../../../../utilities/classnames';
import * as styles from './DesktopNabigazioa.module.scss'; import * as styles from './DesktopNabigazioa.module.scss';
import type { AtalaName } from '../../AtalaName'; import type { AtalaName } from '../../AtalaName';

View File

@@ -1,4 +1,4 @@
@import '../../../../styles/tools/mixins/font.scss'; @import '../../../../../styles/tools/mixins/font.scss';
.wrapper { .wrapper {
display: flex; display: flex;

View File

@@ -1,8 +1,8 @@
import React from 'react'; import React from 'react';
import InstagramLogo from '../../../../assets/instagram.svg'; import InstagramLogo from '../../../../../assets/instagram.svg';
import TwitterLogo from '../../../../assets/twitter.svg'; import TwitterLogo from '../../../../../assets/twitter.svg';
import { classNames } from '../../../../utilities/classnames'; import { classNames } from '../../../../../utilities/classnames';
import * as styles from './KontaktuDatuak.module.scss'; import * as styles from './KontaktuDatuak.module.scss';
interface Props { interface Props {

View File

@@ -1,4 +1,4 @@
@import '../../../../styles/tools/mixins/font.scss'; @import '../../../../../styles/tools/mixins/font.scss';
.kontaktuaWrapper { .kontaktuaWrapper {
display: flex; display: flex;

View File

Before

Width:  |  Height:  |  Size: 309 KiB

After

Width:  |  Height:  |  Size: 309 KiB