Skip to content

Commit

Permalink
Better graphql codegen
Browse files Browse the repository at this point in the history
  • Loading branch information
pookmish committed Feb 26, 2024
1 parent 2bd02fa commit f07bb4f
Show file tree
Hide file tree
Showing 96 changed files with 1,852 additions and 1,538 deletions.
2 changes: 1 addition & 1 deletion app/@modal/(.)gallery-image/[uuid]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import InterceptionModal from "@components/elements/interception-modal";
import {randomUUID} from "crypto";
import Image from "next/image";
import {graphqlClient} from "@lib/gql/fetcher";
import {MediaStanfordGalleryImage} from "@lib/gql/__generated__/drupal";
import {MediaStanfordGalleryImage} from "@lib/gql/__generated__/drupal.d";

const Page = async ({params: {uuid}}: { params: { uuid: string } }) => {

Expand Down
2 changes: 1 addition & 1 deletion app/[...slug]/metadata.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
NodeStanfordPage,
NodeStanfordPerson, NodeStanfordPolicy,
NodeUnion, ParagraphStanfordWysiwyg, ParagraphUnion
} from "@lib/gql/__generated__/drupal";
} from "@lib/gql/__generated__/drupal.d";

export const getNodeMetadata = (node: NodeUnion): Metadata => {
const defaultData = {
Expand Down
11 changes: 4 additions & 7 deletions app/[...slug]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import {notFound, redirect} from "next/navigation";
import NodePage from "@components/nodes/pages/node-page";
import {Metadata} from "next";
import {getNodePaths} from "@lib/drupal/get-paths";
import {getNodeMetadata} from "./metadata";
import {getPathFromContext, isDraftMode} from "@lib/drupal/utils";
import {PageProps, Params} from "@lib/types";
import {getEntityFromPath} from "@lib/gql/fetcher";
import {NodeUnion} from "@lib/gql/__generated__/drupal";
import {getAllNodePaths, getEntityFromPath} from "@lib/gql/fetcher";
import {NodeUnion} from "@lib/gql/__generated__/drupal.d";
import UnpublishedBanner from "@components/elements/unpublished-banner";

// https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config
Expand Down Expand Up @@ -44,10 +43,8 @@ export const generateMetadata = async ({params}: PageProps): Promise<Metadata> =

export const generateStaticParams = async (): Promise<Params[]> => {
if (process.env.BUILD_COMPLETE !== 'true') return []
const nodePaths = await getNodePaths();
if (nodePaths) return nodePaths.filter(path => path !== '/')
.map(path => ({slug: path.replace(/^\//, '').split('/')}))
return [];
const nodePaths = await getAllNodePaths();
return nodePaths.map(path => ({slug: path.split('/').filter(part => !!part)}));
}

export default Page;
2 changes: 1 addition & 1 deletion app/gallery-image/[uuid]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {notFound} from "next/navigation";
import {H1} from "@components/elements/headers";
import Image from "next/image";
import {MediaStanfordGalleryImage} from "@lib/gql/__generated__/drupal";
import {MediaStanfordGalleryImage} from "@lib/gql/__generated__/drupal.d";
import {graphqlClient} from "@lib/gql/fetcher";

export const metadata = {
Expand Down
2 changes: 1 addition & 1 deletion app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {isDraftMode} from "@lib/drupal/utils";
import BackToTop from "@components/elements/back-to-top";
import Link from "@components/elements/link";
import {getConfigPage} from "@lib/gql/fetcher";
import {StanfordBasicSiteSetting} from "@lib/gql/__generated__/drupal";
import {StanfordBasicSiteSetting} from "@lib/gql/__generated__/drupal.d";
import {GoogleAnalytics} from "@next/third-parties/google";

export const metadata = {
Expand Down
2 changes: 1 addition & 1 deletion app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Rows from "@components/paragraphs/rows/rows";
import {notFound} from "next/navigation";
import {getEntityFromPath} from "@lib/gql/fetcher";
import {NodeStanfordPage, NodeUnion} from "@lib/gql/__generated__/drupal";
import {NodeStanfordPage, NodeUnion} from "@lib/gql/__generated__/drupal.d";
import {isDraftMode} from "@lib/drupal/utils";
import {Metadata} from "next";
import {getNodeMetadata} from "./[...slug]/metadata";
Expand Down
2 changes: 1 addition & 1 deletion app/search/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {DrupalNode} from "next-drupal";
import {Suspense} from "react";
import {DrupalJsonApiParams} from "drupal-jsonapi-params";
import {getConfigPage} from "@lib/gql/fetcher";
import {StanfordBasicSiteSetting} from "@lib/gql/__generated__/drupal";
import {StanfordBasicSiteSetting} from "@lib/gql/__generated__/drupal.d";
import AlgoliaSearch from "./algolia-search";

// https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config
Expand Down
8 changes: 3 additions & 5 deletions app/sitemap.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import {MetadataRoute} from "next";
import {getNodePaths} from "@lib/drupal/get-paths";
import {getAllNodePaths} from "@lib/gql/fetcher";

const Sitemap = async (): Promise<MetadataRoute.Sitemap> => {
const allPaths = await getNodePaths();
const urls: MetadataRoute.Sitemap = [];
allPaths.map(url => urls.push({url}))
return urls
const nodePaths = await getAllNodePaths()
return nodePaths.map(path => ({url: path}));
}
export default Sitemap;
21 changes: 18 additions & 3 deletions codegen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,24 @@ const config: CodegenConfig = {
schema: `${process.env.NEXT_PUBLIC_DRUPAL_BASE_URL}/graphql` as string,
documents: 'src/lib/gql/*.drupal.gql',
generates: {
'src/lib/gql/__generated__/drupal.ts': {
plugins: ['typescript', 'typescript-operations', 'typescript-graphql-request']
}
'src/lib/gql/__generated__/drupal.d.ts': {
plugins: [
'typescript',
'typescript-operations',
{add: {content: "/** THIS IS GENERATED FILE. DO NOT MODIFY IT DIRECTLY, RUN 'yarn graphql' INSTEAD. **/"}}
],
},
'src/lib/gql/__generated__/queries.ts': {
preset: 'import-types',
plugins: [
'typescript-graphql-request',
{add: {content: "/** THIS IS GENERATED FILE. DO NOT MODIFY IT DIRECTLY, RUN 'yarn graphql' INSTEAD. **/"}}
],
presetConfig: {
typesPath: './drupal.d'
},
},

},
};

Expand Down
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@
"zustand": "^4.5.1"
},
"devDependencies": {
"@graphql-codegen/add": "^5.0.2",
"@graphql-codegen/cli": "^5.0.2",
"@graphql-codegen/import-types-preset": "^3.0.0",
"@graphql-codegen/near-operation-file-preset": "^3.0.0",
"@graphql-codegen/typescript-graphql-request": "^6.2.0",
"@graphql-codegen/typescript-operations": "^4.1.3",
Expand Down
2 changes: 1 addition & 1 deletion src/components/config-pages/global-message.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {H2} from "@components/elements/headers";
import Wysiwyg from "@components/elements/wysiwyg";
import Link from "@components/elements/link";
import {clsx} from "clsx";
import {StanfordGlobalMessage} from "@lib/gql/__generated__/drupal";
import {StanfordGlobalMessage} from "@lib/gql/__generated__/drupal.d";

const GlobalMessage = ({
suGlobalMsgEnabled,
Expand Down
2 changes: 1 addition & 1 deletion src/components/config-pages/local-footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {H2} from "@components/elements/headers";
import TwitterIcon from "@components/elements/icons/TwitterIcon";
import YoutubeIcon from "@components/elements/icons/YoutubeIcon";
import FacebookIcon from "@components/elements/icons/FacebookIcon";
import { Maybe, StanfordLocalFooter} from "@lib/gql/__generated__/drupal";
import { Maybe, StanfordLocalFooter} from "@lib/gql/__generated__/drupal.d";
import {buildUrl} from "@lib/drupal/utils";

const LocalFooter = ({
Expand Down
2 changes: 1 addition & 1 deletion src/components/config-pages/super-footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Wysiwyg from "@components/elements/wysiwyg";
import Link from "@components/elements/link";
import {LockClosedIcon} from "@heroicons/react/24/outline";
import {H2} from "@components/elements/headers";
import {StanfordSuperFooter} from "@lib/gql/__generated__/drupal";
import {StanfordSuperFooter} from "@lib/gql/__generated__/drupal.d";

const SuperFooter = ({suSuperFootEnabled, suSuperFootTitle, suSuperFootText, suSuperFootLink, suSuperFootIntranet}: StanfordSuperFooter ) => {
if (!suSuperFootEnabled) return
Expand Down
2 changes: 1 addition & 1 deletion src/components/elements/address.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {Address as AddressType} from "@lib/gql/__generated__/drupal";
import {Address as AddressType} from "@lib/gql/__generated__/drupal.d";
type Props = AddressType & {
singleLine?: boolean
}
Expand Down
2 changes: 1 addition & 1 deletion src/components/elements/button.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Link from "@components/elements/link";
import {twMerge} from 'tailwind-merge'
import {HtmlHTMLAttributes, MouseEventHandler} from "react";
import {Maybe} from "@lib/gql/__generated__/drupal";
import {Maybe} from "@lib/gql/__generated__/drupal.d";
import {clsx} from "clsx";


Expand Down
4 changes: 2 additions & 2 deletions src/components/elements/interception-modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ import React, {HtmlHTMLAttributes, useCallback, useRef} from "react";
import {useRouter} from "next/navigation";
import ReactFocusLock from "react-focus-lock";
import {XMarkIcon} from "@heroicons/react/20/solid";
import {useEventListener, useLockedBody} from "usehooks-ts";
import {useEventListener, useScrollLock} from "usehooks-ts";

const InterceptionModal = ({children, ...props}: HtmlHTMLAttributes<HTMLDialogElement>) => {
const overlay = useRef<HTMLDialogElement>(null);
const wrapper = useRef<HTMLDivElement>(null);
const router = useRouter();
useLockedBody(true)
useScrollLock()

const onDismiss = useCallback(() => router.back(), [router]);

Expand Down
2 changes: 1 addition & 1 deletion src/components/elements/lockup/lockup-logo.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {Maybe} from "@lib/gql/__generated__/drupal";
import {Maybe} from "@lib/gql/__generated__/drupal.d";
import StanfordWordMark from "@components/images/stanford-wordmark";

const LockupLogo = ({logoUrl, siteName = ''}: { logoUrl?: Maybe<string>, siteName?: Maybe<string> }) => {
Expand Down
2 changes: 1 addition & 1 deletion src/components/elements/lockup/lockup.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import LockupR from "@components/elements/lockup/lockup-r";
import LockupS from "@components/elements/lockup/lockup-s";
import LockupT from "@components/elements/lockup/lockup-t";
import LockupLogo from "@components/elements/lockup/lockup-logo";
import {LockupSetting, StanfordBasicSiteSetting} from "@lib/gql/__generated__/drupal";
import {LockupSetting, StanfordBasicSiteSetting} from "@lib/gql/__generated__/drupal.d";

type Props =
Omit<LockupSetting, "__typename" | "id" | "metatag"> &
Expand Down
2 changes: 1 addition & 1 deletion src/components/elements/select-list.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {
} from "react";
import {ChevronDownIcon} from "@heroicons/react/20/solid";
import {useIsClient} from "usehooks-ts";
import {Maybe} from "@lib/gql/__generated__/drupal";
import {Maybe} from "@lib/gql/__generated__/drupal.d";

interface OptionProps {
rootRef: RefObject<HTMLUListElement>
Expand Down
2 changes: 1 addition & 1 deletion src/components/elements/wysiwyg.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import Oembed from "@components/elements/ombed";
import React, {ComponentProps, HtmlHTMLAttributes} from "react";
import {H2, H3, H4, H5, H6} from "@components/elements/headers";
import {twMerge} from "tailwind-merge";
import {Maybe} from "@lib/gql/__generated__/drupal";
import {Maybe} from "@lib/gql/__generated__/drupal.d";
import Mathjax from "@components/tools/mathjax";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
Expand Down
2 changes: 1 addition & 1 deletion src/components/global/page-footer.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import LocalFooter from "@components/config-pages/local-footer";
import SuperFooter from "@components/config-pages/super-footer";
import {getConfigPage} from "@lib/gql/fetcher";
import {StanfordLocalFooter, StanfordSuperFooter} from "@lib/gql/__generated__/drupal";
import {StanfordLocalFooter, StanfordSuperFooter} from "@lib/gql/__generated__/drupal.d";

const PageFooter = async () => {

Expand Down
2 changes: 1 addition & 1 deletion src/components/global/page-header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
MenuAvailable,
StanfordBasicSiteSetting,
StanfordGlobalMessage
} from "@lib/gql/__generated__/drupal";
} from "@lib/gql/__generated__/drupal.d";
import {isDraftMode} from "@lib/drupal/utils";

const PageHeader = async () => {
Expand Down
2 changes: 1 addition & 1 deletion src/components/layouts/interior-page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {getMenu} from "@lib/gql/fetcher";
import SideNav from "@components/menu/side-nav";
import {HtmlHTMLAttributes} from "react";
import {isDraftMode} from "@lib/drupal/utils";
import {MenuAvailable} from "@lib/gql/__generated__/drupal";
import {MenuAvailable} from "@lib/gql/__generated__/drupal.d";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
currentPath: string
Expand Down
2 changes: 1 addition & 1 deletion src/components/menu/main-menu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import useOutsideClick from "@lib/hooks/useOutsideClick";
import {usePathname} from "next/navigation";
import {useBoolean, useEventListener} from "usehooks-ts";
import {clsx} from "clsx";
import {MenuItem as MenuItemType} from "@lib/gql/__generated__/drupal";
import {MenuItem as MenuItemType} from "@lib/gql/__generated__/drupal.d";

const MainMenu = ({menuItems}: { menuItems: MenuItemType[] }) => {
const buttonRef = useRef<HTMLButtonElement>(null)
Expand Down
2 changes: 1 addition & 1 deletion src/components/menu/side-nav.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import useActiveTrail from "@lib/hooks/useActiveTrail";
import Link from "@components/elements/link";
import {clsx} from "clsx";
import {MenuItem as MenuItemType} from "@lib/gql/__generated__/drupal";
import {MenuItem as MenuItemType} from "@lib/gql/__generated__/drupal.d";

const SideNav = ({menuItems, currentPath}: { menuItems: MenuItemType[], currentPath?: string }) => {
const activeTrail: string[] = useActiveTrail(menuItems, currentPath);
Expand Down
2 changes: 1 addition & 1 deletion src/components/nodes/cards/node-card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import StanfordPersonCard from "@components/nodes/cards/stanford-person/stanford
import StanfordPolicyCard from "@components/nodes/cards/stanford-policy/stanford-policy-card";
import StanfordPublicationCard from "@components/nodes/cards/stanford-publication/stanford-publication-card";
import {isDraftMode} from "@lib/drupal/utils";
import {NodeUnion} from "@lib/gql/__generated__/drupal";
import {NodeUnion} from "@lib/gql/__generated__/drupal.d";

const NodeCard = ({node, headingLevel}: { node: NodeUnion, headingLevel?: "h2" | "h3" }) => {
const draftMode = isDraftMode();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Link from "@components/elements/link";
import {H2, H3} from "@components/elements/headers";
import {HtmlHTMLAttributes} from 'react';
import {NodeStanfordCourse} from "@lib/gql/__generated__/drupal";
import {NodeStanfordCourse} from "@lib/gql/__generated__/drupal.d";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
node: NodeStanfordCourse
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Link from "@components/elements/link";
import {H2, H3} from "@components/elements/headers";
import {HtmlHTMLAttributes} from "react";
import {NodeStanfordEventSeries} from "@lib/gql/__generated__/drupal";
import {NodeStanfordEventSeries} from "@lib/gql/__generated__/drupal.d";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
node: NodeStanfordEventSeries
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Link from "@components/elements/link";
import {CalendarDaysIcon, MapPinIcon} from "@heroicons/react/20/solid";
import {H2, H3} from "@components/elements/headers";
import {HtmlHTMLAttributes} from "react";
import {NodeStanfordEvent} from "@lib/gql/__generated__/drupal";
import {NodeStanfordEvent} from "@lib/gql/__generated__/drupal.d";
import Address from "@components/elements/address";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Image from "next/image";
import Link from "@components/elements/link";
import {H2, H3} from "@components/elements/headers";
import {HtmlHTMLAttributes} from "react";
import {NodeStanfordNews} from "@lib/gql/__generated__/drupal";
import {NodeStanfordNews} from "@lib/gql/__generated__/drupal.d";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
node: NodeStanfordNews
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Link from "@components/elements/link";
import Image from "next/image";
import {H2, H3} from "@components/elements/headers";
import {HtmlHTMLAttributes} from "react";
import {NodeStanfordPage} from "@lib/gql/__generated__/drupal";
import {NodeStanfordPage} from "@lib/gql/__generated__/drupal.d";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
node: NodeStanfordPage
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Image from "next/image";
import Link from "@components/elements/link";
import {H2, H3} from "@components/elements/headers";
import {HtmlHTMLAttributes} from "react";
import {NodeStanfordPerson} from "@lib/gql/__generated__/drupal";
import {NodeStanfordPerson} from "@lib/gql/__generated__/drupal.d";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
node: NodeStanfordPerson
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Link from "@components/elements/link";
import Wysiwyg from "@components/elements/wysiwyg";
import {H2, H3} from "@components/elements/headers";
import {HtmlHTMLAttributes} from "react";
import {NodeStanfordPolicy} from "@lib/gql/__generated__/drupal";
import {NodeStanfordPolicy} from "@lib/gql/__generated__/drupal.d";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
node: NodeStanfordPolicy
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Link from "@components/elements/link";
import {H2, H3} from "@components/elements/headers";
import {HtmlHTMLAttributes} from "react";
import {NodeStanfordPublication} from "@lib/gql/__generated__/drupal";
import {NodeStanfordPublication} from "@lib/gql/__generated__/drupal.d";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
node: NodeStanfordPublication
Expand Down
2 changes: 1 addition & 1 deletion src/components/nodes/list-item/node-list-item.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import StanfordPolicyListItem from "@components/nodes/list-item/stanford-policy/
import StanfordPublicationListItem
from "@components/nodes/list-item/stanford-publication/stanford-publication-list-item";
import {isDraftMode} from "@lib/drupal/utils";
import {NodeUnion} from "@lib/gql/__generated__/drupal";
import {NodeUnion} from "@lib/gql/__generated__/drupal.d";

const NodeListItem = ({node, headingLevel}: { node: NodeUnion, headingLevel?: "h2" | "h3" }) => {
const draftMode = isDraftMode();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Link from "@components/elements/link";
import {H2, H3} from "@components/elements/headers";
import {HtmlHTMLAttributes} from "react";
import {NodeStanfordCourse} from "@lib/gql/__generated__/drupal";
import {NodeStanfordCourse} from "@lib/gql/__generated__/drupal.d";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
node: NodeStanfordCourse
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Link from "@components/elements/link";
import {H2, H3} from "@components/elements/headers";
import {HtmlHTMLAttributes} from "react";
import {NodeStanfordEventSeries} from "@lib/gql/__generated__/drupal";
import {NodeStanfordEventSeries} from "@lib/gql/__generated__/drupal.d";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
node: NodeStanfordEventSeries
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {CalendarDaysIcon, MapPinIcon} from "@heroicons/react/20/solid";
import Address from "@components/elements/address";
import {H2, H3} from "@components/elements/headers";
import {HtmlHTMLAttributes} from "react";
import {NodeStanfordEvent} from "@lib/gql/__generated__/drupal";
import {NodeStanfordEvent} from "@lib/gql/__generated__/drupal.d";
import {getEventTimeString} from "@components/nodes/cards/stanford-event/stanford-event-card";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Image from "next/image";
import Link from "@components/elements/link";
import {H2, H3} from "@components/elements/headers";
import {HtmlHTMLAttributes} from "react";
import {NodeStanfordNews, TermStanfordNewsTopic} from "@lib/gql/__generated__/drupal";
import {NodeStanfordNews, TermStanfordNewsTopic} from "@lib/gql/__generated__/drupal.d";

type Props = HtmlHTMLAttributes<HTMLDivElement> & {
node: NodeStanfordNews
Expand Down
Loading

0 comments on commit f07bb4f

Please sign in to comment.