diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-05-10 17:38:07 +0200 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-05-13 15:46:01 +0200 |
| commit | 9c8921db92d16b07ffc2a63ff3c80c4dcdd9ff9d (patch) | |
| tree | 52e87fa8e758ec51cfbf7aa200982e0a6f5ab1ca /src/ts | |
| parent | 0d59a6d2995b4119865271ed1908ede0bb96497c (diff) | |
chore: add Project single pages
Diffstat (limited to 'src/ts')
| -rw-r--r-- | src/ts/types/app.ts | 17 | ||||
| -rw-r--r-- | src/ts/types/swr.ts | 5 |
2 files changed, 14 insertions, 8 deletions
diff --git a/src/ts/types/app.ts b/src/ts/types/app.ts index 87ab042..f354118 100644 --- a/src/ts/types/app.ts +++ b/src/ts/types/app.ts @@ -29,7 +29,7 @@ export type Comment = { export type Dates = { publication: string; - update: string; + update?: string; }; export type Image = { @@ -58,23 +58,23 @@ export type Meta<T extends PageKind> = { commentsCount?: T extends 'article' ? number : never; cover?: Image; dates: Dates; - license?: T extends 'projects' ? string : never; - readingTime: number; - repos?: T extends 'projects' ? Repos : never; + license?: T extends 'project' ? string : never; + readingTime?: number; + repos?: T extends 'project' ? Repos : never; seo: SEO; - tagline?: T extends 'projects' ? string : never; - technologies?: T extends 'projects' ? string[] : never; + tagline?: T extends 'project' ? string : never; + technologies?: T extends 'project' ? string[] : never; thematics?: T extends 'article' | 'topic' ? PageLink[] : never; topics?: T extends 'article' | 'thematic' ? PageLink[] : never; website?: T extends 'topic' ? string : never; - wordsCount: number; + wordsCount?: number; }; export type Page<T extends PageKind> = { content: string; id: number | string; intro: string; - meta?: Meta<T>; + meta: Meta<T>; slug: string; title: string; }; @@ -89,6 +89,7 @@ export type Article = Page<'article'>; export type ArticleCard = Pick<Article, 'id' | 'slug' | 'title'> & Pick<Meta<'article'>, 'cover' | 'dates'>; export type Project = Page<'project'>; +export type ProjectPreview = Omit<Page<'project'>, 'content'>; export type ProjectCard = Pick<Page<'project'>, 'id' | 'slug' | 'title'> & { meta: Pick<Meta<'project'>, 'cover' | 'dates' | 'tagline' | 'technologies'>; }; diff --git a/src/ts/types/swr.ts b/src/ts/types/swr.ts new file mode 100644 index 0000000..4da6b2c --- /dev/null +++ b/src/ts/types/swr.ts @@ -0,0 +1,5 @@ +export type SWRResult<T> = { + data?: T; + isLoading: boolean; + isError: boolean; +}; |
