abmp-npm 1.1.41 → 1.1.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abmp-npm",
3
- "version": "1.1.41",
3
+ "version": "1.1.43",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
package/pages/Home.js CHANGED
@@ -33,6 +33,7 @@ const homePageOnReady = async ({
33
33
  getCompiledFiltersOptions,
34
34
  getNonCompiledFiltersOptions,
35
35
  filterProfiles,
36
+ logMessage,
36
37
  }) => {
37
38
  const {
38
39
  getParamsMapping,
@@ -52,7 +53,7 @@ const homePageOnReady = async ({
52
53
  updateUrlParams,
53
54
  noSearchCriteria,
54
55
  search,
55
- } = createHomepageUtils(_$w, filterProfiles);
56
+ } = createHomepageUtils(_$w, filterProfiles, logMessage);
56
57
  detectMobile();
57
58
  initPageUI();
58
59
  attachEventListeners();
@@ -263,20 +264,26 @@ const homePageOnReady = async ({
263
264
  }
264
265
 
265
266
  async function handleUrlParams() {
267
+ const renderingEnv = await rendering.env();
266
268
  const { isDefaultStateParams, filter: newFilter } = await parseAndValidateQueryParams(
267
269
  filter,
268
270
  pagination
269
271
  );
272
+ logMessage(`[handleUrlParams][${renderingEnv}] isDefaultStateParams`, isDefaultStateParams);
270
273
  filter = newFilter;
274
+ logMessage(`[handleUrlParams][${renderingEnv}] filter`, JSON.stringify(filter));
271
275
  await applyFilterToUI(isDefaultStateParams);
272
276
  }
273
277
 
274
278
  async function applyFilterToUI(isDefaultStateParams) {
279
+ const renderingEnv = await rendering.env();
280
+ logMessage(`[applyFilterToUI][${renderingEnv}] isDefaultStateParams`, isDefaultStateParams);
275
281
  const setFilterFromParams = async (isInitializeValue = true) => {
276
282
  const params = await wixLocation.query();
283
+ logMessage(`[setFilterFromParams][${renderingEnv}] params`, JSON.stringify(params));
277
284
  console.log('params inside setFilterFromParams ', params);
278
285
  const paramsMapping = getParamsMapping(filter, pagination);
279
- Object.entries(paramsMapping).forEach(async ([param, { setValue, setUI }]) => {
286
+ for (const [param, { setValue, setUI }] of Object.entries(paramsMapping)) {
280
287
  const value = params[param];
281
288
  if (value !== undefined && value !== null && value !== '') {
282
289
  try {
@@ -300,15 +307,17 @@ const homePageOnReady = async ({
300
307
  console.error(`Error setting parameter ${param}:`, error);
301
308
  }
302
309
  }
303
- });
310
+ }
304
311
  };
305
312
  await setFilterFromParams(true);
306
313
  if (isDefaultStateParams) {
307
314
  console.log('default state set for nearby');
315
+ logMessage(`[applyFilterToUI][${renderingEnv}] default state set for nearby`);
308
316
  await Promise.all([fetchFilterData(), nearByHandler(true)]);
309
317
  return;
310
318
  }
311
319
  console.log('not default state');
320
+ logMessage(`[applyFilterToUI][${renderingEnv}] not default state`);
312
321
  const searchPromise =
313
322
  filter.searchText && filter.searchText.length > 0
314
323
  ? () =>
@@ -329,6 +338,7 @@ const homePageOnReady = async ({
329
338
  searchPromise(),
330
339
  ]);
331
340
  } catch (error) {
341
+ logMessage(`[applyFilterToUI][${renderingEnv}] failed with error:`, error);
332
342
  console.error('[applyFilterToUI] failed with error:', error);
333
343
  multiStateBoxSelector.changeState('errorState');
334
344
  }
@@ -338,7 +348,11 @@ const homePageOnReady = async ({
338
348
  * UPDATE PROFILES BASED ON APPLIED/DEFAULT FILTER
339
349
  */
340
350
  async function updateResults(timeoutType, preservePagination = false) {
351
+ const renderingEnv = await rendering.env();
352
+ logMessage(`[updateResults][${renderingEnv}] timeoutType`, timeoutType);
353
+ logMessage(`[updateResults][${renderingEnv}] preservePagination`, preservePagination);
341
354
  if (debounceTimeout[timeoutType]) {
355
+ logMessage(`[updateResults][${renderingEnv}] clearing timeout type ${timeoutType}`);
342
356
  clearTimeout(debounceTimeout[timeoutType]);
343
357
  }
344
358
  searchResults = await search({
@@ -349,6 +363,7 @@ const homePageOnReady = async ({
349
363
  isSearchingNearby: _$w('#nearBy').checked,
350
364
  preservePagination,
351
365
  });
366
+ logMessage(`[updateResults][${renderingEnv}] searchResults`, JSON.stringify(searchResults));
352
367
  !preservePagination && (await updateUrlParams(filter, pagination));
353
368
  return searchResults;
354
369
  }
@@ -408,7 +423,8 @@ const homePageOnReady = async ({
408
423
  // NEAR BY FILTER
409
424
  async function nearByHandler(preservePagination = false) {
410
425
  const isSearchingNearby = _$w('#nearBy').checked;
411
-
426
+ const renderingEnv = await rendering.env();
427
+ logMessage(`[nearByHandler][${renderingEnv}] isSearchingNearby`, isSearchingNearby);
412
428
  // 1. Disable nearby input while processing
413
429
  _$w('#nearBy').disable();
414
430
 
@@ -418,9 +434,10 @@ const homePageOnReady = async ({
418
434
  // 3. Do the query
419
435
  const { success, filter: newFilter } = await getAndSetUserLocation(isSearchingNearby, filter);
420
436
  filter = newFilter;
437
+ logMessage(`[nearByHandler][${renderingEnv}] filter`, JSON.stringify(filter));
421
438
  console.log('filter inside nearByHandler', filter);
422
- const renderingEnv = await rendering.env();
423
439
  if (!success) {
440
+ logMessage(`[nearByHandler][${renderingEnv}] failed to get user location`);
424
441
  if (renderingEnv !== 'backend') {
425
442
  //on Backend environment, geolocation API don't work, so makes no sense to change state for near by
426
443
  multiStateBoxSelector.changeState('nearByState');
@@ -434,8 +451,9 @@ const homePageOnReady = async ({
434
451
 
435
452
  // If location is not selected, change state to "resultsState"
436
453
  if (!isSearchingNearby) {
454
+ logMessage(`[nearByHandler][${renderingEnv}] !isSearchingNearby, is`);
437
455
  if (await noSearchCriteria()) {
438
- console.log('no search criteria and no near by');
456
+ logMessage(`[nearByHandler][${renderingEnv}] no search criteria and no near by`);
439
457
  multiStateBoxSelector.changeState('noSearchCriteria');
440
458
  // 4. Re-enable nearby input
441
459
  _$w('#nearBy').enable();
@@ -443,7 +461,7 @@ const homePageOnReady = async ({
443
461
  }
444
462
  multiStateBoxSelector.changeState('resultsState');
445
463
  }
446
-
464
+ logMessage(`[nearByHandler][${renderingEnv}] !isSearchingNearby, isSearchingNearby is true`);
447
465
  await updateResults('zeroTimeout', preservePagination);
448
466
 
449
467
  // 4. Re-enable nearby input when done
@@ -461,12 +479,18 @@ const homePageOnReady = async ({
461
479
  await withWarmUpData(
462
480
  'getCompiledFiltersOptions',
463
481
  () => getCompiledFiltersOptions(),
464
- console.log
482
+ logMessage
465
483
  );
484
+ const renderingEnv = await rendering.env();
485
+ logMessage(`[fetchFilterData][${renderingEnv}] fetched compiled filters`);
466
486
  completeStateList = COMPILED_STATE_LIST;
467
487
  areasOfPracticesList = COMPILED_AREAS_OF_PRACTICES;
468
488
  stateCityMapList = COMPILED_STATE_CITY_MAP;
469
489
  } catch (error) {
490
+ const renderingEnv = await rendering.env();
491
+ logMessage(
492
+ `[fetchFilterData][${renderingEnv}] failed to get compiled filters list, falling back to non compiled version with error: ${error}`
493
+ );
470
494
  console.error(
471
495
  `Failed to get compiled filters list, falling back to non compiled version with error: ${error}`
472
496
  );
@@ -743,7 +767,9 @@ const homePageOnReady = async ({
743
767
  await updateResults('filterTimeout');
744
768
  }
745
769
  } catch (error) {
746
- console.error('Error in multiSelectFilter:', error);
770
+ const renderingEnv = await rendering.env();
771
+ console.error(`[handleFilterChanged][${renderingEnv}] failed with error:`, error);
772
+ logMessage(`[handleFilterChanged][${renderingEnv}] failed with error:`, error);
747
773
  multiStateBoxSelector.changeState('errorState');
748
774
  }
749
775
  }
@@ -5,7 +5,7 @@ const { DEFAULT_FILTER } = require('../consts.js');
5
5
 
6
6
  const { debouncedFunction } = require('./sharedUtils.js');
7
7
 
8
- const createHomepageUtils = (_$w, filterProfiles) => {
8
+ const createHomepageUtils = (_$w, filterProfiles, logMessage) => {
9
9
  const getFiltersSelectors = filterName => ({
10
10
  checkBoxContainerSelector: _$w(`#${filterName}CheckBoxContainer`),
11
11
  searchTextInputSelector: _$w(`#${filterName}TextInput`),
@@ -502,6 +502,8 @@ const createHomepageUtils = (_$w, filterProfiles) => {
502
502
  }
503
503
  async function parseAndValidateQueryParams(filter, pagination) {
504
504
  const params = await wixLocation.query();
505
+ const renderingEnv = await rendering.env();
506
+ logMessage(`[parseAndValidateQueryParams][${renderingEnv}] params`, JSON.stringify(params));
505
507
  const paramsMapping = getParamsMapping(filter, pagination);
506
508
  const {
507
509
  siteRevision: _siteRevision,
@@ -521,15 +523,31 @@ const createHomepageUtils = (_$w, filterProfiles) => {
521
523
  newFilter.longitude !== 0 &&
522
524
  !isSearchingNearby
523
525
  ) {
526
+ logMessage(
527
+ `[parseAndValidateQueryParams][${renderingEnv}] Auto-enable nearby`,
528
+ JSON.stringify(params)
529
+ );
524
530
  await wixQueryParams.add({ nearby: 'true', page: '1' });
525
531
  return { isDefaultStateParams: true, filter: newFilter };
526
532
  }
527
533
 
528
534
  if (isNoParams) {
535
+ logMessage(
536
+ `[parseAndValidateQueryParams][${renderingEnv}] isNoParams`,
537
+ JSON.stringify(params)
538
+ );
539
+ // search({
540
+ // filter,
541
+ // pagination,
542
+ // debounceTimeout: 0,
543
+ // timeoutType: 'search',
544
+ // isSearchingNearby: false,
545
+ // });
529
546
  // Don't search yet - let the caller decide what to do
530
547
  // The search will be handled in applyFilterToUI
531
548
  return { isDefaultStateParams: true, filter: newFilter };
532
549
  }
550
+ logMessage(`[parseAndValidateQueryParams][${renderingEnv}] continued`, JSON.stringify(params));
533
551
  let autoAdjustFilters = false;
534
552
  const validatePageValue = value => {
535
553
  if (!value || isNaN(Number(value)) || Number(value) < 1 || Number(value) > 10) {
@@ -540,10 +558,18 @@ const createHomepageUtils = (_$w, filterProfiles) => {
540
558
  };
541
559
  const pageValidationResult = validatePageValue(params.page);
542
560
  if (!pageValidationResult.valid) {
561
+ logMessage(
562
+ `[parseAndValidateQueryParams][${renderingEnv}] pageValidationResult not valid`,
563
+ JSON.stringify(params)
564
+ );
543
565
  paramsMapping.page.setValue({ value: pageValidationResult.value });
544
566
  autoAdjustFilters = true;
545
567
  }
546
568
  if (isSearchingNearby) {
569
+ logMessage(
570
+ `[parseAndValidateQueryParams][${renderingEnv}] isSearchingNearby`,
571
+ JSON.stringify(params)
572
+ );
547
573
  //if nearby is true only city,state,zip should be reset, others should be preserved and taken from query params
548
574
  const paramsToPreserve = ['practiceAreas', 'searchText', 'page'];
549
575
  paramsToPreserve.forEach(paramName => {
@@ -559,6 +585,10 @@ const createHomepageUtils = (_$w, filterProfiles) => {
559
585
  autoAdjustFilters = true;
560
586
  }
561
587
  if (autoAdjustFilters) {
588
+ logMessage(
589
+ `[parseAndValidateQueryParams][${renderingEnv}] autoAdjustFilters`,
590
+ JSON.stringify(params)
591
+ );
562
592
  await updateUrlParams(filter, pagination);
563
593
  }
564
594
  const isNearbyFilter =
@@ -590,6 +620,8 @@ const createHomepageUtils = (_$w, filterProfiles) => {
590
620
  const paramsMapping = getParamsMapping(filter, pagination);
591
621
  // Get current query parameters
592
622
  const currentParams = await wixLocation.query();
623
+ const renderingEnv = await rendering.env();
624
+ logMessage(`[updateUrlParams][${renderingEnv}] currentParams`, JSON.stringify(currentParams));
593
625
  // Remove all existing parameters that we manage
594
626
  Object.keys(paramsMapping).forEach(async param => {
595
627
  if (currentParams[param]) {
@@ -651,6 +683,7 @@ const createHomepageUtils = (_$w, filterProfiles) => {
651
683
  preservePagination = false,
652
684
  }) {
653
685
  const multiStateBoxSelector = _$w('#resultsStateBox');
686
+ const renderingEnv = await rendering.env();
654
687
  const initSearchResultsUI = () => {
655
688
  JSON.stringify(filter) === JSON.stringify(DEFAULT_FILTER)
656
689
  ? _$w('#resetFilter').hide()
@@ -663,6 +696,10 @@ const createHomepageUtils = (_$w, filterProfiles) => {
663
696
  };
664
697
  const runSearchAndUpdateUI = async (filter, isSearchingNearby) => {
665
698
  if (!isSearchingNearby) {
699
+ logMessage(
700
+ `[runSearchAndUpdateUI][${renderingEnv}] !isSearchingNearby, filter`,
701
+ JSON.stringify(filter)
702
+ );
666
703
  if (
667
704
  JSON.stringify({
668
705
  ...filter,
@@ -671,11 +708,17 @@ const createHomepageUtils = (_$w, filterProfiles) => {
671
708
  }) === JSON.stringify(DEFAULT_FILTER)
672
709
  ) {
673
710
  multiStateBoxSelector.changeState('noSearchCriteria');
674
-
711
+ logMessage(
712
+ `[runSearchAndUpdateUI][${renderingEnv}] !isSearchingNearby, no search criteria`
713
+ );
675
714
  return [];
676
715
  }
677
716
  }
678
- const renderingEnv = await rendering.env();
717
+ logMessage(
718
+ `[runSearchAndUpdateUI][${renderingEnv}] isSearchingNearby is true , filter`,
719
+ JSON.stringify({ filter })
720
+ );
721
+ //Don't run setTimeout on SSR
679
722
  const funcPromise =
680
723
  renderingEnv === 'backend'
681
724
  ? () => filterProfiles({ filter, isSearchingNearby })
@@ -688,6 +731,10 @@ const createHomepageUtils = (_$w, filterProfiles) => {
688
731
  });
689
732
  const { success, response, error } = await funcPromise();
690
733
  if (!success) {
734
+ logMessage(
735
+ `[runSearchAndUpdateUI][${renderingEnv}] !isSearchingNearby, failed to get search results`,
736
+ error
737
+ );
691
738
  _$w('#numberOfResults').text = '';
692
739
  console.error('[search] failed with error:', error);
693
740
  multiStateBoxSelector.changeState('errorState');
@@ -701,6 +748,10 @@ const createHomepageUtils = (_$w, filterProfiles) => {
701
748
  ? `'${filter.searchText}' did not match any search. Please try again.`
702
749
  : 'No results found for the selected filters. Please adjust your filters and try again'
703
750
  }`;
751
+ logMessage(
752
+ `[runSearchAndUpdateUI][${renderingEnv}] !isSearchingNearby, no results found`,
753
+ JSON.stringify({ filter })
754
+ );
704
755
  multiStateBoxSelector.changeState('noResultsState');
705
756
  return [];
706
757
  }