Todos los componentes del NIVEL 2 ya están implementados correctamente: - ✅ Notification Bar (#49) - ✅ Navbar (#50) - ✅ Hero Section (#51) - ✅ Sidebar (#52) - ✅ Footer (#53) Solo se actualizó notification-bar.css para usar variables CSS. Próximo paso: NIVEL 3 (Refinamientos visuales) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
10 lines
1.9 KiB
Plaintext
10 lines
1.9 KiB
Plaintext
define(['jquery','ko','underscore','./address-list'],function($,ko,_,addressList){'use strict';var isLoggedIn=ko.observable(window.isCustomerLoggedIn),customerData={};if(isLoggedIn()){customerData=window.customerData;}else{customerData={};}
|
|
return{customerData:customerData,customerDetails:{},isLoggedIn:isLoggedIn,setIsLoggedIn:function(flag){isLoggedIn(flag);},getBillingAddressList:function(){return addressList();},getShippingAddressList:function(){return addressList();},setDetails:function(fieldName,value){if(fieldName){this.customerDetails[fieldName]=value;}},getDetails:function(fieldName){if(fieldName){if(this.customerDetails.hasOwnProperty(fieldName)){return this.customerDetails[fieldName];}
|
|
return undefined;}
|
|
return this.customerDetails;},addCustomerAddress:function(address){var fields=['customer_id','country_id','street','company','telephone','fax','postcode','city','firstname','lastname','middlename','prefix','suffix','vat_id','default_billing','default_shipping'],customerAddress={},hasAddress=0,existingAddress;if(!this.customerData.addresses){this.customerData.addresses=[];}
|
|
customerAddress=_.pick(address,fields);if(address.hasOwnProperty('region_id')){customerAddress.region={'region_id':address['region_id'],region:address.region};}
|
|
for(existingAddress in this.customerData.addresses){if(this.customerData.addresses.hasOwnProperty(existingAddress)){if(_.isEqual(this.customerData.addresses[existingAddress],customerAddress)){hasAddress=existingAddress;break;}}}
|
|
if(hasAddress===0){return this.customerData.addresses.push(customerAddress)-1;}
|
|
return hasAddress;},setAddressAsDefaultBilling:function(addressId){if(this.customerData.addresses[addressId]){this.customerData.addresses[addressId]['default_billing']=1;return true;}
|
|
return false;},setAddressAsDefaultShipping:function(addressId){if(this.customerData.addresses[addressId]){this.customerData.addresses[addressId]['default_shipping']=1;return true;}
|
|
return false;}};}); |