complete project using prettier!

This commit is contained in:
2025-12-22 09:45:14 -08:00
parent 621d30b84f
commit a10f84aa48
339 changed files with 18041 additions and 8969 deletions

View File

@@ -7,8 +7,10 @@ import * as apiClient from '../services/apiClient';
import { logger } from '../services/logger.client';
import { useDebounce } from './useDebounce';
const geocodeWrapper = (address: string, signal?: AbortSignal) => apiClient.geocodeAddress(address, { signal });
const fetchAddressWrapper = (id: number, signal?: AbortSignal) => apiClient.getUserAddress(id, { signal });
const geocodeWrapper = (address: string, signal?: AbortSignal) =>
apiClient.geocodeAddress(address, { signal });
const fetchAddressWrapper = (id: number, signal?: AbortSignal) =>
apiClient.getUserAddress(id, { signal });
/**
* Helper to generate a consistent address string for geocoding.
@@ -20,7 +22,9 @@ const getAddressString = (address: Partial<Address>): string => {
address.province_state,
address.postal_code,
address.country,
].filter(Boolean).join(', ');
]
.filter(Boolean)
.join(', ');
};
/**
@@ -34,21 +38,27 @@ export const useProfileAddress = (userProfile: UserProfile | null, isOpen: boole
const [address, setAddress] = useState<Partial<Address>>({});
const [initialAddress, setInitialAddress] = useState<Partial<Address>>({});
const { execute: geocode, loading: isGeocoding } = useApi<{ lat: number; lng: number }, [string]>(geocodeWrapper);
const { execute: geocode, loading: isGeocoding } = useApi<{ lat: number; lng: number }, [string]>(
geocodeWrapper,
);
const { execute: fetchAddress } = useApi<Address, [number]>(fetchAddressWrapper);
// Effect to fetch or reset address based on profile and modal state
useEffect(() => {
const loadAddress = async () => {
if (userProfile?.address_id) {
logger.debug(`[useProfileAddress] Profile has address_id: ${userProfile.address_id}. Fetching.`);
logger.debug(
`[useProfileAddress] Profile has address_id: ${userProfile.address_id}. Fetching.`,
);
const fetchedAddress = await fetchAddress(userProfile.address_id);
if (fetchedAddress) {
logger.debug('[useProfileAddress] Successfully fetched address:', fetchedAddress);
setAddress(fetchedAddress);
setInitialAddress(fetchedAddress);
} else {
logger.warn(`[useProfileAddress] Fetch returned null for addressId: ${userProfile.address_id}.`);
logger.warn(
`[useProfileAddress] Fetch returned null for addressId: ${userProfile.address_id}.`,
);
setAddress({});
setInitialAddress({});
}
@@ -62,14 +72,16 @@ export const useProfileAddress = (userProfile: UserProfile | null, isOpen: boole
if (isOpen && userProfile) {
loadAddress();
} else {
logger.debug('[useProfileAddress] Modal is closed or profile is null. Resetting address state.');
setAddress({});
setInitialAddress({});
logger.debug(
'[useProfileAddress] Modal is closed or profile is null. Resetting address state.',
);
setAddress({});
setInitialAddress({});
}
}, [isOpen, userProfile, fetchAddress]); // fetchAddress is stable from useApi
const handleAddressChange = useCallback((field: keyof Address, value: string) => {
setAddress(prev => ({ ...prev, [field]: value }));
setAddress((prev) => ({ ...prev, [field]: value }));
}, []);
const handleManualGeocode = useCallback(async () => {
@@ -84,7 +96,7 @@ export const useProfileAddress = (userProfile: UserProfile | null, isOpen: boole
const result = await geocode(addressString);
if (result) {
const { lat, lng } = result;
setAddress(prev => ({ ...prev, latitude: lat, longitude: lng }));
setAddress((prev) => ({ ...prev, latitude: lat, longitude: lng }));
toast.success('Address re-geocoded successfully!');
}
}, [address, geocode]);
@@ -95,9 +107,11 @@ export const useProfileAddress = (userProfile: UserProfile | null, isOpen: boole
useEffect(() => {
const handleAutoGeocode = async () => {
logger.debug('[useProfileAddress] Auto-geocode effect triggered by debouncedAddress change');
if (JSON.stringify(debouncedAddress) === JSON.stringify(initialAddress)) {
logger.debug('[useProfileAddress] Skipping auto-geocode: address is unchanged from initial load.');
logger.debug(
'[useProfileAddress] Skipping auto-geocode: address is unchanged from initial load.',
);
return;
}
@@ -105,7 +119,10 @@ export const useProfileAddress = (userProfile: UserProfile | null, isOpen: boole
// Don't geocode an empty address or if we already have coordinates.
if (!addressString || (debouncedAddress.latitude && debouncedAddress.longitude)) {
logger.debug('[useProfileAddress] Skipping auto-geocode: empty string or coordinates already exist', { hasString: !!addressString, hasCoords: !!debouncedAddress.latitude });
logger.debug(
'[useProfileAddress] Skipping auto-geocode: empty string or coordinates already exist',
{ hasString: !!addressString, hasCoords: !!debouncedAddress.latitude },
);
return;
}
@@ -114,7 +131,7 @@ export const useProfileAddress = (userProfile: UserProfile | null, isOpen: boole
if (result) {
logger.debug('[useProfileAddress] Auto-geocode API returned result:', result);
const { lat, lng } = result;
setAddress(prev => ({ ...prev, latitude: lat, longitude: lng }));
setAddress((prev) => ({ ...prev, latitude: lat, longitude: lng }));
toast.success('Address geocoded successfully!');
}
};
@@ -129,4 +146,4 @@ export const useProfileAddress = (userProfile: UserProfile | null, isOpen: boole
handleAddressChange,
handleManualGeocode,
};
};
};