@@ -6,11 +6,14 @@ import { displaySuccess } from "../../components/Snackbar"
6
6
export const Language = {
7
7
successProfileUpdate : "Updated preferences." ,
8
8
}
9
+
9
10
export interface AuthContext {
10
11
getUserError ?: Error | unknown
12
+ getMethodsError ?: Error | unknown
11
13
authError ?: Error | unknown
12
14
updateProfileError ?: Error | unknown
13
15
me ?: Types . UserResponse
16
+ methods ?: Types . AuthMethods
14
17
}
15
18
16
19
export type AuthEvent =
@@ -19,10 +22,17 @@ export type AuthEvent =
19
22
| { type : "UPDATE_PROFILE" ; data : Types . UpdateProfileRequest }
20
23
21
24
export const authMachine =
22
- /** @xstate -layout N4IgpgJg5mDOIC5QEMCuAXAFgZXc9YAdLAJZQB2kA8hgMTYCSA4gHID6DLioADgPal0JPuW4gAHogCMABgCcAFkLyZAVilS5GgEwAOAMwA2ADQgAnogDsa5YcOXD2y7oWH92-QF9PptFlz4RKQUJORQDOS0ECJEoQBufADWQWTkEWL8gsKiSBKI7kraqpZSuh7aUvpy6vqmFghlcoT6qgb6GsUlctrevhg4eATEqaHhkWAAThN8E4Q8ADb4AGYzALbDFOm5mSRCImKSCLKKynJqGlpSekZ1iIaltvaOzq4FvSB+A4GEMOhCYQBVWCTKIxQjxJJEX4AWTAGQEu2yB0QrikhG0Mn0+l0ulUWJkhlatXMKKqynkCn0lOscnsUnenwCQ1+-ygQJBk2mswWyzWPzA6Fh8Ky+1yh202iacip2I8hjU9m0twQ1lUzSk9hkHlUCjU2kMDP6TJSFEgETm0yWJHmsQgNtoAIACgARACCABUAKJsR0AJSoADEGAAZT3CxGi0CHGTKmSG-yDE2UCDmniW61EVA8CD4UaO9P26KUcHkBLJQiMxMbZOpguZ7O5sL5vhWm0ICEAY1zIgA2jIALrhvY5KPSKSWNWKWQeaUKSXj5UY3SEUrdKqExy08fxr5DYI18gWlsZwhZnOs5utsC0TkzOaLdArCbrSvffdmw9p48208Ni919tSz4Lthz7QdtgRYdkQaLRCF0SxtAUcdpQnRxdGVXV9EIKdFBkGRdDkSxFGKHdjWrD96GYdgqABd0hyRMVpCxdFaSxVQZEsIxx0sSxlUI9Eql1DUJQnRQ5FIqt91GGh0FBYsIXLfcZPoyM8gQdwsIQuRdEMSlSm1DxlR1Zc1AIhDdJwrwfA+I1JJGMIZJvKY7x5R8+SUjAVJHNSijVdwCIUdQriJfReJJBAihkZpLAUJDikigwJW8azyD4CA4DEV891SahPIgkVvMOdRDEINxqTUbFCW05UJywhQDFUNd2gxQxxOsrKk1GLZeEghjRyOfUoqkPEOOlQj2mVVrtDgjUEPYkpcT0CTvhZUZ2QmLzoLnZVdA1OCiS0TjcU0VRluy00U0-OtwTtIhUs9ZyNvyiNCrHHi4InPCFE4wktQwvbQtiloWu0jFLDOpMPyPK8bp-W8np6groI0d74PYmRvqMdilXC1wSvYxRYsIwbrHB9rbLfHLLuhk8SFuzbGKOYasLRr6fux5UZWi2KCclXarL6BNKYu2tv3rc88zrBn+pxTTGsqULp2xKRlRO0qCJnDdJXuMnBd3SHqa-K9pbUgBaRDlVNzjyTwjpOM+1QDXJoXzoPE3DlN+rLakVwba1dpvvYjQIeraS8sRl7oPcQgicQicihxGQfaM9jlFaWdSgJDR6Wd-X3cQZdY8DhPdCThRLY8dUOPsBwDE4wjdGSzwgA */
25
+ /** @xstate -layout N4IgpgJg5mDOIC5QEMCuAXAFgZXc9YAdLAJZQB2kA8hgMTYCSA4gHID6DLioADgPal0JPuW4gAHogDsABgCshOQA4AzABY5ARgBMUgJxrtcgDQgAnok0zNSwkpkrNKvQDY3aqS6kBfb6bRYuPhEpBQk5FAM5LQQIkThAG58ANYhZORRYvyCwqJIEohyMlKE2mrFKo7aLq5SJuaILtq2mjZqrboy2s4+fiABOHgExOnhkdFgAE6TfJOEPAA2+ABmswC2IxSZ+dkkQiJikgiyCsrqWroGRqYWCHoq2oQyDpouXa1qGmq+-hiDwYQYOghBEAKqwKYxOKERIpIhAgCyYCyAj2uUOiF0mieTik3UqMhqSleN0QhgUOhUbzUKhk9jKch+-T+QWGQJBUHBkKmMzmixW60BYHQSJROQO+SOUmxVKUniUcjkUgVLjlpOOCqecj0LyKmmVeiUTIGrPhwo5SKwfAgsChlBh5CSqSFIuFmGt8B2qP2eVARxUeNKCo02k0cllTRc6qUalsCtU731DikvV+gSGZuBY0t7pttB5s3mS3Qq0mG0Rbo9YrREr9iHUMkIUnKHSklQVKnqtz0BkImjUbmeShcVmejL6Jozm0oECi8xmyxIC3iEGXtFBAAUACIAQQAKgBRNgbgBKVAAYgwADIH6s+jEIOV6Qgj1oxnTBkfq7qNlxyT4aC4saaPcVLGiyU6hDOc48AuS5EKgPAQPgYwbnBa6xPasLOpOAJQZAMHoQhSEoREaF8Iuy4ILCADGKEiAA2jIAC6d7opKiBPi+rRtB+-5fg0CDqM+YafG8+jWLI2jgemeHpAR5DzhR8GEIhyEcuRlFgPm0yFvyJaCrhwz4bOimwcpy6qSRGlEdRjp8HRPpMaxXrir6BSPvo3Fvu0zT8Zo6oDmoTb-p8cjaFcsjqDJ-zGfJpn0Mw7BUKCe5sbWHm6CU2jWKGnhaFSeLqv2jZKMOehOE49i0v+MWmtOYw0OgdrxPZzpQU16XuUcAC0-aPGGSgVQOTS4ko2jfjGhC0gB1WeDIBguHVkGjBETU6byRYCmW06da5NbdZiKalLl+p-k4XgTYJNhxuVNKGCB77fEy5DWnAYhGWkFDUBgXUPoqLiKOoxIqGVejNKoxXPCUMgjZ8zj6sORoThBclhBE2y8N67F1o+xIvhoejavqEX-gFgl6IGFWOC2bzWNqy0AuyYxcpMf0cQghjqn+JT6GJeJynIqrI2msWZhalY2uzuN9dojwpn+epDvqHjRkUL7KBDEljiLzKyXF32mUpWkwquRCvQeuls-t94c606s8c0A5C00UjqqDja5cUXQRXiDiMwb0FmURpuWQW1tY25D7242jsxn+bi6IFhh2K4qjKP+fsqAHX1B8bKkkGb0seR0gNx87idu4JtIwzoxTdELzbheOov1SZhEWcR6moURxdHCOgPhsBoNDRDKju84hCfHS4ZAXPqg59OCn58ufeFODQPD2DY-FUqGsASmdShgvKP67nClrwgQu2EPIPb2V4+CVNf7w5TOphs22en2LDVrb9Ns4w8j1coU8iafDKJVWQagDDqmOsOKBVhXDgweNJb+ppL59TcH2ZQw1E5jSurcYK8CHCODfE0B4vRfBAA */
23
26
createMachine (
24
27
{
25
- context : { me : undefined , getUserError : undefined , authError : undefined , updateProfileError : undefined } ,
28
+ context : {
29
+ me : undefined ,
30
+ getUserError : undefined ,
31
+ authError : undefined ,
32
+ updateProfileError : undefined ,
33
+ methods : undefined ,
34
+ getMethodsError : undefined ,
35
+ } ,
26
36
tsTypes : { } as import ( "./authXService.typegen" ) . Typegen0 ,
27
37
schema : {
28
38
context : { } as AuthContext ,
@@ -31,6 +41,9 @@ export const authMachine =
31
41
getMe : {
32
42
data : Types . UserResponse
33
43
}
44
+ getMethods : {
45
+ data : Types . AuthMethods
46
+ }
34
47
signIn : {
35
48
data : Types . LoginResponse
36
49
}
@@ -81,6 +94,25 @@ export const authMachine =
81
94
onError : [
82
95
{
83
96
actions : "assignGetUserError" ,
97
+ target : "gettingMethods" ,
98
+ } ,
99
+ ] ,
100
+ } ,
101
+ tags : "loading" ,
102
+ } ,
103
+ gettingMethods : {
104
+ invoke : {
105
+ src : "getMethods" ,
106
+ id : "getMethods" ,
107
+ onDone : [
108
+ {
109
+ actions : [ "assignMethods" , "clearGetMethodsError" ] ,
110
+ target : "signedOut" ,
111
+ } ,
112
+ ] ,
113
+ onError : [
114
+ {
115
+ actions : "assignGetMethodsError" ,
84
116
target : "signedOut" ,
85
117
} ,
86
118
] ,
@@ -139,7 +171,7 @@ export const authMachine =
139
171
onDone : [
140
172
{
141
173
actions : [ "unassignMe" , "clearAuthError" ] ,
142
- target : "signedOut " ,
174
+ target : "gettingMethods " ,
143
175
} ,
144
176
] ,
145
177
onError : [
@@ -160,6 +192,7 @@ export const authMachine =
160
192
} ,
161
193
signOut : API . logout ,
162
194
getMe : API . getUser ,
195
+ getMethods : API . getAuthMethods ,
163
196
updateProfile : async ( context , event ) => {
164
197
if ( ! context . me ) {
165
198
throw new Error ( "No current user found" )
@@ -176,6 +209,16 @@ export const authMachine =
176
209
...context ,
177
210
me : undefined ,
178
211
} ) ) ,
212
+ assignMethods : assign ( {
213
+ methods : ( _ , event ) => event . data ,
214
+ } ) ,
215
+ assignGetMethodsError : assign ( {
216
+ getMethodsError : ( _ , event ) => event . data ,
217
+ } ) ,
218
+ clearGetMethodsError : assign ( ( context : AuthContext ) => ( {
219
+ ...context ,
220
+ getMethodsError : undefined ,
221
+ } ) ) ,
179
222
assignGetUserError : assign ( {
180
223
getUserError : ( _ , event ) => event . data ,
181
224
} ) ,
0 commit comments