blocks/case-studies/case-studies.ts (44 lines of code) (raw):
export type CaseType = 'multiplatform' | 'server-side';
export type CaseTypeSwitch = 'all' | CaseType;
export const Platforms = [
'android',
'ios',
'desktop',
'frontend',
'backend',
] as const;
export const PlatformNames: Record<typeof Platforms[number], string> = {
"android": "Android",
"ios": "iOS",
"desktop": "Desktop",
"frontend": "Frontend",
"backend": "Backend",
}
export type CasePlatform = typeof Platforms[number] | 'compose-multiplatform';
type Signature = {
name: string;
position: string;
}
type YoutubeMedia = {
type: 'youtube';
videoId: string;
};
type ImageMedia = {
type: 'image';
path: string;
};
type Media = YoutubeMedia | ImageMedia;
export interface CaseItem {
id: string;
type: CaseType;
description: string;
isExternal?: boolean;
link?: string;
linkText?: string;
linkStyle?: 'button' | 'text';
logo?: string[];
signature?: Signature;
platforms?: CasePlatform[];
media?: Media;
featuredOnMainPage?: boolean;
}