@abcagency/hc-ui-components 1.5.3 → 1.5.4

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.
@@ -1,4 +1,7 @@
1
1
  export function initializeAlgoliaSearch(appId: string, apiKey: string, indexName: string): boolean;
2
2
  export function isAlgoliaAvailable(): boolean;
3
- export function searchAlgolia(query: string): Promise<number[]>;
4
- export function filterListingsByAlgoliaSearch(listings: any[], query: string): Promise<any[]>;
3
+ export function searchAlgolia(query: string): Promise<{
4
+ referenceNumbers: number[];
5
+ ids: string[];
6
+ }>;
7
+ export function filterListingsByAlgoliaSearch(listings: any, query: any): Promise<any>;
@@ -35,11 +35,11 @@ var isAlgoliaAvailable = function isAlgoliaAvailable() {
35
35
  /**
36
36
  * Search using Algolia and return matching listing IDs
37
37
  * @param {string} query - Search query
38
- * @returns {Promise<number[]>} Array of listing IDs that match the search
38
+ * @returns {Promise<{referenceNumbers: number[], ids: string[]}>} Object with arrays of referenceNumbers and ids
39
39
  */
40
40
  var searchAlgolia = /*#__PURE__*/function () {
41
41
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(query) {
42
- var _results$, _yield$algoliaClient$, results, hits, listingIds;
42
+ var _results$, _yield$algoliaClient$, results, hits, referenceNumbers, ids;
43
43
  return _regeneratorRuntime().wrap(function _callee$(_context) {
44
44
  while (1) switch (_context.prev = _context.next) {
45
45
  case 0:
@@ -63,39 +63,45 @@ var searchAlgolia = /*#__PURE__*/function () {
63
63
  results = _yield$algoliaClient$.results;
64
64
  // Extract IDs from the results
65
65
  hits = ((_results$ = results[0]) === null || _results$ === void 0 ? void 0 : _results$.hits) || [];
66
- listingIds = hits.map(function (hit) {
67
- // Algolia objectID might be the listing ID, or it might be in a field
68
- // Adjust this based on your Algolia index structure
69
- return hit.id || parseInt(hit.objectID);
70
- }).filter(function (id) {
71
- return !isNaN(id);
66
+ console.log('Algolia search returned', hits.length, 'hits');
67
+ referenceNumbers = [];
68
+ ids = [];
69
+ hits.forEach(function (hit) {
70
+ if (hit.referenceNumber) {
71
+ referenceNumbers.push(parseInt(hit.referenceNumber));
72
+ }
73
+ if (hit.id) {
74
+ ids.push(hit.id);
75
+ }
72
76
  });
73
- return _context.abrupt("return", listingIds);
74
- case 12:
75
- _context.prev = 12;
77
+ console.log('Extracted', referenceNumbers.length, 'referenceNumbers and', ids.length, 'ids from Algolia');
78
+ return _context.abrupt("return", {
79
+ referenceNumbers: referenceNumbers,
80
+ ids: ids
81
+ });
82
+ case 16:
83
+ _context.prev = 16;
76
84
  _context.t0 = _context["catch"](2);
77
85
  console.error('Algolia search failed:', _context.t0);
78
86
  throw _context.t0;
79
- case 16:
87
+ case 20:
80
88
  case "end":
81
89
  return _context.stop();
82
90
  }
83
- }, _callee, null, [[2, 12]]);
91
+ }, _callee, null, [[2, 16]]);
84
92
  }));
85
93
  return function searchAlgolia(_x) {
86
94
  return _ref.apply(this, arguments);
87
95
  };
88
- }();
89
-
90
- /**
91
- * Filter listings by Algolia search results
92
- * @param {Array} listings - All listings to filter
93
- * @param {string} query - Search query
94
- * @returns {Promise<Array>} Filtered listings
95
- */
96
+ }(); /**
97
+ * Filter listings by Algolia search results
98
+ * @param {Array} listings - All listings to filter
99
+ * @param {string} query - Search query
100
+ * @returns {Promise<Array>} Filtered listings
101
+ */
96
102
  var filterListingsByAlgoliaSearch = /*#__PURE__*/function () {
97
103
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(listings, query) {
98
- var matchingIds;
104
+ var _yield$searchAlgolia, referenceNumbers, ids, filtered;
99
105
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
100
106
  while (1) switch (_context2.prev = _context2.next) {
101
107
  case 0:
@@ -109,20 +115,35 @@ var filterListingsByAlgoliaSearch = /*#__PURE__*/function () {
109
115
  _context2.next = 5;
110
116
  return searchAlgolia(query);
111
117
  case 5:
112
- matchingIds = _context2.sent;
113
- return _context2.abrupt("return", listings.filter(function (listing) {
114
- return matchingIds.includes(listing.id);
118
+ _yield$searchAlgolia = _context2.sent;
119
+ referenceNumbers = _yield$searchAlgolia.referenceNumbers;
120
+ ids = _yield$searchAlgolia.ids;
121
+ console.log('Filtering', listings.length, 'listings against', referenceNumbers.length, 'referenceNumbers and', ids.length, 'ids');
122
+ console.log('Sample listing referenceNumbers:', listings.slice(0, 5).map(function (l) {
123
+ return l.referenceNumber;
124
+ }));
125
+ console.log('Sample listing ids:', listings.slice(0, 5).map(function (l) {
126
+ return l.id;
115
127
  }));
116
- case 9:
117
- _context2.prev = 9;
128
+ console.log('Sample Algolia referenceNumbers:', referenceNumbers.slice(0, 5));
129
+ console.log('Sample Algolia ids:', ids.slice(0, 5));
130
+
131
+ // Filter listings by matching referenceNumber OR id
132
+ filtered = listings.filter(function (listing) {
133
+ return referenceNumbers.includes(listing.referenceNumber) || ids.includes(listing.id);
134
+ });
135
+ console.log('Filtered result:', filtered.length, 'listings matched');
136
+ return _context2.abrupt("return", filtered);
137
+ case 18:
138
+ _context2.prev = 18;
118
139
  _context2.t0 = _context2["catch"](2);
119
140
  console.error('Failed to filter by Algolia search, returning all listings:', _context2.t0);
120
141
  return _context2.abrupt("return", listings);
121
- case 13:
142
+ case 22:
122
143
  case "end":
123
144
  return _context2.stop();
124
145
  }
125
- }, _callee2, null, [[2, 9]]);
146
+ }, _callee2, null, [[2, 18]]);
126
147
  }));
127
148
  return function filterListingsByAlgoliaSearch(_x2, _x3) {
128
149
  return _ref2.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"algoliaSearchUtil.js","sources":["../../src/util/algoliaSearchUtil.js"],"sourcesContent":["import { liteClient as algoliasearch } from 'algoliasearch/lite';\n\nlet algoliaClient = null;\nlet algoliaIndexName = null;\n\n/**\n * Initialize Algolia search client\n * @param {string} appId - Algolia Application ID\n * @param {string} apiKey - Algolia Search API Key\n * @param {string} indexName - Algolia Index Name\n */\nexport const initializeAlgoliaSearch = (appId, apiKey, indexName) => {\n\tif (!appId || !apiKey || !indexName) {\n\t\tconsole.warn('Algolia search not initialized: missing configuration');\n\t\treturn false;\n\t}\n\t\n\ttry {\n\t\talgoliaClient = algoliasearch(appId, apiKey);\n\t\talgoliaIndexName = indexName;\n\t\treturn true;\n\t} catch (error) {\n\t\tconsole.error('Failed to initialize Algolia:', error);\n\t\treturn false;\n\t}\n};\n\n/**\n * Check if Algolia is initialized and available\n */\nexport const isAlgoliaAvailable = () => {\n\treturn algoliaClient !== null && algoliaIndexName !== null;\n};\n\n/**\n * Search using Algolia and return matching listing IDs\n * @param {string} query - Search query\n * @returns {Promise<number[]>} Array of listing IDs that match the search\n */\nexport const searchAlgolia = async (query) => {\n\tif (!isAlgoliaAvailable()) {\n\t\tthrow new Error('Algolia search is not initialized');\n\t}\n\n\ttry {\n\t\tconst { results } = await algoliaClient.search({\n\t\t\trequests: [\n\t\t\t\t{\n\t\t\t\t\tindexName: algoliaIndexName,\n\t\t\t\t\tquery: query,\n\t\t\t\t\thitsPerPage: 1000 // Adjust based on your needs\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\n\t\t// Extract IDs from the results\n\t\tconst hits = results[0]?.hits || [];\n\t\tconst listingIds = hits.map(hit => {\n\t\t\t// Algolia objectID might be the listing ID, or it might be in a field\n\t\t\t// Adjust this based on your Algolia index structure\n\t\t\treturn hit.id || parseInt(hit.objectID);\n\t\t}).filter(id => !isNaN(id));\n\n\t\treturn listingIds;\n\t} catch (error) {\n\t\tconsole.error('Algolia search failed:', error);\n\t\tthrow error;\n\t}\n};\n\n/**\n * Filter listings by Algolia search results\n * @param {Array} listings - All listings to filter\n * @param {string} query - Search query\n * @returns {Promise<Array>} Filtered listings\n */\nexport const filterListingsByAlgoliaSearch = async (listings, query) => {\n\tif (!query || !isAlgoliaAvailable()) {\n\t\treturn listings;\n\t}\n\n\ttry {\n\t\tconst matchingIds = await searchAlgolia(query);\n\t\t\n\t\t// Filter listings to only include those with matching IDs\n\t\treturn listings.filter(listing => matchingIds.includes(listing.id));\n\t} catch (error) {\n\t\tconsole.error('Failed to filter by Algolia search, returning all listings:', error);\n\t\treturn listings;\n\t}\n};\n"],"names":["algoliaClient","algoliaIndexName","initializeAlgoliaSearch","appId","apiKey","indexName","console","warn","algoliasearch","error","isAlgoliaAvailable","searchAlgolia","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","_results$","_yield$algoliaClient$","results","hits","listingIds","wrap","_callee$","_context","prev","next","Error","search","requests","hitsPerPage","sent","map","hit","id","parseInt","objectID","filter","isNaN","abrupt","t0","stop","_x","apply","arguments","filterListingsByAlgoliaSearch","_ref2","_callee2","listings","matchingIds","_callee2$","_context2","listing","includes","_x2","_x3"],"mappings":"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"}
1
+ {"version":3,"file":"algoliaSearchUtil.js","sources":["../../src/util/algoliaSearchUtil.js"],"sourcesContent":["import { liteClient as algoliasearch } from 'algoliasearch/lite';\n\nlet algoliaClient = null;\nlet algoliaIndexName = null;\n\n/**\n * Initialize Algolia search client\n * @param {string} appId - Algolia Application ID\n * @param {string} apiKey - Algolia Search API Key\n * @param {string} indexName - Algolia Index Name\n */\nexport const initializeAlgoliaSearch = (appId, apiKey, indexName) => {\n\tif (!appId || !apiKey || !indexName) {\n\t\tconsole.warn('Algolia search not initialized: missing configuration');\n\t\treturn false;\n\t}\n\n\ttry {\n\t\talgoliaClient = algoliasearch(appId, apiKey);\n\t\talgoliaIndexName = indexName;\n\t\treturn true;\n\t} catch (error) {\n\t\tconsole.error('Failed to initialize Algolia:', error);\n\t\treturn false;\n\t}\n};\n\n/**\n * Check if Algolia is initialized and available\n */\nexport const isAlgoliaAvailable = () => {\n\treturn algoliaClient !== null && algoliaIndexName !== null;\n};\n\n/**\n * Search using Algolia and return matching listing IDs\n * @param {string} query - Search query\n * @returns {Promise<{referenceNumbers: number[], ids: string[]}>} Object with arrays of referenceNumbers and ids\n */\nexport const searchAlgolia = async (query) => {\n\tif (!isAlgoliaAvailable()) {\n\t\tthrow new Error('Algolia search is not initialized');\n\t}\n\n\ttry {\n\t\tconst { results } = await algoliaClient.search({\n\t\t\trequests: [\n\t\t\t\t{\n\t\t\t\t\tindexName: algoliaIndexName,\n\t\t\t\t\tquery: query,\n\t\t\t\t\thitsPerPage: 1000 // Adjust based on your needs\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\n\t\t// Extract IDs from the results\n\t\tconst hits = results[0]?.hits || [];\n\t\tconsole.log('Algolia search returned', hits.length, 'hits');\n\t\t\n\t\tconst referenceNumbers = [];\n\t\tconst ids = [];\n\t\t\n\t\thits.forEach(hit => {\n\t\t\tif (hit.referenceNumber) {\n\t\t\t\treferenceNumbers.push(parseInt(hit.referenceNumber));\n\t\t\t}\n\t\t\tif (hit.id) {\n\t\t\t\tids.push(hit.id);\n\t\t\t}\n\t\t});\n\n\t\tconsole.log('Extracted', referenceNumbers.length, 'referenceNumbers and', ids.length, 'ids from Algolia');\n\t\treturn { referenceNumbers, ids };\n\t} catch (error) {\n\t\tconsole.error('Algolia search failed:', error);\n\t\tthrow error;\n\t}\n};/**\n * Filter listings by Algolia search results\n * @param {Array} listings - All listings to filter\n * @param {string} query - Search query\n * @returns {Promise<Array>} Filtered listings\n */\nexport const filterListingsByAlgoliaSearch = async (listings, query) => {\n\tif (!query || !isAlgoliaAvailable()) {\n\t\treturn listings;\n\t}\n\n\ttry {\n\t\tconst { referenceNumbers, ids } = await searchAlgolia(query);\n\t\t\n\t\tconsole.log('Filtering', listings.length, 'listings against', referenceNumbers.length, 'referenceNumbers and', ids.length, 'ids');\n\t\tconsole.log('Sample listing referenceNumbers:', listings.slice(0, 5).map(l => l.referenceNumber));\n\t\tconsole.log('Sample listing ids:', listings.slice(0, 5).map(l => l.id));\n\t\tconsole.log('Sample Algolia referenceNumbers:', referenceNumbers.slice(0, 5));\n\t\tconsole.log('Sample Algolia ids:', ids.slice(0, 5));\n\t\t\n\t\t// Filter listings by matching referenceNumber OR id\n\t\tconst filtered = listings.filter(listing => \n\t\t\treferenceNumbers.includes(listing.referenceNumber) || ids.includes(listing.id)\n\t\t);\n\t\t\n\t\tconsole.log('Filtered result:', filtered.length, 'listings matched');\n\t\treturn filtered;\n\t} catch (error) {\n\t\tconsole.error('Failed to filter by Algolia search, returning all listings:', error);\n\t\treturn listings;\n\t}\n};\n"],"names":["algoliaClient","algoliaIndexName","initializeAlgoliaSearch","appId","apiKey","indexName","console","warn","algoliasearch","error","isAlgoliaAvailable","searchAlgolia","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","_results$","_yield$algoliaClient$","results","hits","referenceNumbers","ids","wrap","_callee$","_context","prev","next","Error","search","requests","hitsPerPage","sent","log","length","forEach","hit","referenceNumber","push","parseInt","id","abrupt","t0","stop","_x","apply","arguments","filterListingsByAlgoliaSearch","_ref2","_callee2","listings","_yield$searchAlgolia","filtered","_callee2$","_context2","slice","map","l","filter","listing","includes","_x2","_x3"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abcagency/hc-ui-components",
3
- "version": "1.5.3",
3
+ "version": "1.5.4",
4
4
  "description": "UI Components for HireControl",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -14,7 +14,7 @@ export const initializeAlgoliaSearch = (appId, apiKey, indexName) => {
14
14
  console.warn('Algolia search not initialized: missing configuration');
15
15
  return false;
16
16
  }
17
-
17
+
18
18
  try {
19
19
  algoliaClient = algoliasearch(appId, apiKey);
20
20
  algoliaIndexName = indexName;
@@ -35,7 +35,7 @@ export const isAlgoliaAvailable = () => {
35
35
  /**
36
36
  * Search using Algolia and return matching listing IDs
37
37
  * @param {string} query - Search query
38
- * @returns {Promise<number[]>} Array of listing IDs that match the search
38
+ * @returns {Promise<{referenceNumbers: number[], ids: string[]}>} Object with arrays of referenceNumbers and ids
39
39
  */
40
40
  export const searchAlgolia = async (query) => {
41
41
  if (!isAlgoliaAvailable()) {
@@ -55,20 +55,27 @@ export const searchAlgolia = async (query) => {
55
55
 
56
56
  // Extract IDs from the results
57
57
  const hits = results[0]?.hits || [];
58
- const listingIds = hits.map(hit => {
59
- // Algolia objectID might be the listing ID, or it might be in a field
60
- // Adjust this based on your Algolia index structure
61
- return hit.id || parseInt(hit.objectID);
62
- }).filter(id => !isNaN(id));
58
+ console.log('Algolia search returned', hits.length, 'hits');
59
+
60
+ const referenceNumbers = [];
61
+ const ids = [];
62
+
63
+ hits.forEach(hit => {
64
+ if (hit.referenceNumber) {
65
+ referenceNumbers.push(parseInt(hit.referenceNumber));
66
+ }
67
+ if (hit.id) {
68
+ ids.push(hit.id);
69
+ }
70
+ });
63
71
 
64
- return listingIds;
72
+ console.log('Extracted', referenceNumbers.length, 'referenceNumbers and', ids.length, 'ids from Algolia');
73
+ return { referenceNumbers, ids };
65
74
  } catch (error) {
66
75
  console.error('Algolia search failed:', error);
67
76
  throw error;
68
77
  }
69
- };
70
-
71
- /**
78
+ };/**
72
79
  * Filter listings by Algolia search results
73
80
  * @param {Array} listings - All listings to filter
74
81
  * @param {string} query - Search query
@@ -80,10 +87,21 @@ export const filterListingsByAlgoliaSearch = async (listings, query) => {
80
87
  }
81
88
 
82
89
  try {
83
- const matchingIds = await searchAlgolia(query);
90
+ const { referenceNumbers, ids } = await searchAlgolia(query);
91
+
92
+ console.log('Filtering', listings.length, 'listings against', referenceNumbers.length, 'referenceNumbers and', ids.length, 'ids');
93
+ console.log('Sample listing referenceNumbers:', listings.slice(0, 5).map(l => l.referenceNumber));
94
+ console.log('Sample listing ids:', listings.slice(0, 5).map(l => l.id));
95
+ console.log('Sample Algolia referenceNumbers:', referenceNumbers.slice(0, 5));
96
+ console.log('Sample Algolia ids:', ids.slice(0, 5));
97
+
98
+ // Filter listings by matching referenceNumber OR id
99
+ const filtered = listings.filter(listing =>
100
+ referenceNumbers.includes(listing.referenceNumber) || ids.includes(listing.id)
101
+ );
84
102
 
85
- // Filter listings to only include those with matching IDs
86
- return listings.filter(listing => matchingIds.includes(listing.id));
103
+ console.log('Filtered result:', filtered.length, 'listings matched');
104
+ return filtered;
87
105
  } catch (error) {
88
106
  console.error('Failed to filter by Algolia search, returning all listings:', error);
89
107
  return listings;