summaryrefslogtreecommitdiffstats
path: root/src/ts
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-05-10 17:38:07 +0200
committerArmand Philippot <git@armandphilippot.com>2022-05-13 15:46:01 +0200
commit9c8921db92d16b07ffc2a63ff3c80c4dcdd9ff9d (patch)
tree52e87fa8e758ec51cfbf7aa200982e0a6f5ab1ca /src/ts
parent0d59a6d2995b4119865271ed1908ede0bb96497c (diff)
chore: add Project single pages
Diffstat (limited to 'src/ts')
-rw-r--r--src/ts/types/app.ts17
-rw-r--r--src/ts/types/swr.ts5
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;
+};