Skip to content

Commit

Permalink
feat: move type Publication
Browse files Browse the repository at this point in the history
  • Loading branch information
martapanc committed Aug 22, 2023
1 parent 2a63819 commit c7a88bf
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 16 deletions.
28 changes: 15 additions & 13 deletions src/app/(public)/about/work/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,11 @@ import WorkExperience from '@/components/organisms/about-work/WorkExperience';

import { jobsQueryQL } from '@/queries/jobs';
import { languagesQueryQL } from '@/queries/languages';
import { publicationQuery } from '@/queries/publications';
import { schoolsQuery, schoolsQueryQL } from '@/queries/schools';
import { publicationQueryQL } from '@/queries/publications';
import { schoolsQueryQL } from '@/queries/schools';
import { shortTextQuery } from '@/queries/short-texts';
import { skillQuery } from '@/queries/skills';
import { Icon } from '@/sanityTypes/Icon';
import { Publication } from '@/sanityTypes/Publication';
import { ShortText } from '@/sanityTypes/ShortText';
import { Skill } from '@/sanityTypes/Skill';

Expand All @@ -25,6 +24,7 @@ import { sanityClient } from '../../../../../sanity/lib/client';

import { Job } from '@/types/Job';
import { Language } from '@/types/Language';
import { Publication } from '@/types/Publication';
import { School } from '@/types/School';

export const metadata = {
Expand All @@ -33,19 +33,11 @@ export const metadata = {
};

const getData = async () => {
const publications: Publication[] = await sanityClient.fetch(
publicationQuery
);

const schools: School[] = await sanityClient.fetch(schoolsQuery);

const skills: Skill[] = await sanityClient.fetch(skillQuery);

const shortTexts: ShortText[] = await sanityClient.fetch(shortTextQuery);

return {
publications,
schools,
shortTexts,
skills,
};
Expand All @@ -59,6 +51,14 @@ async function queryJobs() {
return flattenToArray<Job>(data.jobs);
}

async function queryPublications() {
const { data } = await apolloClient.query({
query: publicationQueryQL,
});

return flattenToArray<Publication>(data.publications);
}

async function querySchools() {
const { data } = await apolloClient.query({
query: schoolsQueryQL,
Expand All @@ -78,19 +78,21 @@ async function queryLanguages() {
const queryData = async () => {
const jobs = await queryJobs();
const languages = await queryLanguages();
const publications = await queryPublications();
const schools = await querySchools();

return {
jobs,
languages,
publications,
schools,
};
};

const AboutPage = async () => {
const { publications, shortTexts, skills } = await getData();
const { shortTexts, skills } = await getData();

const { jobs, languages, schools } = await queryData();
const { jobs, languages, publications, schools } = await queryData();

const softwareDevelopment: ShortText | undefined = shortTexts.find(
(item) => item.name === 'software-development'
Expand Down
6 changes: 3 additions & 3 deletions src/components/organisms/about-work/Publications.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { AiOutlineFilePdf } from 'react-icons/ai';

import UnstyledLink from '@/components/links/UnstyledLink';

import { Publication } from '@/sanityTypes/Publication';
import { Publication } from '@/types/Publication';

export interface PublicationProps {
publications: Publication[];
Expand Down Expand Up @@ -36,9 +36,9 @@ const Publications = ({ publications }: PublicationProps) => {

<div className='flex flex-col self-end'>
<UnstyledLink
key={publication._id}
key={publication.id}
className='focus-visible:ring-primary-300 inline-flex items-center justify-center rounded-sm focus:outline-none focus-visible:ring'
href={publication.link}
href={publication.file.url}
>
<AiOutlineFilePdf className='hover:text-primary-500 dark:hover:text-primary-300 my-auto h-6 w-6 align-middle text-blue-900 transition-colors dark:text-gray-300' />
</UnstyledLink>
Expand Down
27 changes: 27 additions & 0 deletions src/queries/publications.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { gql } from '@apollo/client';
import { groq } from 'next-sanity';

export const publicationQuery = groq`
Expand All @@ -10,3 +11,29 @@ export const publicationQuery = groq`
year,
"link": file.asset->url
}`;

export const publicationQueryQL = gql`
query {
publications(locale: "en", sort: "rank") {
data {
id
attributes {
title
description
publisher
year
file {
data {
id
attributes {
name
url
alternativeText
}
}
}
}
}
}
}
`;
7 changes: 7 additions & 0 deletions src/types/Icon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,10 @@ export interface Icon {
url: string;
alternativeText?: string;
}

export interface File {
id: string;
name: string;
url: string;
alternativeText?: string;
}
11 changes: 11 additions & 0 deletions src/types/Publication.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { File } from '@/types/Icon';

export interface Publication {
id: string;
name: string;
title: string;
description: string;
publisher: string;
year: string;
file: File;
}

0 comments on commit c7a88bf

Please sign in to comment.