-
Notifications
You must be signed in to change notification settings - Fork 272
/
Copy pathtypes.ts
113 lines (94 loc) · 2.11 KB
/
types.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
import type { OcticonProps } from '@primer/octicons-react';
import type { FC } from 'react';
import type { Notification } from './typesGitHub';
export interface AuthState {
token?: string;
enterpriseAccounts: EnterpriseAccount[];
user: GitifyUser | null;
}
export type Status = 'loading' | 'success' | 'error';
export type SettingsState = AppearanceSettingsState &
NotificationSettingsState &
SystemSettingsState;
interface AppearanceSettingsState {
theme: Theme;
detailedNotifications: boolean;
showAccountHostname: boolean;
}
interface NotificationSettingsState {
participating: boolean;
showNotifications: boolean;
showBots: boolean;
markAsDoneOnOpen: boolean;
}
interface SystemSettingsState {
playSound: boolean;
openAtStartup: boolean;
showNotificationsCountInTray: boolean;
}
export enum Theme {
SYSTEM = 'SYSTEM',
LIGHT = 'LIGHT',
DARK = 'DARK',
}
export type RadioGroupItem = {
label: string;
value: string;
};
export interface EnterpriseAccount {
hostname: string;
token: string;
}
export interface AccountNotifications {
hostname: string;
notifications: Notification[];
}
export interface AuthOptions {
hostname: string;
clientId: string;
clientSecret: string;
}
export interface AuthTokenOptions {
hostname: string;
token: string;
}
export interface AuthResponse {
authCode: string;
authOptions: AuthOptions;
}
export interface AuthTokenResponse {
hostname: string;
token: string;
}
export interface GitifyUser {
login: string;
name: string;
id: number;
}
export interface GitifyError {
title: string;
descriptions: string[];
emojis: string[];
}
export type ErrorType =
| 'BAD_CREDENTIALS'
| 'MISSING_SCOPES'
| 'NETWORK'
| 'RATE_LIMITED'
| 'UNKNOWN';
export interface FormattedReason {
title: string;
description: string;
}
export enum IconColor {
GRAY = 'text-gray-500 dark:text-gray-300',
GREEN = 'text-green-500',
PURPLE = 'text-purple-500',
RED = 'text-red-500',
YELLOW = 'text-yellow-500 dark:text-yellow-300',
}
export type PullRequestApprovalIcon = {
type: FC<OcticonProps>;
color: IconColor;
description: string;
};