Skip to content

Commit

Permalink
Better typescripting
Browse files Browse the repository at this point in the history
  • Loading branch information
pookmish committed Feb 11, 2024
1 parent 83df035 commit a6b9a88
Show file tree
Hide file tree
Showing 75 changed files with 619 additions and 873 deletions.
1 change: 1 addition & 0 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { TsconfigPathsPlugin } from "tsconfig-paths-webpack-plugin";
import path from "path";
import type {StorybookConfig} from "@storybook/nextjs";

const config: StorybookConfig = {
Expand Down
7 changes: 4 additions & 3 deletions .storybook/stories/config-pages/GlobalMessage.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import type {Meta, StoryObj} from '@storybook/react';
import GlobalMessage from "@components/config-pages/global-message";
import {ComponentProps} from "react";
import {Link, Text} from "@lib/gql/__generated__/drupal";

type ComponentStoryProps = ComponentProps<typeof GlobalMessage> & {
messageText?: string
linkUrl?: string
linkTitle?: string
messageText?: Text["processed"]
linkUrl?: Link["url"]
linkTitle?: Link["title"]
}

// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
Expand Down
4 changes: 2 additions & 2 deletions .storybook/stories/config-pages/SuperFooter.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import type {Meta, StoryObj} from '@storybook/react';

import SuperFooter from "@components/config-pages/super-footer";
import {ComponentProps} from "react";
import {Text} from "@lib/gql/__generated__/drupal";

type ComponentStoryProps = ComponentProps<typeof SuperFooter> & {
footerHtml?: string
footerHtml?: Text["processed"]
}

// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
Expand Down
3 changes: 2 additions & 1 deletion .storybook/stories/elements/lockup/Lockup.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import type {Meta, StoryObj} from '@storybook/react';
import Lockup from "@components/elements/lockup/lockup";
import {ComponentProps} from "react";
import {Image} from "@lib/gql/__generated__/drupal";

type ComponentStoryProps = ComponentProps<typeof Lockup> & {
logoUrl?: string
logoUrl?: Image["url"]
}

// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
Expand Down
8 changes: 4 additions & 4 deletions .storybook/stories/nodes/cards/BasicPageCard.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ import type {Meta, StoryObj} from '@storybook/react';
import StanfordPageCard from "@components/nodes/cards/stanford-page/stanford-page-card";
import {StanfordPageData} from "../StanfordPage.data";
import {ComponentProps} from "react";
import {Maybe} from "@lib/gql/__generated__/drupal";
import {Text, Image, NodeStanfordPage} from "@lib/gql/__generated__/drupal";
import {getStoryBookImage} from "../../storybook-entities";

type ComponentStoryProps = ComponentProps<typeof StanfordPageCard> & {
title: string
suPageImage?: string
suPageDescription?: Maybe<string>
title: NodeStanfordPage["title"]
suPageImage?: Image["url"]
suPageDescription?: Text["processed"]
}
// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
const meta: Meta<ComponentStoryProps> = {
Expand Down
6 changes: 3 additions & 3 deletions .storybook/stories/nodes/cards/CourseCard.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import type {Meta, StoryObj} from '@storybook/react';
import StanfordCourseCard from "@components/nodes/cards/stanford-course/stanford-course-card";
import {StanfordCourseData} from "../StanfordCourse.data";
import {ComponentProps} from "react";
import {NodeStanfordCourse} from "@lib/gql/__generated__/drupal";
import {NodeStanfordCourse, TermSuCourseSubject} from "@lib/gql/__generated__/drupal";
import {getStoryBookTaxonomyTerm} from "../../storybook-entities";

type ComponentStoryProps = ComponentProps<typeof StanfordCourseCard> & {
title: string
suCourseSubject?: string
title: NodeStanfordCourse["title"]
suCourseSubject?: TermSuCourseSubject["name"]
suCourseCode?: NodeStanfordCourse["suCourseCode"]
suCourseAcademicYear?: NodeStanfordCourse["suCourseAcademicYear"]
}
Expand Down
10 changes: 5 additions & 5 deletions .storybook/stories/nodes/cards/EventCard.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ import type {Meta, StoryObj} from '@storybook/react';
import StanfordEventCard from "@components/nodes/cards/stanford-event/stanford-event-card";
import {StanfordEventData} from "../StanfordEvent.data";
import {ComponentProps} from "react";
import {NodeStanfordEvent} from "@lib/gql/__generated__/drupal";
import {NodeStanfordEvent, SmartDateType, TermStanfordEventType} from "@lib/gql/__generated__/drupal";
import {getStoryBookTaxonomyTerm} from "../../storybook-entities";

type ComponentStoryProps = ComponentProps<typeof StanfordEventCard> & {
suEventDateTime_start: number
suEventDateTime_end: number
title: string
suEventType?: string
suEventDateTime_start: SmartDateType["value"]
suEventDateTime_end: SmartDateType["end_value"]
title: NodeStanfordEvent["title"]
suEventType?: TermStanfordEventType["name"]
suEventSubheadline?: NodeStanfordEvent["suEventSubheadline"]
suEventAltLoc?: NodeStanfordEvent["suEventAltLoc"]
}
Expand Down
2 changes: 1 addition & 1 deletion .storybook/stories/nodes/cards/EventSeriesCard.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {ComponentProps} from "react";
import {NodeStanfordEventSeries} from "@lib/gql/__generated__/drupal";

type ComponentStoryProps = ComponentProps<typeof StanfordEventSeriesCard> & {
title: string
title: NodeStanfordEventSeries["title"]
suEventSeriesDek?: NodeStanfordEventSeries["suEventSeriesDek"]
}

Expand Down
16 changes: 6 additions & 10 deletions .storybook/stories/nodes/cards/NewsCard.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ import StanfordNewsCard from "@components/nodes/cards/stanford-news/stanford-new
import {StanfordNewsData} from "../StanfordNews.data";
import {ComponentProps} from "react";
import {getStoryBookImage, getStoryBookTaxonomyTerm} from "../../storybook-entities";
import {DateTime, Image, NodeStanfordNews, TermStanfordNewsTopic} from "@lib/gql/__generated__/drupal";

type ComponentStoryProps = ComponentProps<typeof StanfordNewsCard> & {
title: string
suNewsFeaturedMedia?: string
suNewsTopics?: string[]
suNewsPublishingDate?: number
title: NodeStanfordNews["title"]
suNewsFeaturedMedia?: Image["url"]
suNewsTopics?: TermStanfordNewsTopic["name"][]
suNewsPublishingDate?: DateTime["timestamp"]
}

// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
Expand All @@ -24,10 +25,6 @@ const meta: Meta<ComponentStoryProps> = {
suNewsPublishingDate: {
control: "date"
},
suNewsFeaturedMedia: {
options: ["image", "none"],
control: {type: "select"}
},
node: {
table: {
disable: true,
Expand All @@ -49,8 +46,7 @@ export const NewsCard: Story = {
time: new Date(suNewsPublishingDate).toISOString(),
timezone: "America/Los_Angeles",
}
if (suNewsFeaturedMedia === "image") node.suNewsFeaturedMedia = getStoryBookImage()
if (suNewsFeaturedMedia === "none") node.suNewsFeaturedMedia = undefined
node.suNewsFeaturedMedia = suNewsFeaturedMedia ? getStoryBookImage() : undefined

node.suNewsTopics = [];
if (suNewsTopics) {
Expand Down
14 changes: 4 additions & 10 deletions .storybook/stories/nodes/cards/PersonCard.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ import type {Meta, StoryObj} from '@storybook/react';
import StanfordPersonCard from "@components/nodes/cards/stanford-person/stanford-person-card";
import {StanfordPersonData} from "../StanfordPerson.data";
import {ComponentProps} from "react";
import {NodeStanfordPerson} from "@lib/gql/__generated__/drupal";
import {Image, NodeStanfordPerson} from "@lib/gql/__generated__/drupal";
import {getStoryBookImage} from "../../storybook-entities";

type ComponentStoryProps = ComponentProps<typeof StanfordPersonCard> & {
title: string
suPersonPhoto: "image" | "none"
title: NodeStanfordPerson["title"]
suPersonPhoto: Image["url"]
suPersonShortTitle?: NodeStanfordPerson["suPersonShortTitle"]
}

Expand All @@ -22,10 +22,6 @@ const meta: Meta<ComponentStoryProps> = {
options: ["h2", "h3"],
control: {type: "select"}
},
suPersonPhoto: {
options: ["image", "none"],
control: "select"
},
node: {
table: {
disable: true,
Expand All @@ -42,9 +38,7 @@ export const PersonCard: Story = {
render: ({title, suPersonPhoto, suPersonShortTitle, node, ...args}) => {
node.title = title;
node.suPersonShortTitle = suPersonShortTitle;

if (suPersonPhoto === "image") node.suPersonPhoto = getStoryBookImage()
if (suPersonPhoto === "none") node.suPersonPhoto = undefined
node.suPersonPhoto = suPersonPhoto ? getStoryBookImage() : undefined;
return <StanfordPersonCard node={node} {...args}/>
},
args: {
Expand Down
5 changes: 3 additions & 2 deletions .storybook/stories/nodes/cards/PolicyCard.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ import type {Meta, StoryObj} from '@storybook/react';
import StanfordPolicyCard from "@components/nodes/cards/stanford-policy/stanford-policy-card";
import {StanfordPolicyData} from "../StanfordPolicy.data";
import {ComponentProps} from "react";
import {NodeStanfordPolicy, Text} from "@lib/gql/__generated__/drupal";

type ComponentStoryProps = ComponentProps<typeof StanfordPolicyCard> & {
title: string
body?: string
title: NodeStanfordPolicy["title"]
body?: Text["processed"]
}

// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
Expand Down
5 changes: 3 additions & 2 deletions .storybook/stories/nodes/cards/PublicationCard.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ import StanfordPublicationCard from "@components/nodes/cards/stanford-publicatio
import {StanfordPublicationData} from "../StanfordPublication.data";
import {ComponentProps} from "react";
import {getStoryBookTaxonomyTerm} from "../../storybook-entities";
import {NodeStanfordPublication, TermStanfordPublicationTopic} from "@lib/gql/__generated__/drupal";

type ComponentStoryProps = ComponentProps<typeof StanfordPublicationCard> & {
title: string
suPublicationTopics?: string[]
title: NodeStanfordPublication["title"]
suPublicationTopics?: TermStanfordPublicationTopic["name"][]
}

// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import type {Meta, StoryObj} from '@storybook/react';
import StanfordPageListItem from "@components/nodes/list-item/stanford-page/stanford-page-list-item";
import {PageCard} from "../cards/BasicPageCard.stories";
import {ComponentProps} from "react";
import {Maybe} from "@lib/gql/__generated__/drupal";
import {Image, NodeStanfordPage, Text} from "@lib/gql/__generated__/drupal";
import {getStoryBookImage} from "../../storybook-entities";

type ComponentStoryProps = ComponentProps<typeof StanfordPageListItem> & {
title: string
suPageImage?: string
suPageDescription?: Maybe<string>
title: NodeStanfordPage["title"]
suPageImage?: Image["url"]
suPageDescription?: Text["processed"]
}

// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
Expand Down
6 changes: 3 additions & 3 deletions .storybook/stories/nodes/list-item/CourseListItem.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ import type {Meta, StoryObj} from '@storybook/react';
import StanfordCourseListItem from "@components/nodes/list-item/stanford-course/stanford-course-list-item";
import {CourseCard} from "../cards/CourseCard.stories";
import {ComponentProps} from "react";
import {NodeStanfordCourse} from "@lib/gql/__generated__/drupal";
import {NodeStanfordCourse, TermSuCourseSubject} from "@lib/gql/__generated__/drupal";
import {getStoryBookTaxonomyTerm} from "../../storybook-entities";

type ComponentStoryProps = ComponentProps<typeof StanfordCourseListItem> & {
title: string
suCourseSubject?: string
title: NodeStanfordCourse["title"]
suCourseSubject?: TermSuCourseSubject["name"]
suCourseCode?: NodeStanfordCourse["suCourseCode"]
suCourseAcademicYear?: NodeStanfordCourse["suCourseAcademicYear"]
}
Expand Down
10 changes: 5 additions & 5 deletions .storybook/stories/nodes/list-item/EventListItem.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import type {Meta, StoryObj} from '@storybook/react';
import StanfordEventListItem from "@components/nodes/list-item/stanford-event/stanford-event-list-item";
import {EventCard} from "../cards/EventCard.stories";
import {ComponentProps} from "react";
import {NodeStanfordEvent} from "@lib/gql/__generated__/drupal";
import {NodeStanfordEvent, SmartDateType, TermStanfordEventType} from "@lib/gql/__generated__/drupal";
import {getStoryBookTaxonomyTerm} from "../../storybook-entities";

type ComponentStoryProps = ComponentProps<typeof StanfordEventListItem> & {
suEventDateTime_start: number
suEventDateTime_end: number
title: string
suEventType?: string
suEventDateTime_start: SmartDateType["value"]
suEventDateTime_end: SmartDateType["end_value"]
title: NodeStanfordEvent["title"]
suEventType?: TermStanfordEventType["name"]
suEventSubheadline?: NodeStanfordEvent["suEventSubheadline"]
suEventAltLoc?: NodeStanfordEvent["suEventAltLoc"]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {ComponentProps} from "react";
import {NodeStanfordEventSeries} from "@lib/gql/__generated__/drupal";

type ComponentStoryProps = ComponentProps<typeof StanfordEventSeriesListItem> & {
title: string
title: NodeStanfordEventSeries["title"]
suEventSeriesDek?: NodeStanfordEventSeries["suEventSeriesDek"]
}

Expand Down
15 changes: 9 additions & 6 deletions .storybook/stories/nodes/list-item/NewsListItem.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ import StanfordNewsListItem from "@components/nodes/list-item/stanford-news/stan
import {NewsCard} from "../cards/NewsCard.stories";
import {ComponentProps} from "react";
import {getStoryBookImage, getStoryBookTaxonomyTerm} from "../../storybook-entities";
import {DateTime, Image, NodeStanfordNews, TermStanfordNewsTopic} from "@lib/gql/__generated__/drupal";

type ComponentStoryProps = ComponentProps<typeof StanfordNewsListItem> & {
title: string
suNewsFeaturedMedia?: string
suNewsTopics?: string[]
suNewsPublishingDate?: number
title: NodeStanfordNews["title"]
suNewsFeaturedMedia?: Image["url"]
suNewsTopics?: TermStanfordNewsTopic["name"][]
suNewsPublishingDate?: DateTime["timestamp"]
}

// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
Expand All @@ -21,6 +22,9 @@ const meta: Meta<ComponentStoryProps> = {
options: ["h2", "h3"],
control: {type: "select"}
},
suNewsPublishingDate: {
control: "date"
},
node: {
table: {
disable: true,
Expand All @@ -42,8 +46,7 @@ export const NewsListItem: Story = {
time: new Date(suNewsPublishingDate).toISOString(),
timezone: "America/Los_Angeles",
}
if (suNewsFeaturedMedia === "image") node.suNewsFeaturedMedia = getStoryBookImage()
if (suNewsFeaturedMedia === "none") node.suNewsFeaturedMedia = undefined
node.suNewsFeaturedMedia = suNewsFeaturedMedia ? getStoryBookImage() : undefined

node.suNewsTopics = [];
if (suNewsTopics) {
Expand Down
10 changes: 4 additions & 6 deletions .storybook/stories/nodes/list-item/PersonListItem.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import type {Meta, StoryObj} from '@storybook/react';
import StanfordPersonListItem from "@components/nodes/list-item/stanford-person/stanford-person-list-item";
import {PersonCard} from "../cards/PersonCard.stories";
import {ComponentProps} from "react";
import {NodeStanfordPerson} from "@lib/gql/__generated__/drupal";
import {Image, NodeStanfordPerson} from "@lib/gql/__generated__/drupal";
import {getStoryBookImage} from "../../storybook-entities";

type ComponentStoryProps = ComponentProps<typeof StanfordPersonListItem> & {
title: string
suPersonPhoto: "image" | "none"
title: NodeStanfordPerson["title"]
suPersonPhoto: Image["url"]
suPersonShortTitle?: NodeStanfordPerson["suPersonShortTitle"]
}

Expand Down Expand Up @@ -37,9 +37,7 @@ export const PersonListItem: Story = {
render: ({title, suPersonPhoto, suPersonShortTitle, node, ...args}) => {
node.title = title;
node.suPersonShortTitle = suPersonShortTitle;

if (suPersonPhoto === "image") node.suPersonPhoto = getStoryBookImage()
if (suPersonPhoto === "none") node.suPersonPhoto = undefined
node.suPersonPhoto = suPersonPhoto ? getStoryBookImage() : undefined;
return <StanfordPersonListItem node={node} {...args}/>
},
args: {...PersonCard.args}
Expand Down
5 changes: 3 additions & 2 deletions .storybook/stories/nodes/list-item/PolicyListItem.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ import type {Meta, StoryObj} from '@storybook/react';
import StanfordPolicyListItem from "@components/nodes/list-item/stanford-policy/stanford-policy-list-item";
import {PolicyCard} from "../cards/PolicyCard.stories";
import {ComponentProps} from "react";
import {NodeStanfordPolicy, Text} from "@lib/gql/__generated__/drupal";

type ComponentStoryProps = ComponentProps<typeof StanfordPolicyListItem> & {
title: string
body?: string
title: NodeStanfordPolicy["title"]
body?: Text["processed"]
}

// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ import StanfordPublicationListItem from "@components/nodes/list-item/stanford-pu
import {PublicationCard} from "../cards/PublicationCard.stories";
import {ComponentProps} from "react";
import {getStoryBookTaxonomyTerm} from "../../storybook-entities";
import {NodeStanfordPublication, TermStanfordPublicationTopic} from "@lib/gql/__generated__/drupal";

type ComponentStoryProps = ComponentProps<typeof StanfordPublicationListItem> & {
title: string
suPublicationTopics?: string[]
title: NodeStanfordPublication["title"]
suPublicationTopics?: TermStanfordPublicationTopic["name"][]
}

// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
Expand Down
Loading

0 comments on commit a6b9a88

Please sign in to comment.