Skip to content

Commit

Permalink
feat: Add Livewire component for address autofill
Browse files Browse the repository at this point in the history
  • Loading branch information
sweep-ai[bot] committed Mar 11, 2024
1 parent 2d13492 commit 39c5fc8
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions resources/views/checkout/address_autofill.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<div>
<input type="text" id="address-input" wire:model="address" placeholder="Enter your address" autocomplete="off">
<div id="address-suggestions" style="display: none;">
<ul>
<template x-for="address in addresses" :key="address">
<li @click="selectAddress(address)"><x-text x-text="address"></li>
</template>
</ul>
</div>
</div>

<script>
document.addEventListener('livewire:load', function () {
const input = document.getElementById('address-input');
let autocomplete;

function initAutocomplete() {
autocomplete = new google.maps.places.Autocomplete(input, {types: ['geocode']});
autocomplete.addListener('place_changed', fillInAddress);
}

function fillInAddress() {
const place = autocomplete.getPlace();
Livewire.emit('setAddress', place.formatted_address);
}

initAutocomplete();

Livewire.on('setAddress', address => {
input.value = address;
document.getElementById('address-suggestions').style.display = 'none';
});
});
</script>

@livewireStyles
@livewireScripts

0 comments on commit 39c5fc8

Please sign in to comment.