1
+ import { FormService , createFormGroup } from '@devmx/shared-ui-global/forms' ;
1
2
import { ImageComponent , PhotoComponent } from '@devmx/shared-ui-global' ;
2
3
import { MatDialog , MatDialogModule } from '@angular/material/dialog' ;
3
- import { AutoAssignable , UpdateAccountWithCity } from '../../forms' ;
4
4
import { MatExpansionModule } from '@angular/material/expansion' ;
5
5
import { takeUntilDestroyed } from '@angular/core/rxjs-interop' ;
6
6
import { MatButtonModule } from '@angular/material/button' ;
7
7
import { AccountOut } from '@devmx/shared-api-interfaces' ;
8
8
import { CityFacade } from '@devmx/location-data-access' ;
9
9
import { MatIconModule } from '@angular/material/icon' ;
10
10
import { MatCardModule } from '@angular/material/card' ;
11
+ import { ReactiveFormsModule } from '@angular/forms' ;
11
12
import { CommonModule } from '@angular/common' ;
12
13
import { switchMap , take } from 'rxjs' ;
14
+ import {
15
+ AutoAssignable ,
16
+ changePassword ,
17
+ updateAccount ,
18
+ UpdateAccountForm ,
19
+ UpdateAccountWithCity ,
20
+ } from '../../forms' ;
13
21
import {
14
22
AutocompleteCitiesComponent ,
15
23
AutocompleteCitiesService ,
@@ -41,6 +49,7 @@ import {
41
49
styleUrl : './settings.container.scss' ,
42
50
changeDetection : ChangeDetectionStrategy . OnPush ,
43
51
imports : [
52
+ ReactiveFormsModule ,
44
53
CommonModule ,
45
54
MatCardModule ,
46
55
MatIconModule ,
@@ -68,8 +77,14 @@ export class SettingsContainer implements OnInit {
68
77
69
78
destroyRef = inject ( DestroyRef ) ;
70
79
80
+ formService = inject ( FormService ) ;
81
+
71
82
dialog = inject ( MatDialog ) ;
72
83
84
+ form = {
85
+ updateAccount : new UpdateAccountForm ( ) ,
86
+ } ;
87
+
73
88
editableAccountChild = viewChild ( EditableAccountComponent ) ;
74
89
get editableAccount ( ) {
75
90
return this . editableAccountChild ( ) ;
@@ -123,7 +138,7 @@ export class SettingsContainer implements OnInit {
123
138
124
139
populate ( account : AccountOut ) {
125
140
if ( this . editableAccount ) {
126
- this . editableAccount . form . patchValue ( account ) ;
141
+ this . form . updateAccount . patchValue ( account ) ;
127
142
}
128
143
if ( this . editablePassword ) {
129
144
this . editablePassword . form . patchValue ( account ) ;
@@ -139,6 +154,39 @@ export class SettingsContainer implements OnInit {
139
154
} ) ;
140
155
}
141
156
157
+ openPassword ( account : AccountOut ) {
158
+ const title = 'Alterar senha' ;
159
+
160
+ const fields = changePassword ( account ) ;
161
+ const form = createFormGroup < ChangePassword > ( fields ) ;
162
+
163
+ const password$ = this . formService
164
+ . open < ChangePassword > ( { title, form, fields } )
165
+ . afterClosed ( ) ;
166
+ password$ . pipe ( take ( 1 ) ) . subscribe ( ( result ) => {
167
+ console . log ( result ) ;
168
+ } ) ;
169
+ }
170
+
171
+ openUpdateAccount ( account : AccountOut ) {
172
+ const title = 'Alterar dados da conta' ;
173
+
174
+ const fields = updateAccount ( account ) ;
175
+ console . log ( fields ) ;
176
+
177
+ const form = createFormGroup ( fields ) ;
178
+ console . log ( form ) ;
179
+
180
+
181
+ const account$ = this . formService
182
+ . open ( { title, fields, form } )
183
+ . afterClosed ( ) ;
184
+
185
+ // account$.pipe(take(1)).subscribe((result) => {
186
+ // console.log(result);
187
+ // });
188
+ }
189
+
142
190
onAccountSubmitted ( data : UpdateAccount | UpdateAccountWithCity ) {
143
191
if ( data . city && typeof data . city === 'object' ) {
144
192
data . city = data . city . id ;
@@ -147,7 +195,7 @@ export class SettingsContainer implements OnInit {
147
195
}
148
196
149
197
onPasswordSubmitted ( data : ChangePassword ) {
150
- this . accountFacade . changePassword ( data ) ;
198
+ // this.accountFacade.changePassword(data);
151
199
}
152
200
153
201
onRolesSubmitted ( data : AutoAssignable ) {
0 commit comments