Skip to content
Snippets Groups Projects
socials.tsx 2.89 KiB
Newer Older
Toavina's avatar
Toavina committed
import React, { ReactElement } from "react"
Tojo Andrianomentsoaniaina's avatar
Tojo Andrianomentsoaniaina committed
import { Socials,Link, Content } from "@onegeo/gatsby-theme-onegeo"
import { graphql, PageProps } from "gatsby"
Tojo's avatar
Tojo committed

Tojo's avatar
Tojo committed
type Logo = {
Toavina's avatar
Toavina committed
    id: string
}
Tojo's avatar
Tojo committed

Tojo's avatar
Tojo committed
type Data = {
Toavina's avatar
Toavina committed
    directus: {
        partners: [id: string, name: string, logo: Logo]
    }
}
const socials = ({ data }: PageProps<Data>): ReactElement => {
Toavina's avatar
Toavina committed
    const dataList = data.directus.partners
Tojo's avatar
Tojo committed

Toavina's avatar
Toavina committed
    return (
        <Content>
            <div className="prose">
                <Link to="/doc">Retour</Link>
Tojo's avatar
Tojo committed

Toavina's avatar
Toavina committed
                <h1>List resaux sociaux</h1>
                <h2>Props</h2>
                <div className="mockup-code">
                    <pre>
                        <code>
                            {`
Julien MARGAIL's avatar
Julien MARGAIL committed
              interface ISocials {
                logo?: any,
                name?: string,
                url?: string,
Tojo's avatar
Tojo committed
                layout?:string
Tojo's avatar
Tojo committed


Tojo's avatar
Tojo committed
            query {
              directus {
                partners(filter: {type: {_eq: "sociaux"}}) {
                  id
                  name
                  url
                  type
                  logo {
Tojo's avatar
Tojo committed
                    id
                  }
                }
              }
Tojo's avatar
Tojo committed
              `}
Toavina's avatar
Toavina committed
                        </code>
                    </pre>
                </div>
Tojo's avatar
Tojo committed

Toavina's avatar
Toavina committed
                <h2>Example</h2>
            </div>
            <h2>reseaux sociaux</h2>
            <div className="flex gap-2 m-4">
                {dataList.map((item: any) => {
                    return (
                        <div key={item.id}>
                            <Socials
                                name={item.name}
                                url={item.url}
                                logo={`${process.env.DIRECTUS_URL}assets/${item.logo.id}`}
                                layout="row"
                            />
                        </div>
                    )
                })}
Toavina's avatar
Toavina committed
            <h2>reseaux sociaux</h2>
            <div className="flex flex-col gap-2 m-4">
                {dataList.map((item: any) => {
                    return (
                        <div key={item.id}>
                            <Socials
                                name={item.name}
                                url={item.url}
                                logo={`${process.env.DIRECTUS_URL}assets/${item.logo.id}`}
                                layout="col"
                            />
                        </div>
                    )
                })}
Toavina's avatar
Toavina committed
            {/* <div className="flex gap-6 m-4">
Julien MARGAIL's avatar
Julien MARGAIL committed
        <Socials dataList={dataList} layout="col" />
      </div> */}
Toavina's avatar
Toavina committed
        </Content>
    )
}
Toavina's avatar
Toavina committed
export default socials
Tojo's avatar
Tojo committed

Tojo's avatar
Tojo committed
export const query = graphql`
Toavina's avatar
Toavina committed
    query {
        directus {
            partners {
                id
                name
                url
                logo {
                    id
                }
            }
Toavina's avatar
Toavina committed
`