Simplifying logic

This commit is contained in:
Michaela Brydon 2023-11-30 11:54:17 -05:00
parent c137db2c00
commit 916cd4ea4c

View file

@ -199,7 +199,21 @@ export default {
filter: globalRules.OPTION_REQUIRED, // TODO do we even need this?
provider: globalRules.OPTION_REQUIRED
},
shopListButton: shallowRef(shopListButton)
shopListButton: shallowRef(shopListButton),
radiusFilterPairs: [
{
radius: 25,
filter: '25 miles'
},
{
radius: 50,
filter: '50 miles'
},
{
radius: 100,
filter: '100 miles'
}
]
};
},
computed: {
@ -233,16 +247,18 @@ export default {
);
},
radiusInMiles() {
switch (this.filter) {
case '25 miles':
return 25;
case '50 miles':
return 50;
case '100 miles':
return 100;
default:
return 0;
}
const pair = this.radiusFilterPairs.find((p) => p.filter === this.filter);
return pair?.radius ?? 0;
// switch (this.filter) {
// case '25 miles':
// return 25;
// case '50 miles':
// return 50;
// case '100 miles':
// return 100;
// default:
// return 0;
// }
},
noNetworkShopsAlertHeaderText() {
return this.getCmsContent(
@ -312,18 +328,32 @@ export default {
this.initialLoading = true;
const { zipCode } = useMainStore().order.customer.address;
let radius = '25 miles';
let providers = await useMainStore().getTpaProviders(zipCode, 25);
if ((providers?.data?.shopProviders ?? []).length === 0) {
radius = '50 miles';
providers = await useMainStore().getTpaProviders(zipCode, 50);
if ((providers?.data?.shopProviders ?? []).length === 0) {
radius = '100 miles';
providers = await useMainStore().getTpaProviders(zipCode, 100);
}
let pairIndex = 0;
let providers = [];
let filter = '';
while (providers.length === 0 && pairIndex < this.radiusFilterPairs.length) {
const pair = this.radiusFilterPairs[pairIndex];
const { radius } = pair;
filter = pair.filter;
// eslint-disable-next-line no-await-in-loop
const result = await useMainStore().getTpaProviders(zipCode, radius);
providers = result?.data?.shopProviders ?? [];
pairIndex += 1;
}
this.filter = radius;
this.providers = providers?.data?.shopProviders ?? [];
// let radius = '25 miles';
// let providers = await useMainStore().getTpaProviders(zipCode, 25);
// if ((providers?.data?.shopProviders ?? []).length === 0) {
// radius = '50 miles';
// providers = await useMainStore().getTpaProviders(zipCode, 50);
// if ((providers?.data?.shopProviders ?? []).length === 0) {
// radius = '100 miles';
// providers = await useMainStore().getTpaProviders(zipCode, 100);
// }
// }
this.filter = filter;
this.providers = providers;
},
async getProviderButtonData() {
const getTpaProvidersResult = await useMainStore().getTpaProviders(this.zipCode, this.radiusInMiles);