-
Notifications
You must be signed in to change notification settings - Fork 3
/
global.d.ts
132 lines (109 loc) · 2.73 KB
/
global.d.ts
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
import type { ReactElement, ReactNode } from 'react';
import type { AppProps } from 'blitz';
import { DefaultCtx, SessionContext, SimpleRolesIsAuthorized } from 'blitz';
import { User, Event, EventSubscription } from 'db';
export type BDEAppProps = AppProps & {
Component: NextPage & {
getLayout?: (page: ReactElement) => ReactNode;
};
};
export interface Item {
name: string;
description: string | null;
price: number;
}
export type Option = Item;
export interface GroupOption {
name: string;
type: 'combinable' | 'exclusive';
options: Option[];
}
export interface Product extends Item {
groupOptions: GroupOption[];
}
export interface EventWithTypedProducts extends Omit<Event, 'products'> {
products: Product[];
}
export interface CartItem extends Item {
quantity: number;
comment: string | null;
options: Option[];
}
export interface EventSubscriptionWithTypedCart extends Omit<EventSubscription, 'cart'> {
cart: CartItem[];
}
declare module '@blitzjs/auth' {
export interface Ctx extends DefaultCtx {
session: SessionContext;
}
export interface Session {
isAuthorized: SimpleRolesIsAuthorized;
PublicData: {
userId: User['id'];
firstname: string;
lastname: string;
nickname: string | null;
image: string | null;
email: string;
card: number;
roles: string[];
};
}
}
declare global {
var appName: string;
var website: string;
var version: string;
var description: string;
interface Window {
gtag: any;
}
}
declare module '*.module.scss' {
const content: { [className: string]: string };
export default content;
}
declare module '*.module.css' {
const content: { [className: string]: string };
export default content;
}
declare module '@mui/styles/defaultTheme' {
interface DefaultTheme extends Theme {}
}
declare module '@mui/material/styles' {
interface TypographyVariants {
success: React.CSSProperties;
warning: React.CSSProperties;
error: React.CSSProperties;
}
// allow configuration using `createTheme`
interface TypographyVariantsOptions {
success?: React.CSSProperties;
warning?: React.CSSProperties;
error?: React.CSSProperties;
}
interface Palette {
neutral: Palette['primary'];
}
interface PaletteOptions {
neutral: PaletteOptions['primary'];
}
}
declare module '@mui/material/Button' {
interface ButtonPropsColorOverrides {
neutral: true;
}
}
declare module '@mui/material/CircularProgress' {
interface CircularProgressPropsColorOverrides {
neutral: true;
}
}
// Update the Typography's variant prop options
declare module '@mui/material/Typography' {
interface TypographyPropsVariantOverrides {
success: true;
warning: true;
error: true;
}
}