-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtypes.ts
More file actions
115 lines (97 loc) · 2.16 KB
/
Copy pathtypes.ts
File metadata and controls
115 lines (97 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import { StaticImageData } from 'next/image';
import { ComponentType } from 'react';
type LogoComponent = ComponentType<React.SVGProps<SVGSVGElement>>;
interface ImageMetadata {
alt: string;
color: string | null;
}
export interface RemoteImageWithMetadata extends ImageMetadata {
src: string;
}
export interface StaticImageWithMetadata extends ImageMetadata {
src: StaticImageData;
}
export type ImageWithMetadata = RemoteImageWithMetadata | StaticImageWithMetadata;
export type ProjectId = 'radix' | 'aragon' | 'blocks' | 'dash' | 'scroll' | 'artifacts';
export type PersonId =
| 'vlad'
| 'benoit'
| 'brett'
| 'andrew'
| 'ze'
| 'michael'
| 'ben'
| 'jenna'
| 'pedro'
| 'adri'
| 'paty'
| 'pierre'
| 'alastair'
| 'itamar'
| 'ben-g'
| 'elik'
| 'henry'
| 'jo';
export type TestimonialId = PersonId;
export type SocialName = 'dribbble' | 'github' | 'instagram' | 'twitter' | 'linkedin';
export interface Experience {
year: string;
logoAsset: LogoComponent;
title: string;
company: string;
tenure: string;
description: string;
link: string;
}
export interface Person {
id: PersonId;
name: string;
avatar: ImageWithMetadata;
bio: string;
}
export interface Testimonial extends Person {
id: TestimonialId;
role: string;
company: string;
full: string;
excerpt: string;
}
export interface TeamMember extends Person {
role: string;
}
export interface Project {
id: ProjectId;
type: 'professional' | 'personal';
title: string;
subtitle: string;
role: string;
tenure: string;
technologies?: string[];
intro?: string;
thumbnail: StaticImageWithMetadata;
thumbnailSmall: StaticImageWithMetadata;
heroImage?: StaticImageWithMetadata;
testimonial: Testimonial;
team?: TeamMember[];
additionalTeam?: number;
externalUrl?: string;
}
export interface SocialLink {
name: string;
icon: ComponentType<React.SVGProps<SVGSVGElement>>;
url: string;
}
export interface Artifact {
name: string;
year: string;
src: StaticImageWithMetadata;
slug: string;
}
export type PostMetadata = {
title: string;
date: Date;
description: string;
};
export type Post = PostMetadata & {
slug: string;
};