Skip to content

Commit 03f8b42

Browse files
committed
fix(lib): safe access address components
1 parent 6d43bd5 commit 03f8b42

File tree

1 file changed

+31
-29
lines changed

1 file changed

+31
-29
lines changed

projects/angular-material-extensions/google-maps-autocomplete/src/lib/component/mat-google-maps-autocomplete.component.ts

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -150,35 +150,37 @@ export class MatGoogleMapsAutocompleteComponent implements OnInit, ControlValueA
150150
germanAddress.geoLocation.longitude = place.geometry.location.lng();
151151
}
152152

153-
place.address_components.forEach(value => {
154-
if (value.types.indexOf('street_number') > -1) {
155-
germanAddress.streetNumber = value.short_name;
156-
}
157-
if (value.types.indexOf('route') > -1) {
158-
germanAddress.streetName = value.long_name;
159-
}
160-
if (value.types.indexOf('postal_code') > -1) {
161-
germanAddress.postalCode = Number(value.short_name);
162-
}
163-
if (value.types.indexOf('sublocality') > -1) {
164-
germanAddress.sublocality = value.long_name;
165-
}
166-
if (value.types.indexOf('locality') > -1) {
167-
germanAddress.locality.long = value.long_name;
168-
germanAddress.locality.short = value.short_name;
169-
}
170-
if (value.types.indexOf('administrative_area_level_1') > -1) {
171-
germanAddress.state.long = value.long_name;
172-
germanAddress.state.short = value.short_name;
173-
}
174-
if (value.types.indexOf('country') > -1) {
175-
germanAddress.country.long = value.long_name;
176-
germanAddress.country.short = value.short_name;
177-
}
178-
if (value.types.indexOf('administrative_area_level_3') > -1) {
179-
germanAddress.locality.short = value.short_name;
180-
}
181-
});
153+
if(place.address_components) {
154+
place.address_components.forEach(value => {
155+
if (value.types.indexOf('street_number') > -1) {
156+
germanAddress.streetNumber = value.short_name;
157+
}
158+
if (value.types.indexOf('route') > -1) {
159+
germanAddress.streetName = value.long_name;
160+
}
161+
if (value.types.indexOf('postal_code') > -1) {
162+
germanAddress.postalCode = Number(value.short_name);
163+
}
164+
if (value.types.indexOf('sublocality') > -1) {
165+
germanAddress.sublocality = value.long_name;
166+
}
167+
if (value.types.indexOf('locality') > -1) {
168+
germanAddress.locality.long = value.long_name;
169+
germanAddress.locality.short = value.short_name;
170+
}
171+
if (value.types.indexOf('administrative_area_level_1') > -1) {
172+
germanAddress.state.long = value.long_name;
173+
germanAddress.state.short = value.short_name;
174+
}
175+
if (value.types.indexOf('country') > -1) {
176+
germanAddress.country.long = value.long_name;
177+
germanAddress.country.short = value.short_name;
178+
}
179+
if (value.types.indexOf('administrative_area_level_3') > -1) {
180+
germanAddress.locality.short = value.short_name;
181+
}
182+
});
183+
}
182184

183185
this.onGermanAddressMapped.emit(germanAddress);
184186

0 commit comments

Comments
 (0)