|
1 | 1 | <script>
|
2 | 2 | import {page} from "$app/state";
|
3 | 3 | import {contactDetail} from "$lib/api/ContactApi.js";
|
4 |
| - import {alertError} from "$lib/alert.js"; |
| 4 | + import {alertConfirm, alertError, alertSuccess} from "$lib/alert.js"; |
5 | 5 | import {onMount} from "svelte";
|
6 |
| - import {addressList} from "$lib/api/AddressApi.js"; |
| 6 | + import {addressDelete, addressList} from "$lib/api/AddressApi.js"; |
7 | 7 |
|
8 | 8 | const token = localStorage.getItem('token');
|
9 | 9 | const {id} = page.params;
|
|
18 | 18 |
|
19 | 19 | let addresses = $state([]);
|
20 | 20 |
|
| 21 | + async function handleDeleteAddress(addressId) { |
| 22 | + if (!await alertConfirm("Are you sure you want to delete this address?")) { |
| 23 | + return; |
| 24 | + } |
| 25 | +
|
| 26 | + const response = await addressDelete(token, id, addressId); |
| 27 | + const responseBody = await response.json(); |
| 28 | + console.log(responseBody); |
| 29 | +
|
| 30 | + if (response.status === 200) { |
| 31 | + await alertSuccess("Address deleted successfully"); |
| 32 | + await fetchAddresses(); |
| 33 | + } else { |
| 34 | + await alertError(responseBody.errors); |
| 35 | + } |
| 36 | + } |
| 37 | +
|
21 | 38 | async function fetchAddresses() {
|
22 | 39 | const response = await addressList(token, id);
|
23 | 40 | const responseBody = await response.json();
|
|
164 | 181 | class="px-4 py-2 bg-gradient text-white rounded-lg hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 focus:ring-offset-gray-800 transition-all duration-200 font-medium shadow-md flex items-center">
|
165 | 182 | <i class="fas fa-edit mr-2"></i> Edit
|
166 | 183 | </a>
|
167 |
| - <button class="px-4 py-2 bg-gradient-to-r from-red-600 to-red-500 text-white rounded-lg hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2 focus:ring-offset-gray-800 transition-all duration-200 font-medium shadow-md flex items-center"> |
| 184 | + <button onclick={() => handleDeleteAddress(address.id)} class="px-4 py-2 bg-gradient-to-r from-red-600 to-red-500 text-white rounded-lg hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2 focus:ring-offset-gray-800 transition-all duration-200 font-medium shadow-md flex items-center"> |
168 | 185 | <i class="fas fa-trash-alt mr-2"></i> Delete
|
169 | 186 | </button>
|
170 | 187 | </div>
|
|
0 commit comments