forked from MapComplete/MapComplete
		
	Fix review form save button
This commit is contained in:
		
							parent
							
								
									b9b504aebc
								
							
						
					
					
						commit
						aa1c9d0398
					
				
					 2 changed files with 27 additions and 16 deletions
				
			
		|  | @ -28,7 +28,7 @@ export class SaveButton extends Toggle { | ||||||
|         super( |         super( | ||||||
|             save,  |             save,  | ||||||
|             pleaseLogin, |             pleaseLogin, | ||||||
|             osmConnection?.userDetails?.map(userDetails => userDetails.loggedIn) ?? new UIEventSource<any>(false) |             osmConnection?.isLoggedIn ?? new UIEventSource<any>(false) | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -14,6 +14,7 @@ import Toggle from "../Input/Toggle"; | ||||||
| 
 | 
 | ||||||
| export default class ReviewForm extends InputElement<Review> { | export default class ReviewForm extends InputElement<Review> { | ||||||
| 
 | 
 | ||||||
|  |     IsSelected: UIEventSource<boolean> = new UIEventSource<boolean>(false); | ||||||
|     private readonly _value: UIEventSource<Review>; |     private readonly _value: UIEventSource<Review>; | ||||||
|     private readonly _comment: BaseUIElement; |     private readonly _comment: BaseUIElement; | ||||||
|     private readonly _stars: BaseUIElement; |     private readonly _stars: BaseUIElement; | ||||||
|  | @ -22,7 +23,6 @@ export default class ReviewForm extends InputElement<Review> { | ||||||
|     private readonly _postingAs: BaseUIElement; |     private readonly _postingAs: BaseUIElement; | ||||||
|     private readonly _osmConnection: OsmConnection; |     private readonly _osmConnection: OsmConnection; | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     constructor(onSave: ((r: Review, doneSaving: (() => void)) => void), osmConnection: OsmConnection) { |     constructor(onSave: ((r: Review, doneSaving: (() => void)) => void), osmConnection: OsmConnection) { | ||||||
|         super(); |         super(); | ||||||
|         this._osmConnection = osmConnection; |         this._osmConnection = osmConnection; | ||||||
|  | @ -51,14 +51,27 @@ export default class ReviewForm extends InputElement<Review> { | ||||||
|                 new VariableUiElement(osmConnection.userDetails.map((ud: UserDetails) => ud.name)) |                 new VariableUiElement(osmConnection.userDetails.map((ud: UserDetails) => ud.name)) | ||||||
|                     .SetClass("review-author")]) |                     .SetClass("review-author")]) | ||||||
|                 .SetStyle("display:flex;flex-direction: column;align-items: flex-end;margin-left: auto;") |                 .SetStyle("display:flex;flex-direction: column;align-items: flex-end;margin-left: auto;") | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         const reviewIsSaved = new UIEventSource<boolean>(false) | ||||||
|  |         const reviewIsSaving = new UIEventSource<boolean>(false) | ||||||
|         this._saveButton = |         this._saveButton = | ||||||
|             new SaveButton(this._value.map(r => self.IsValid(r)), undefined) |             new Toggle(Translations.t.reviews.saved.Clone().SetClass("thanks"), | ||||||
|                 .onClick(() => { |                 new Toggle( | ||||||
|                     self._saveButton = Translations.t.reviews.saving_review.Clone(); |                     Translations.t.reviews.saving_review.Clone(), | ||||||
|  |                     new SaveButton( | ||||||
|  |                         this._value.map(r => self.IsValid(r)), osmConnection | ||||||
|  |                     ).onClick(() => { | ||||||
|  |                         reviewIsSaving.setData(true), | ||||||
|                             onSave(this._value.data, () => { |                             onSave(this._value.data, () => { | ||||||
|                         self._saveButton = Translations.t.reviews.saved.Clone().SetClass("thanks"); |                                 reviewIsSaved.setData(true) | ||||||
|                             }); |                             }); | ||||||
|                 }).SetClass("break-normal") |                     }), | ||||||
|  |                     reviewIsSaving | ||||||
|  |                 ), | ||||||
|  |                 reviewIsSaved | ||||||
|  |             ).SetClass("break-normal") | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|         this._isAffiliated = new CheckBoxes([Translations.t.reviews.i_am_affiliated.Clone()]) |         this._isAffiliated = new CheckBoxes([Translations.t.reviews.i_am_affiliated.Clone()]) | ||||||
| 
 | 
 | ||||||
|  | @ -113,8 +126,6 @@ export default class ReviewForm extends InputElement<Review> { | ||||||
|             .ConstructElement() |             .ConstructElement() | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     IsSelected: UIEventSource<boolean> = new UIEventSource<boolean>(false); |  | ||||||
| 
 |  | ||||||
|     IsValid(r: Review): boolean { |     IsValid(r: Review): boolean { | ||||||
|         if (r === undefined) { |         if (r === undefined) { | ||||||
|             return false; |             return false; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue