-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
types.ts
82 lines (70 loc) · 2.36 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
/**
* Copyright 2023 Gravitational, Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Attempt } from 'shared/hooks/useAttemptNext';
import { Auth2faType, PrimaryAuthType } from 'shared/services';
import { NewFlow, StepComponentProps } from 'design/StepSlider';
import { ReactElement } from 'react';
import { RecoveryCodes, ResetToken } from 'teleport/services/auth';
export type UseTokenState = {
auth2faType: Auth2faType;
primaryAuthType: PrimaryAuthType;
isPasswordlessEnabled: boolean;
fetchAttempt: Attempt;
submitAttempt: Attempt;
clearSubmitAttempt: () => void;
onSubmit: (password: string, otpCode?: string, deviceName?: string) => void;
onSubmitWithWebauthn: (password?: string, deviceName?: string) => void;
resetToken: ResetToken;
recoveryCodes: RecoveryCodes;
redirect: () => void;
success: boolean;
finishedRegister: () => void;
privateKeyPolicyEnabled: boolean;
};
// Note: QuestionnaireProps is duplicated in Enterprise (e-teleport/Welcome/Questionnaire/Questionnaire)
export type QuestionnaireProps = {
full: boolean;
onboard: boolean;
username?: string;
onSubmit?: () => void;
};
export type NewCredentialsProps = UseTokenState & {
resetMode?: boolean;
isDashboard: boolean;
// support E questionnaire
displayOnboardingQuestionnaire?: boolean;
setDisplayOnboardingQuestionnaire?: (bool: boolean) => void;
Questionnaire?: ({
full,
onboard,
username,
onSubmit,
}: QuestionnaireProps) => ReactElement;
};
export type RegisterSuccessProps = {
redirect(): void;
resetMode: boolean;
username?: string;
isDashboard: boolean;
};
export type LoginFlow = Extract<PrimaryAuthType, 'passwordless' | 'local'>;
export type SliderProps = StepComponentProps & {
changeFlow(f: NewFlow<LoginFlow>): void;
};
export type NewCredentialsContainerProps = {
tokenId?: string;
resetMode?: boolean;
};