-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtypes.ts
61 lines (49 loc) · 1.56 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
import { NavigatorScreenParams } from '@react-navigation/native';
// NAVIGATION
export type RootStackParamList = {
Root: undefined;
NotFound: undefined;
};
export type BottomTabsParamList = {
Email: NavigatorScreenParams<EmailStackParamList>;
Scan: NavigatorScreenParams<ScanStackParamList>;
};
export type EmailStackParamList = {
EmailHistory: undefined;
};
export type ScanStackParamList = {
SendEmail: { selectedScanIds?: number[] };
Scan: undefined;
ScanHistory: { selectedScanIds?: number[]; selectMode?: boolean };
};
// REDUX
export type Action =
| { type: 'RESET_STORE' }
| { type: 'SET_ERROR'; error: string }
| { type: 'SET_LOADING'; loading: boolean }
| { type: 'ADD_SCAN'; scan: ScanRecord }
| { type: 'SET_EMAIL_ACTIVITY_LOADING'; loading: boolean }
| { type: 'UPDATE_EMAIL_ACTIVITY'; emails: EmailActivityRecord[] }
| { type: 'REMOVE_SCANS'; scanIds: number[] };
export interface AppState {
emails: EmailActivityRecord[];
emailActivityLoading: boolean;
error: string;
loading: boolean;
scans: ScansHistory;
}
export type GetState = () => AppState;
// APPLICATION DATA
export type EmailActivityRecord = {
from_email: string;
msg_id: string;
subject: string;
to_email: string;
status: string;
opens_count: number;
clicks_count: number;
last_event_time: string;
};
export type EmailActivityResponse = { messages: EmailActivityRecord[] };
export type ScanRecord = { data: string; id: number; isLink: boolean; type: string };
type ScansHistory = ScanRecord[];