@buddy-technology/offer-component 1.0.0 → 1.1.1

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/CHANGELOG.md CHANGED
@@ -1,3 +1,42 @@
1
+ # [@buddy-technology/offer-component-v1.1.1](https://github.com/Buddy-Technology/ion-to-react/compare/@buddy-technology/offer-component-v1.1.0...@buddy-technology/offer-component-v1.1.1) (2024-02-29)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * createOffer not being called if script and Buddy obj already exist ([598eaec](https://github.com/Buddy-Technology/ion-to-react/commit/598eaec1a07bec631892a6e5f40a9631b1bce72c))
7
+ * useUpdateEffect ([86be701](https://github.com/Buddy-Technology/ion-to-react/commit/86be7010f16f68b8eafdc8d4dd4c7b8d39711ee1))
8
+
9
+ # [@buddy-technology/offer-component-v1.1.0](https://github.com/Buddy-Technology/ion-to-react/compare/@buddy-technology/offer-component-v1.0.0...@buddy-technology/offer-component-v1.1.0) (2023-12-05)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * updated TS interface ([4b92ed1](https://github.com/Buddy-Technology/ion-to-react/commit/4b92ed1559a2f7eed8e5ecaff012ae4a94956e85))
15
+
16
+
17
+ ### Features
18
+
19
+ * updated type for onCustomMessage ([28eb113](https://github.com/Buddy-Technology/ion-to-react/commit/28eb11394f3c9d03f8c2abafa57065eab42ed3d4))
20
+
21
+ # @buddy-technology/offer-component-v1.0.0 (2023-12-01)
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * eslint ts set up ([28438bd](https://github.com/Buddy-Technology/ion-to-react/commit/28438bd5d8709a653bbacdbc4e58044b9229d2b4))
27
+ * ts interfaces ([69f26ae](https://github.com/Buddy-Technology/ion-to-react/commit/69f26ae6e09ce086be15d331d2e49bc3b22132ba))
28
+ * typo in readme ([7969747](https://github.com/Buddy-Technology/ion-to-react/commit/7969747aff3a697edc41b912844bb44134ae7de1))
29
+ * update repo field in package jsons ([9a2b638](https://github.com/Buddy-Technology/ion-to-react/commit/9a2b638de3dbbac4d3af649d8410b5249885720c))
30
+
31
+
32
+ ### Features
33
+
34
+ * convert to typescript ([4d27be6](https://github.com/Buddy-Technology/ion-to-react/commit/4d27be6f7020394b32808e442558eea3367e810e))
35
+ * expose hook for loading configs ([81bd708](https://github.com/Buddy-Technology/ion-to-react/commit/81bd7089ae3f3f13da3f3179a1882882e39ab84b))
36
+ * map config inside the Buddy obj ([fda8376](https://github.com/Buddy-Technology/ion-to-react/commit/fda8376cd44e10195b388e43a01cb1eced3d7320))
37
+ * offer component and example app added ([e72aa94](https://github.com/Buddy-Technology/ion-to-react/commit/e72aa94b22053f94f753bed6d0a26ebbad6fa60a))
38
+ * test-utils ([7d44088](https://github.com/Buddy-Technology/ion-to-react/commit/7d4408827fff795ab6fd88c1c80765a6b014e2cb))
39
+
1
40
  # @buddy-technology/offer-component-v1.0.0 (2023-12-01)
2
41
 
3
42
 
package/dist/index.js CHANGED
@@ -149,8 +149,11 @@ var loadScript = function loadScript(options) {
149
149
  }
150
150
 
151
151
  if ((_window$Buddy = window.Buddy) != null && _window$Buddy.createOffer) {
152
+ var _window$Buddy2;
153
+
152
154
  // eslint-disable-next-line no-console
153
155
  console.warn(EXISTING_SCRIPT_MESSAGE);
156
+ (_window$Buddy2 = window.Buddy) == null ? void 0 : _window$Buddy2.createOffer(options);
154
157
  resolve(window.Buddy);
155
158
  return;
156
159
  }
@@ -179,12 +182,12 @@ var loadScript = function loadScript(options) {
179
182
  var script = findOfferScript(options == null ? void 0 : options.stage);
180
183
 
181
184
  if (script) {
182
- var _window$Buddy2;
185
+ var _window$Buddy3;
183
186
 
184
187
  // eslint-disable-next-line no-console
185
188
  console.warn(EXISTING_SCRIPT_MESSAGE);
186
189
 
187
- if ((_window$Buddy2 = window.Buddy) != null && _window$Buddy2.createOffer) {
190
+ if ((_window$Buddy3 = window.Buddy) != null && _window$Buddy3.createOffer) {
188
191
  resolve(window.Buddy);
189
192
  } else {
190
193
  reject(new Error('Buddy Offer Element not available'));
@@ -194,9 +197,9 @@ var loadScript = function loadScript(options) {
194
197
  }
195
198
 
196
199
  script.addEventListener('load', function () {
197
- var _window$Buddy3;
200
+ var _window$Buddy4;
198
201
 
199
- if ((_window$Buddy3 = window.Buddy) != null && _window$Buddy3.createOffer) {
202
+ if ((_window$Buddy4 = window.Buddy) != null && _window$Buddy4.createOffer) {
200
203
  resolve(window.Buddy);
201
204
  } else {
202
205
  reject(new Error('Buddy Offer Element not available'));
@@ -210,6 +213,10 @@ var loadScript = function loadScript(options) {
210
213
  }
211
214
  });
212
215
  return scriptPromise;
216
+ }; // This is used to clear our reference to the script promise when the component is unmounted.
217
+
218
+ var clearScriptPromise = function clearScriptPromise() {
219
+ scriptPromise = null;
213
220
  };
214
221
 
215
222
  function useConfig(src) {
@@ -265,7 +272,7 @@ var useUpdateEffect = function useUpdateEffect(effect, deps) {
265
272
  // eslint-disable-next-line consistent-return
266
273
 
267
274
  React.useEffect(function () {
268
- if (isFirstMount) {
275
+ if (isFirstMount.current) {
269
276
  isFirstMount.current = false;
270
277
  } else {
271
278
  return effect();
@@ -288,22 +295,27 @@ function _catch(body, recover) {
288
295
  }
289
296
 
290
297
  function BuddyOfferElement(options) {
291
- var getScript = function getScript() {
292
- try {
293
- var _temp2 = _catch(function () {
294
- return Promise.resolve(loadScript(options)).then(function () {});
295
- }, function (error) {
296
- // eslint-disable-next-line no-console
297
- console.error(error);
298
- });
299
-
300
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
301
- } catch (e) {
302
- return Promise.reject(e);
303
- }
304
- };
298
+ React.useEffect(function () {
299
+ var getScript = function getScript() {
300
+ try {
301
+ var _temp2 = _catch(function () {
302
+ return Promise.resolve(loadScript(options)).then(function () {});
303
+ }, function (error) {
304
+ // eslint-disable-next-line no-console
305
+ console.error(error);
306
+ });
307
+
308
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
309
+ } catch (e) {
310
+ return Promise.reject(e);
311
+ }
312
+ };
305
313
 
306
- getScript();
314
+ getScript();
315
+ return function () {
316
+ clearScriptPromise();
317
+ };
318
+ }, []);
307
319
  useUpdateEffect(function () {
308
320
  updateOffer(options);
309
321
  }, [options]);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/util/dictionary.ts","../src/util/index.ts","../src/hooks/useConfig.tsx","../src/hooks/useUpdateEffect.tsx","../src/components/BuddyOfferElement.tsx"],"sourcesContent":["const EXISTING_SCRIPT_MESSAGE = 'Buddy Offer Script is already loaded.';\n\nconst SCRIPTS = {\n\tLOCAL: {\n\t\tURL: 'http://localhost:8008/index.js',\n\t},\n\t// TODO: Delete this in favor of \"testing\", once we're sure nothing is using it.\n\tDEVELOPMENT: {\n\t\tURL: 'https://js.buddy.insure/v2/dev/index.js',\n\t},\n\tTESTING: {\n\t\tURL: 'https://js.buddy.insure/v2/testing/index.js',\n\t},\n\tSTAGING: {\n\t\tURL: 'https://js.buddy.insure/v2/staging/index.js',\n\t},\n\tPRODUCTION: {\n\t\tURL: 'https://js.buddy.insure/v2/index.js',\n\t},\n} as const;\n\nconst STAGES = Object.keys(SCRIPTS);\n\nexport {\n\tEXISTING_SCRIPT_MESSAGE,\n\tSCRIPTS,\n\tSTAGES,\n};\n","import { EXISTING_SCRIPT_MESSAGE, SCRIPTS, STAGES } from './dictionary';\nimport type { BuddyObject, IWindow } from '../interface';\n\ntype IStages = keyof typeof SCRIPTS;\n\nconst defaultOptions = {\n\tstage: 'STAGING',\n} as const;\n\nconst isEmptyOrNil = (value: any) => {\n\tconst isNil = (val: any) => [undefined, null].includes(val);\n\tconst isEmptyStr = (str: any) => typeof str === 'string' && str.trim().length === 0;\n\tconst isEmptyObjOrArr = (obj: any) => (typeof obj === 'object' && obj.length === undefined &&\n\t\tObject.keys(obj).length === 0) || (Array.isArray(obj) && obj.length === 0);\n\treturn (isNil(value) || isEmptyStr(value) || isEmptyObjOrArr(value));\n};\n\nconst validatePropertiesOfObject = (propsToCheck: string[], obj: Record<string, any>) => {\n\tconst emptyProps = propsToCheck.filter((prop) => isEmptyOrNil(obj[prop]));\n\tif (emptyProps.length) {\n\t\tconst displayMissingProps = emptyProps.reduce((prev, current, i) => {\n\t\t\tconst isLastEl = i === emptyProps.length - 1;\n\t\t\treturn isLastEl ? `${prev}${current}.` : `${prev}${current}, `;\n\t\t}, '');\n\t\treturn `The following props are required: ${displayMissingProps}`;\n\t}\n\treturn null;\n};\n\nexport const findScript = (url: string) => {\n\tconst scripts = Array.from(document.querySelectorAll('script'));\n\treturn scripts.find(({ src }) => src.startsWith(url));\n};\n\nexport const findOfferScript = (stage: IStages = defaultOptions.stage) => {\n\tconst { URL } = SCRIPTS[stage];\n\tconst matchedScript = findScript(URL);\n\treturn matchedScript;\n};\n\nexport const updateOffer = (options: Record<string, any>) => {\n\tif ((window as IWindow).Buddy) {\n\t\ttry {\n\t\t\t(window as IWindow).Buddy!.updateOffer(options);\n\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n};\n\nconst createOffer = (options: Record<string, any>) => {\n\tif ((window as IWindow).Buddy) {\n\t\ttry {\n\t\t\t(window as IWindow).Buddy!.createOffer(options);\n\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n};\n\nconst injectScript = (options: Record<string, any>) => {\n\tconst finalOptions = { ...defaultOptions, ...options };\n\tconst script = document.createElement('script');\n\tscript.src = `${SCRIPTS[finalOptions.stage].URL}`;\n\tscript.onload = () => createOffer(finalOptions);\n\tdocument.body.appendChild(script);\n\treturn script;\n};\n\nlet scriptPromise: Promise<BuddyObject | null> | null = null;\n\nexport const loadScript = (options: Record<string, any>) => {\n\t// Ensure that we only attempt to script once\n\tif (scriptPromise !== null) {\n\t\treturn scriptPromise;\n\t}\n\n\tscriptPromise = new Promise((resolve, reject) => {\n\t\tif (typeof window === 'undefined') {\n\t\t\t// Resolve to null when imported server side. This makes the module\n\t\t\t// safe to import in an isomorphic code base.\n\t\t\tresolve(null);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((window as IWindow).Buddy?.createOffer) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(EXISTING_SCRIPT_MESSAGE);\n\t\t\tresolve((window as IWindow).Buddy!);\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst requiredProps = ['ion', 'partnerID'];\n\t\t\tconst missingRequiredProps = validatePropertiesOfObject(requiredProps, options);\n\n\t\t\tif (missingRequiredProps) {\n\t\t\t\treject(new Error(missingRequiredProps));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!options?.stage) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(`No stage passed to BuddyOfferElement. Using default stage: ${defaultOptions.stage}`);\n\t\t\t}\n\n\t\t\t// If stage is passed, ensure it is one of the prescribed options.\n\t\t\tif (options?.stage && !STAGES.includes(options.stage)) {\n\t\t\t\tconst msg = `The stage prop must be one of: [${STAGES.join(' , ')}], but received \"${options.stage}.\"`;\n\t\t\t\treject(new Error(msg));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet script = findOfferScript(options?.stage);\n\n\t\t\tif (script) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(EXISTING_SCRIPT_MESSAGE);\n\t\t\t\tif ((window as IWindow).Buddy?.createOffer) {\n\t\t\t\t\tresolve((window as IWindow).Buddy!);\n\t\t\t\t} else {\n\t\t\t\t\treject(new Error('Buddy Offer Element not available'));\n\t\t\t\t}\n\t\t\t} else if (!script) {\n\t\t\t\tscript = injectScript(options);\n\t\t\t}\n\n\t\t\tscript.addEventListener('load', () => {\n\t\t\t\tif ((window as IWindow).Buddy?.createOffer) {\n\t\t\t\t\tresolve((window as IWindow).Buddy!);\n\t\t\t\t} else {\n\t\t\t\t\treject(new Error('Buddy Offer Element not available'));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tscript.addEventListener('error', () => {\n\t\t\t\treject(new Error('Failed to load Buddy Offer Element'));\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\t});\n\n\treturn scriptPromise;\n};\n","import { useEffect, useState } from 'react';\nimport { findScript } from '../util';\nimport type { IWindow, ConfigObject } from '../interface';\n\nfunction useConfig(src: string) {\n\tconst [config, setConfig] = useState<ConfigObject | null>(null);\n\tconst [isLoading, setIsLoading] = useState(true);\n\n\tconst hasConfig = typeof window !== 'undefined';\n\n\tuseEffect(() => {\n\t\tlet script = findScript(src);\n\n\t\tif (!script) {\n\t\t\tscript = document.createElement('script');\n\t\t\tscript.src = src;\n\n\t\t\tscript.onload = () => {\n\t\t\t\t// Assuming the script sets a global variable named 'config'\n\t\t\t\tif (hasConfig) {\n\t\t\t\t\tsetConfig((window as IWindow).Buddy!.config!);\n\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdocument.body.appendChild(script);\n\t\t} else {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn('Config script is already loaded.');\n\t\t\tif (hasConfig) {\n\t\t\t\tsetConfig((window as IWindow).Buddy!.config!);\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (script) {\n\t\t\t\tdocument.body.removeChild(script);\n\t\t\t}\n\t\t};\n\t}, [src]);\n\n\treturn { config, isLoading };\n}\n\nexport default useConfig;\n","import { useEffect, useRef } from 'react';\n\nconst useUpdateEffect: typeof useEffect = (effect, deps) => {\n\tconst isFirstMount = useRef<boolean>(true);\n\t// need to return only in the else condition in case a cleanup func is passed in effect.\n\t// eslint-disable-next-line consistent-return\n\tuseEffect(() => {\n\t\tif (isFirstMount) {\n\t\t\tisFirstMount.current = false;\n\t\t} else {\n\t\t\treturn effect();\n\t\t}\n\t}, deps);\n};\n\nexport default useUpdateEffect;\n","import React from 'react';\nimport { useUpdateEffect } from '../hooks';\nimport { loadScript, updateOffer } from '../util';\nimport type { BuddyOfferElementProps } from '../interface';\n\nfunction BuddyOfferElement(options: BuddyOfferElementProps) {\n\tconst getScript = async () => {\n\t\ttry {\n\t\t\tawait loadScript(options);\n\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(error);\n\t\t}\n\t};\n\tgetScript();\n\n\tuseUpdateEffect(() => {\n\t\tupdateOffer(options);\n\t}, [options]);\n\n\treturn (\n\t\t<div id=\"buddy_offer\" />\n\t);\n}\n\nexport default BuddyOfferElement;\n"],"names":["EXISTING_SCRIPT_MESSAGE","SCRIPTS","LOCAL","URL","DEVELOPMENT","TESTING","STAGING","PRODUCTION","STAGES","Object","keys","defaultOptions","stage","isEmptyOrNil","value","isNil","val","undefined","includes","isEmptyStr","str","trim","length","isEmptyObjOrArr","obj","Array","isArray","validatePropertiesOfObject","propsToCheck","emptyProps","filter","prop","displayMissingProps","reduce","prev","current","i","isLastEl","findScript","url","scripts","from","document","querySelectorAll","find","src","startsWith","findOfferScript","matchedScript","updateOffer","options","window","Buddy","error","console","createOffer","injectScript","finalOptions","script","createElement","onload","body","appendChild","scriptPromise","loadScript","Promise","resolve","reject","warn","requiredProps","missingRequiredProps","Error","msg","join","addEventListener","useConfig","useState","config","setConfig","isLoading","setIsLoading","hasConfig","useEffect","removeChild","useUpdateEffect","effect","deps","isFirstMount","useRef","BuddyOfferElement","getScript","React","id"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/util/dictionary.ts","../src/util/index.ts","../src/hooks/useConfig.tsx","../src/hooks/useUpdateEffect.tsx","../src/components/BuddyOfferElement.tsx"],"sourcesContent":["const EXISTING_SCRIPT_MESSAGE = 'Buddy Offer Script is already loaded.';\n\nconst SCRIPTS = {\n\tLOCAL: {\n\t\tURL: 'http://localhost:8008/index.js',\n\t},\n\t// TODO: Delete this in favor of \"testing\", once we're sure nothing is using it.\n\tDEVELOPMENT: {\n\t\tURL: 'https://js.buddy.insure/v2/dev/index.js',\n\t},\n\tTESTING: {\n\t\tURL: 'https://js.buddy.insure/v2/testing/index.js',\n\t},\n\tSTAGING: {\n\t\tURL: 'https://js.buddy.insure/v2/staging/index.js',\n\t},\n\tPRODUCTION: {\n\t\tURL: 'https://js.buddy.insure/v2/index.js',\n\t},\n} as const;\n\nconst STAGES = Object.keys(SCRIPTS);\n\nexport {\n\tEXISTING_SCRIPT_MESSAGE,\n\tSCRIPTS,\n\tSTAGES,\n};\n","import { EXISTING_SCRIPT_MESSAGE, SCRIPTS, STAGES } from './dictionary';\nimport type { BuddyObject, IWindow } from '../interface';\n\ntype IStages = keyof typeof SCRIPTS;\n\nconst defaultOptions = {\n\tstage: 'STAGING',\n} as const;\n\nconst isEmptyOrNil = (value: any) => {\n\tconst isNil = (val: any) => [undefined, null].includes(val);\n\tconst isEmptyStr = (str: any) => typeof str === 'string' && str.trim().length === 0;\n\tconst isEmptyObjOrArr = (obj: any) => (typeof obj === 'object' && obj.length === undefined &&\n\t\tObject.keys(obj).length === 0) || (Array.isArray(obj) && obj.length === 0);\n\treturn (isNil(value) || isEmptyStr(value) || isEmptyObjOrArr(value));\n};\n\nconst validatePropertiesOfObject = (propsToCheck: string[], obj: Record<string, any>) => {\n\tconst emptyProps = propsToCheck.filter((prop) => isEmptyOrNil(obj[prop]));\n\tif (emptyProps.length) {\n\t\tconst displayMissingProps = emptyProps.reduce((prev, current, i) => {\n\t\t\tconst isLastEl = i === emptyProps.length - 1;\n\t\t\treturn isLastEl ? `${prev}${current}.` : `${prev}${current}, `;\n\t\t}, '');\n\t\treturn `The following props are required: ${displayMissingProps}`;\n\t}\n\treturn null;\n};\n\nexport const findScript = (url: string) => {\n\tconst scripts = Array.from(document.querySelectorAll('script'));\n\treturn scripts.find(({ src }) => src.startsWith(url));\n};\n\nexport const findOfferScript = (stage: IStages = defaultOptions.stage) => {\n\tconst { URL } = SCRIPTS[stage];\n\tconst matchedScript = findScript(URL);\n\treturn matchedScript;\n};\n\nexport const updateOffer = (options: Record<string, any>) => {\n\tif ((window as IWindow).Buddy) {\n\t\ttry {\n\t\t\t(window as IWindow).Buddy!.updateOffer(options);\n\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n};\n\nconst createOffer = (options: Record<string, any>) => {\n\tif ((window as IWindow).Buddy) {\n\t\ttry {\n\t\t\t(window as IWindow).Buddy!.createOffer(options);\n\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n};\n\nconst injectScript = (options: Record<string, any>) => {\n\tconst finalOptions = { ...defaultOptions, ...options };\n\tconst script = document.createElement('script');\n\tscript.src = `${SCRIPTS[finalOptions.stage].URL}`;\n\tscript.onload = () => createOffer(finalOptions);\n\tdocument.body.appendChild(script);\n\treturn script;\n};\n\nlet scriptPromise: Promise<BuddyObject | null> | null = null;\n\nexport const loadScript = (options: Record<string, any>) => {\n\t// Ensure that we only attempt to script once\n\tif (scriptPromise !== null) {\n\t\treturn scriptPromise;\n\t}\n\n\tscriptPromise = new Promise((resolve, reject) => {\n\t\tif (typeof window === 'undefined') {\n\t\t\t// Resolve to null when imported server side. This makes the module\n\t\t\t// safe to import in an isomorphic code base.\n\t\t\tresolve(null);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((window as IWindow).Buddy?.createOffer) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(EXISTING_SCRIPT_MESSAGE);\n\t\t\t(window as IWindow).Buddy?.createOffer(options);\n\t\t\tresolve((window as IWindow).Buddy!);\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst requiredProps = ['ion', 'partnerID'];\n\t\t\tconst missingRequiredProps = validatePropertiesOfObject(requiredProps, options);\n\n\t\t\tif (missingRequiredProps) {\n\t\t\t\treject(new Error(missingRequiredProps));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!options?.stage) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(`No stage passed to BuddyOfferElement. Using default stage: ${defaultOptions.stage}`);\n\t\t\t}\n\n\t\t\t// If stage is passed, ensure it is one of the prescribed options.\n\t\t\tif (options?.stage && !STAGES.includes(options.stage)) {\n\t\t\t\tconst msg = `The stage prop must be one of: [${STAGES.join(' , ')}], but received \"${options.stage}.\"`;\n\t\t\t\treject(new Error(msg));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet script = findOfferScript(options?.stage);\n\n\t\t\tif (script) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(EXISTING_SCRIPT_MESSAGE);\n\t\t\t\tif ((window as IWindow).Buddy?.createOffer) {\n\t\t\t\t\tresolve((window as IWindow).Buddy!);\n\t\t\t\t} else {\n\t\t\t\t\treject(new Error('Buddy Offer Element not available'));\n\t\t\t\t}\n\t\t\t} else if (!script) {\n\t\t\t\tscript = injectScript(options);\n\t\t\t}\n\n\t\t\tscript.addEventListener('load', () => {\n\t\t\t\tif ((window as IWindow).Buddy?.createOffer) {\n\t\t\t\t\tresolve((window as IWindow).Buddy!);\n\t\t\t\t} else {\n\t\t\t\t\treject(new Error('Buddy Offer Element not available'));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tscript.addEventListener('error', () => {\n\t\t\t\treject(new Error('Failed to load Buddy Offer Element'));\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\t});\n\n\treturn scriptPromise;\n};\n\n// This is used to clear our reference to the script promise when the component is unmounted.\nexport const clearScriptPromise = () => {\n\tscriptPromise = null;\n};\n","import { useEffect, useState } from 'react';\nimport { findScript } from '../util';\nimport type { IWindow, ConfigObject } from '../interface';\n\nfunction useConfig(src: string) {\n\tconst [config, setConfig] = useState<ConfigObject | null>(null);\n\tconst [isLoading, setIsLoading] = useState(true);\n\n\tconst hasConfig = typeof window !== 'undefined';\n\n\tuseEffect(() => {\n\t\tlet script = findScript(src);\n\n\t\tif (!script) {\n\t\t\tscript = document.createElement('script');\n\t\t\tscript.src = src;\n\n\t\t\tscript.onload = () => {\n\t\t\t\t// Assuming the script sets a global variable named 'config'\n\t\t\t\tif (hasConfig) {\n\t\t\t\t\tsetConfig((window as IWindow).Buddy!.config!);\n\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdocument.body.appendChild(script);\n\t\t} else {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn('Config script is already loaded.');\n\t\t\tif (hasConfig) {\n\t\t\t\tsetConfig((window as IWindow).Buddy!.config!);\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (script) {\n\t\t\t\tdocument.body.removeChild(script);\n\t\t\t}\n\t\t};\n\t}, [src]);\n\n\treturn { config, isLoading };\n}\n\nexport default useConfig;\n","import { useEffect, useRef } from 'react';\n\nconst useUpdateEffect: typeof useEffect = (effect, deps) => {\n\tconst isFirstMount = useRef<boolean>(true);\n\t// need to return only in the else condition in case a cleanup func is passed in effect.\n\t// eslint-disable-next-line consistent-return\n\tuseEffect(() => {\n\t\tif (isFirstMount.current) {\n\t\t\tisFirstMount.current = false;\n\t\t} else {\n\t\t\treturn effect();\n\t\t}\n\t}, deps);\n};\n\nexport default useUpdateEffect;\n","import React, { useEffect } from 'react';\nimport { useUpdateEffect } from '../hooks';\nimport { loadScript, clearScriptPromise, updateOffer } from '../util';\nimport type { BuddyOfferElementProps } from '../interface';\n\nfunction BuddyOfferElement(options: BuddyOfferElementProps) {\n\tuseEffect(() => {\n\t\tconst getScript = async () => {\n\t\t\ttry {\n\t\t\t\tawait loadScript(options);\n\t\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t};\n\t\tgetScript();\n\t\treturn () => {\n\t\t\tclearScriptPromise();\n\t\t};\n\t}, []);\n\n\tuseUpdateEffect(() => {\n\t\tupdateOffer(options);\n\t}, [options]);\n\n\treturn (\n\t\t<div id=\"buddy_offer\" />\n\t);\n}\n\nexport default BuddyOfferElement;\n"],"names":["EXISTING_SCRIPT_MESSAGE","SCRIPTS","LOCAL","URL","DEVELOPMENT","TESTING","STAGING","PRODUCTION","STAGES","Object","keys","defaultOptions","stage","isEmptyOrNil","value","isNil","val","undefined","includes","isEmptyStr","str","trim","length","isEmptyObjOrArr","obj","Array","isArray","validatePropertiesOfObject","propsToCheck","emptyProps","filter","prop","displayMissingProps","reduce","prev","current","i","isLastEl","findScript","url","scripts","from","document","querySelectorAll","find","src","startsWith","findOfferScript","matchedScript","updateOffer","options","window","Buddy","error","console","createOffer","injectScript","finalOptions","script","createElement","onload","body","appendChild","scriptPromise","loadScript","Promise","resolve","reject","warn","requiredProps","missingRequiredProps","Error","msg","join","addEventListener","clearScriptPromise","useConfig","useState","config","setConfig","isLoading","setIsLoading","hasConfig","useEffect","removeChild","useUpdateEffect","effect","deps","isFirstMount","useRef","BuddyOfferElement","getScript","React","id"],"mappings":"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"}
@@ -132,8 +132,11 @@ const loadScript = options => {
132
132
  }
133
133
 
134
134
  if ((_window$Buddy = window.Buddy) != null && _window$Buddy.createOffer) {
135
+ var _window$Buddy2;
136
+
135
137
  // eslint-disable-next-line no-console
136
138
  console.warn(EXISTING_SCRIPT_MESSAGE);
139
+ (_window$Buddy2 = window.Buddy) == null ? void 0 : _window$Buddy2.createOffer(options);
137
140
  resolve(window.Buddy);
138
141
  return;
139
142
  }
@@ -162,12 +165,12 @@ const loadScript = options => {
162
165
  let script = findOfferScript(options == null ? void 0 : options.stage);
163
166
 
164
167
  if (script) {
165
- var _window$Buddy2;
168
+ var _window$Buddy3;
166
169
 
167
170
  // eslint-disable-next-line no-console
168
171
  console.warn(EXISTING_SCRIPT_MESSAGE);
169
172
 
170
- if ((_window$Buddy2 = window.Buddy) != null && _window$Buddy2.createOffer) {
173
+ if ((_window$Buddy3 = window.Buddy) != null && _window$Buddy3.createOffer) {
171
174
  resolve(window.Buddy);
172
175
  } else {
173
176
  reject(new Error('Buddy Offer Element not available'));
@@ -177,9 +180,9 @@ const loadScript = options => {
177
180
  }
178
181
 
179
182
  script.addEventListener('load', () => {
180
- var _window$Buddy3;
183
+ var _window$Buddy4;
181
184
 
182
- if ((_window$Buddy3 = window.Buddy) != null && _window$Buddy3.createOffer) {
185
+ if ((_window$Buddy4 = window.Buddy) != null && _window$Buddy4.createOffer) {
183
186
  resolve(window.Buddy);
184
187
  } else {
185
188
  reject(new Error('Buddy Offer Element not available'));
@@ -193,6 +196,10 @@ const loadScript = options => {
193
196
  }
194
197
  });
195
198
  return scriptPromise;
199
+ }; // This is used to clear our reference to the script promise when the component is unmounted.
200
+
201
+ const clearScriptPromise = () => {
202
+ scriptPromise = null;
196
203
  };
197
204
 
198
205
  function useConfig(src) {
@@ -242,7 +249,7 @@ const useUpdateEffect = (effect, deps) => {
242
249
  // eslint-disable-next-line consistent-return
243
250
 
244
251
  useEffect(() => {
245
- if (isFirstMount) {
252
+ if (isFirstMount.current) {
246
253
  isFirstMount.current = false;
247
254
  } else {
248
255
  return effect();
@@ -251,16 +258,21 @@ const useUpdateEffect = (effect, deps) => {
251
258
  };
252
259
 
253
260
  function BuddyOfferElement(options) {
254
- const getScript = async () => {
255
- try {
256
- await loadScript(options);
257
- } catch (error) {
258
- // eslint-disable-next-line no-console
259
- console.error(error);
260
- }
261
- };
261
+ useEffect(() => {
262
+ const getScript = async () => {
263
+ try {
264
+ await loadScript(options);
265
+ } catch (error) {
266
+ // eslint-disable-next-line no-console
267
+ console.error(error);
268
+ }
269
+ };
262
270
 
263
- getScript();
271
+ getScript();
272
+ return () => {
273
+ clearScriptPromise();
274
+ };
275
+ }, []);
264
276
  useUpdateEffect(() => {
265
277
  updateOffer(options);
266
278
  }, [options]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.mjs","sources":["../src/util/dictionary.ts","../src/util/index.ts","../src/hooks/useConfig.tsx","../src/hooks/useUpdateEffect.tsx","../src/components/BuddyOfferElement.tsx"],"sourcesContent":["const EXISTING_SCRIPT_MESSAGE = 'Buddy Offer Script is already loaded.';\n\nconst SCRIPTS = {\n\tLOCAL: {\n\t\tURL: 'http://localhost:8008/index.js',\n\t},\n\t// TODO: Delete this in favor of \"testing\", once we're sure nothing is using it.\n\tDEVELOPMENT: {\n\t\tURL: 'https://js.buddy.insure/v2/dev/index.js',\n\t},\n\tTESTING: {\n\t\tURL: 'https://js.buddy.insure/v2/testing/index.js',\n\t},\n\tSTAGING: {\n\t\tURL: 'https://js.buddy.insure/v2/staging/index.js',\n\t},\n\tPRODUCTION: {\n\t\tURL: 'https://js.buddy.insure/v2/index.js',\n\t},\n} as const;\n\nconst STAGES = Object.keys(SCRIPTS);\n\nexport {\n\tEXISTING_SCRIPT_MESSAGE,\n\tSCRIPTS,\n\tSTAGES,\n};\n","import { EXISTING_SCRIPT_MESSAGE, SCRIPTS, STAGES } from './dictionary';\nimport type { BuddyObject, IWindow } from '../interface';\n\ntype IStages = keyof typeof SCRIPTS;\n\nconst defaultOptions = {\n\tstage: 'STAGING',\n} as const;\n\nconst isEmptyOrNil = (value: any) => {\n\tconst isNil = (val: any) => [undefined, null].includes(val);\n\tconst isEmptyStr = (str: any) => typeof str === 'string' && str.trim().length === 0;\n\tconst isEmptyObjOrArr = (obj: any) => (typeof obj === 'object' && obj.length === undefined &&\n\t\tObject.keys(obj).length === 0) || (Array.isArray(obj) && obj.length === 0);\n\treturn (isNil(value) || isEmptyStr(value) || isEmptyObjOrArr(value));\n};\n\nconst validatePropertiesOfObject = (propsToCheck: string[], obj: Record<string, any>) => {\n\tconst emptyProps = propsToCheck.filter((prop) => isEmptyOrNil(obj[prop]));\n\tif (emptyProps.length) {\n\t\tconst displayMissingProps = emptyProps.reduce((prev, current, i) => {\n\t\t\tconst isLastEl = i === emptyProps.length - 1;\n\t\t\treturn isLastEl ? `${prev}${current}.` : `${prev}${current}, `;\n\t\t}, '');\n\t\treturn `The following props are required: ${displayMissingProps}`;\n\t}\n\treturn null;\n};\n\nexport const findScript = (url: string) => {\n\tconst scripts = Array.from(document.querySelectorAll('script'));\n\treturn scripts.find(({ src }) => src.startsWith(url));\n};\n\nexport const findOfferScript = (stage: IStages = defaultOptions.stage) => {\n\tconst { URL } = SCRIPTS[stage];\n\tconst matchedScript = findScript(URL);\n\treturn matchedScript;\n};\n\nexport const updateOffer = (options: Record<string, any>) => {\n\tif ((window as IWindow).Buddy) {\n\t\ttry {\n\t\t\t(window as IWindow).Buddy!.updateOffer(options);\n\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n};\n\nconst createOffer = (options: Record<string, any>) => {\n\tif ((window as IWindow).Buddy) {\n\t\ttry {\n\t\t\t(window as IWindow).Buddy!.createOffer(options);\n\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n};\n\nconst injectScript = (options: Record<string, any>) => {\n\tconst finalOptions = { ...defaultOptions, ...options };\n\tconst script = document.createElement('script');\n\tscript.src = `${SCRIPTS[finalOptions.stage].URL}`;\n\tscript.onload = () => createOffer(finalOptions);\n\tdocument.body.appendChild(script);\n\treturn script;\n};\n\nlet scriptPromise: Promise<BuddyObject | null> | null = null;\n\nexport const loadScript = (options: Record<string, any>) => {\n\t// Ensure that we only attempt to script once\n\tif (scriptPromise !== null) {\n\t\treturn scriptPromise;\n\t}\n\n\tscriptPromise = new Promise((resolve, reject) => {\n\t\tif (typeof window === 'undefined') {\n\t\t\t// Resolve to null when imported server side. This makes the module\n\t\t\t// safe to import in an isomorphic code base.\n\t\t\tresolve(null);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((window as IWindow).Buddy?.createOffer) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(EXISTING_SCRIPT_MESSAGE);\n\t\t\tresolve((window as IWindow).Buddy!);\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst requiredProps = ['ion', 'partnerID'];\n\t\t\tconst missingRequiredProps = validatePropertiesOfObject(requiredProps, options);\n\n\t\t\tif (missingRequiredProps) {\n\t\t\t\treject(new Error(missingRequiredProps));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!options?.stage) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(`No stage passed to BuddyOfferElement. Using default stage: ${defaultOptions.stage}`);\n\t\t\t}\n\n\t\t\t// If stage is passed, ensure it is one of the prescribed options.\n\t\t\tif (options?.stage && !STAGES.includes(options.stage)) {\n\t\t\t\tconst msg = `The stage prop must be one of: [${STAGES.join(' , ')}], but received \"${options.stage}.\"`;\n\t\t\t\treject(new Error(msg));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet script = findOfferScript(options?.stage);\n\n\t\t\tif (script) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(EXISTING_SCRIPT_MESSAGE);\n\t\t\t\tif ((window as IWindow).Buddy?.createOffer) {\n\t\t\t\t\tresolve((window as IWindow).Buddy!);\n\t\t\t\t} else {\n\t\t\t\t\treject(new Error('Buddy Offer Element not available'));\n\t\t\t\t}\n\t\t\t} else if (!script) {\n\t\t\t\tscript = injectScript(options);\n\t\t\t}\n\n\t\t\tscript.addEventListener('load', () => {\n\t\t\t\tif ((window as IWindow).Buddy?.createOffer) {\n\t\t\t\t\tresolve((window as IWindow).Buddy!);\n\t\t\t\t} else {\n\t\t\t\t\treject(new Error('Buddy Offer Element not available'));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tscript.addEventListener('error', () => {\n\t\t\t\treject(new Error('Failed to load Buddy Offer Element'));\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\t});\n\n\treturn scriptPromise;\n};\n","import { useEffect, useState } from 'react';\nimport { findScript } from '../util';\nimport type { IWindow, ConfigObject } from '../interface';\n\nfunction useConfig(src: string) {\n\tconst [config, setConfig] = useState<ConfigObject | null>(null);\n\tconst [isLoading, setIsLoading] = useState(true);\n\n\tconst hasConfig = typeof window !== 'undefined';\n\n\tuseEffect(() => {\n\t\tlet script = findScript(src);\n\n\t\tif (!script) {\n\t\t\tscript = document.createElement('script');\n\t\t\tscript.src = src;\n\n\t\t\tscript.onload = () => {\n\t\t\t\t// Assuming the script sets a global variable named 'config'\n\t\t\t\tif (hasConfig) {\n\t\t\t\t\tsetConfig((window as IWindow).Buddy!.config!);\n\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdocument.body.appendChild(script);\n\t\t} else {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn('Config script is already loaded.');\n\t\t\tif (hasConfig) {\n\t\t\t\tsetConfig((window as IWindow).Buddy!.config!);\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (script) {\n\t\t\t\tdocument.body.removeChild(script);\n\t\t\t}\n\t\t};\n\t}, [src]);\n\n\treturn { config, isLoading };\n}\n\nexport default useConfig;\n","import { useEffect, useRef } from 'react';\n\nconst useUpdateEffect: typeof useEffect = (effect, deps) => {\n\tconst isFirstMount = useRef<boolean>(true);\n\t// need to return only in the else condition in case a cleanup func is passed in effect.\n\t// eslint-disable-next-line consistent-return\n\tuseEffect(() => {\n\t\tif (isFirstMount) {\n\t\t\tisFirstMount.current = false;\n\t\t} else {\n\t\t\treturn effect();\n\t\t}\n\t}, deps);\n};\n\nexport default useUpdateEffect;\n","import React from 'react';\nimport { useUpdateEffect } from '../hooks';\nimport { loadScript, updateOffer } from '../util';\nimport type { BuddyOfferElementProps } from '../interface';\n\nfunction BuddyOfferElement(options: BuddyOfferElementProps) {\n\tconst getScript = async () => {\n\t\ttry {\n\t\t\tawait loadScript(options);\n\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(error);\n\t\t}\n\t};\n\tgetScript();\n\n\tuseUpdateEffect(() => {\n\t\tupdateOffer(options);\n\t}, [options]);\n\n\treturn (\n\t\t<div id=\"buddy_offer\" />\n\t);\n}\n\nexport default BuddyOfferElement;\n"],"names":["EXISTING_SCRIPT_MESSAGE","SCRIPTS","LOCAL","URL","DEVELOPMENT","TESTING","STAGING","PRODUCTION","STAGES","Object","keys","defaultOptions","stage","isEmptyOrNil","value","isNil","val","undefined","includes","isEmptyStr","str","trim","length","isEmptyObjOrArr","obj","Array","isArray","validatePropertiesOfObject","propsToCheck","emptyProps","filter","prop","displayMissingProps","reduce","prev","current","i","isLastEl","findScript","url","scripts","from","document","querySelectorAll","find","src","startsWith","findOfferScript","matchedScript","updateOffer","options","window","Buddy","error","console","createOffer","injectScript","finalOptions","script","createElement","onload","body","appendChild","scriptPromise","loadScript","Promise","resolve","reject","warn","requiredProps","missingRequiredProps","Error","msg","join","addEventListener","useConfig","config","setConfig","useState","isLoading","setIsLoading","hasConfig","useEffect","removeChild","useUpdateEffect","effect","deps","isFirstMount","useRef","BuddyOfferElement","getScript","React","id"],"mappings":"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"}
1
+ {"version":3,"file":"index.modern.mjs","sources":["../src/util/dictionary.ts","../src/util/index.ts","../src/hooks/useConfig.tsx","../src/hooks/useUpdateEffect.tsx","../src/components/BuddyOfferElement.tsx"],"sourcesContent":["const EXISTING_SCRIPT_MESSAGE = 'Buddy Offer Script is already loaded.';\n\nconst SCRIPTS = {\n\tLOCAL: {\n\t\tURL: 'http://localhost:8008/index.js',\n\t},\n\t// TODO: Delete this in favor of \"testing\", once we're sure nothing is using it.\n\tDEVELOPMENT: {\n\t\tURL: 'https://js.buddy.insure/v2/dev/index.js',\n\t},\n\tTESTING: {\n\t\tURL: 'https://js.buddy.insure/v2/testing/index.js',\n\t},\n\tSTAGING: {\n\t\tURL: 'https://js.buddy.insure/v2/staging/index.js',\n\t},\n\tPRODUCTION: {\n\t\tURL: 'https://js.buddy.insure/v2/index.js',\n\t},\n} as const;\n\nconst STAGES = Object.keys(SCRIPTS);\n\nexport {\n\tEXISTING_SCRIPT_MESSAGE,\n\tSCRIPTS,\n\tSTAGES,\n};\n","import { EXISTING_SCRIPT_MESSAGE, SCRIPTS, STAGES } from './dictionary';\nimport type { BuddyObject, IWindow } from '../interface';\n\ntype IStages = keyof typeof SCRIPTS;\n\nconst defaultOptions = {\n\tstage: 'STAGING',\n} as const;\n\nconst isEmptyOrNil = (value: any) => {\n\tconst isNil = (val: any) => [undefined, null].includes(val);\n\tconst isEmptyStr = (str: any) => typeof str === 'string' && str.trim().length === 0;\n\tconst isEmptyObjOrArr = (obj: any) => (typeof obj === 'object' && obj.length === undefined &&\n\t\tObject.keys(obj).length === 0) || (Array.isArray(obj) && obj.length === 0);\n\treturn (isNil(value) || isEmptyStr(value) || isEmptyObjOrArr(value));\n};\n\nconst validatePropertiesOfObject = (propsToCheck: string[], obj: Record<string, any>) => {\n\tconst emptyProps = propsToCheck.filter((prop) => isEmptyOrNil(obj[prop]));\n\tif (emptyProps.length) {\n\t\tconst displayMissingProps = emptyProps.reduce((prev, current, i) => {\n\t\t\tconst isLastEl = i === emptyProps.length - 1;\n\t\t\treturn isLastEl ? `${prev}${current}.` : `${prev}${current}, `;\n\t\t}, '');\n\t\treturn `The following props are required: ${displayMissingProps}`;\n\t}\n\treturn null;\n};\n\nexport const findScript = (url: string) => {\n\tconst scripts = Array.from(document.querySelectorAll('script'));\n\treturn scripts.find(({ src }) => src.startsWith(url));\n};\n\nexport const findOfferScript = (stage: IStages = defaultOptions.stage) => {\n\tconst { URL } = SCRIPTS[stage];\n\tconst matchedScript = findScript(URL);\n\treturn matchedScript;\n};\n\nexport const updateOffer = (options: Record<string, any>) => {\n\tif ((window as IWindow).Buddy) {\n\t\ttry {\n\t\t\t(window as IWindow).Buddy!.updateOffer(options);\n\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n};\n\nconst createOffer = (options: Record<string, any>) => {\n\tif ((window as IWindow).Buddy) {\n\t\ttry {\n\t\t\t(window as IWindow).Buddy!.createOffer(options);\n\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n};\n\nconst injectScript = (options: Record<string, any>) => {\n\tconst finalOptions = { ...defaultOptions, ...options };\n\tconst script = document.createElement('script');\n\tscript.src = `${SCRIPTS[finalOptions.stage].URL}`;\n\tscript.onload = () => createOffer(finalOptions);\n\tdocument.body.appendChild(script);\n\treturn script;\n};\n\nlet scriptPromise: Promise<BuddyObject | null> | null = null;\n\nexport const loadScript = (options: Record<string, any>) => {\n\t// Ensure that we only attempt to script once\n\tif (scriptPromise !== null) {\n\t\treturn scriptPromise;\n\t}\n\n\tscriptPromise = new Promise((resolve, reject) => {\n\t\tif (typeof window === 'undefined') {\n\t\t\t// Resolve to null when imported server side. This makes the module\n\t\t\t// safe to import in an isomorphic code base.\n\t\t\tresolve(null);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((window as IWindow).Buddy?.createOffer) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(EXISTING_SCRIPT_MESSAGE);\n\t\t\t(window as IWindow).Buddy?.createOffer(options);\n\t\t\tresolve((window as IWindow).Buddy!);\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst requiredProps = ['ion', 'partnerID'];\n\t\t\tconst missingRequiredProps = validatePropertiesOfObject(requiredProps, options);\n\n\t\t\tif (missingRequiredProps) {\n\t\t\t\treject(new Error(missingRequiredProps));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!options?.stage) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(`No stage passed to BuddyOfferElement. Using default stage: ${defaultOptions.stage}`);\n\t\t\t}\n\n\t\t\t// If stage is passed, ensure it is one of the prescribed options.\n\t\t\tif (options?.stage && !STAGES.includes(options.stage)) {\n\t\t\t\tconst msg = `The stage prop must be one of: [${STAGES.join(' , ')}], but received \"${options.stage}.\"`;\n\t\t\t\treject(new Error(msg));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet script = findOfferScript(options?.stage);\n\n\t\t\tif (script) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(EXISTING_SCRIPT_MESSAGE);\n\t\t\t\tif ((window as IWindow).Buddy?.createOffer) {\n\t\t\t\t\tresolve((window as IWindow).Buddy!);\n\t\t\t\t} else {\n\t\t\t\t\treject(new Error('Buddy Offer Element not available'));\n\t\t\t\t}\n\t\t\t} else if (!script) {\n\t\t\t\tscript = injectScript(options);\n\t\t\t}\n\n\t\t\tscript.addEventListener('load', () => {\n\t\t\t\tif ((window as IWindow).Buddy?.createOffer) {\n\t\t\t\t\tresolve((window as IWindow).Buddy!);\n\t\t\t\t} else {\n\t\t\t\t\treject(new Error('Buddy Offer Element not available'));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tscript.addEventListener('error', () => {\n\t\t\t\treject(new Error('Failed to load Buddy Offer Element'));\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\t});\n\n\treturn scriptPromise;\n};\n\n// This is used to clear our reference to the script promise when the component is unmounted.\nexport const clearScriptPromise = () => {\n\tscriptPromise = null;\n};\n","import { useEffect, useState } from 'react';\nimport { findScript } from '../util';\nimport type { IWindow, ConfigObject } from '../interface';\n\nfunction useConfig(src: string) {\n\tconst [config, setConfig] = useState<ConfigObject | null>(null);\n\tconst [isLoading, setIsLoading] = useState(true);\n\n\tconst hasConfig = typeof window !== 'undefined';\n\n\tuseEffect(() => {\n\t\tlet script = findScript(src);\n\n\t\tif (!script) {\n\t\t\tscript = document.createElement('script');\n\t\t\tscript.src = src;\n\n\t\t\tscript.onload = () => {\n\t\t\t\t// Assuming the script sets a global variable named 'config'\n\t\t\t\tif (hasConfig) {\n\t\t\t\t\tsetConfig((window as IWindow).Buddy!.config!);\n\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdocument.body.appendChild(script);\n\t\t} else {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn('Config script is already loaded.');\n\t\t\tif (hasConfig) {\n\t\t\t\tsetConfig((window as IWindow).Buddy!.config!);\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (script) {\n\t\t\t\tdocument.body.removeChild(script);\n\t\t\t}\n\t\t};\n\t}, [src]);\n\n\treturn { config, isLoading };\n}\n\nexport default useConfig;\n","import { useEffect, useRef } from 'react';\n\nconst useUpdateEffect: typeof useEffect = (effect, deps) => {\n\tconst isFirstMount = useRef<boolean>(true);\n\t// need to return only in the else condition in case a cleanup func is passed in effect.\n\t// eslint-disable-next-line consistent-return\n\tuseEffect(() => {\n\t\tif (isFirstMount.current) {\n\t\t\tisFirstMount.current = false;\n\t\t} else {\n\t\t\treturn effect();\n\t\t}\n\t}, deps);\n};\n\nexport default useUpdateEffect;\n","import React, { useEffect } from 'react';\nimport { useUpdateEffect } from '../hooks';\nimport { loadScript, clearScriptPromise, updateOffer } from '../util';\nimport type { BuddyOfferElementProps } from '../interface';\n\nfunction BuddyOfferElement(options: BuddyOfferElementProps) {\n\tuseEffect(() => {\n\t\tconst getScript = async () => {\n\t\t\ttry {\n\t\t\t\tawait loadScript(options);\n\t\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t};\n\t\tgetScript();\n\t\treturn () => {\n\t\t\tclearScriptPromise();\n\t\t};\n\t}, []);\n\n\tuseUpdateEffect(() => {\n\t\tupdateOffer(options);\n\t}, [options]);\n\n\treturn (\n\t\t<div id=\"buddy_offer\" />\n\t);\n}\n\nexport default BuddyOfferElement;\n"],"names":["EXISTING_SCRIPT_MESSAGE","SCRIPTS","LOCAL","URL","DEVELOPMENT","TESTING","STAGING","PRODUCTION","STAGES","Object","keys","defaultOptions","stage","isEmptyOrNil","value","isNil","val","undefined","includes","isEmptyStr","str","trim","length","isEmptyObjOrArr","obj","Array","isArray","validatePropertiesOfObject","propsToCheck","emptyProps","filter","prop","displayMissingProps","reduce","prev","current","i","isLastEl","findScript","url","scripts","from","document","querySelectorAll","find","src","startsWith","findOfferScript","matchedScript","updateOffer","options","window","Buddy","error","console","createOffer","injectScript","finalOptions","script","createElement","onload","body","appendChild","scriptPromise","loadScript","Promise","resolve","reject","warn","requiredProps","missingRequiredProps","Error","msg","join","addEventListener","clearScriptPromise","useConfig","config","setConfig","useState","isLoading","setIsLoading","hasConfig","useEffect","removeChild","useUpdateEffect","effect","deps","isFirstMount","useRef","BuddyOfferElement","getScript","React","id"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BuddyOfferElement.d.ts","sourceRoot":"","sources":["../../src/components/BuddyOfferElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,iBAAS,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,qBAkBzD;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"BuddyOfferElement.d.ts","sourceRoot":"","sources":["../../src/components/BuddyOfferElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAGzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,iBAAS,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,qBAuBzD;AAED,eAAe,iBAAiB,CAAC"}
@@ -48,8 +48,13 @@ interface EventObject {
48
48
  eventType: string;
49
49
  data: EventData;
50
50
  }
51
+ interface CustomMessagePayload {
52
+ id: string;
53
+ data: DataObject;
54
+ }
51
55
  type OnAddToCart = (data: DataObject) => void;
52
56
  type OnRemoveFromCart = (data: DataObject) => void;
57
+ type onCustomMessage = (payload: CustomMessagePayload) => void;
53
58
  type ScrollToTopOverride = () => void;
54
59
  type OnUserEvent = (event: EventObject) => void;
55
60
  interface BuddyOfferElementProps {
@@ -63,6 +68,7 @@ interface BuddyOfferElementProps {
63
68
  viewType?: ViewTypes;
64
69
  onAddToCart?: OnAddToCart;
65
70
  onRemoveFromCart?: OnRemoveFromCart;
71
+ onCustomMessage?: onCustomMessage;
66
72
  onUserEvent?: OnUserEvent;
67
73
  overrideScrollToTop?: ScrollToTopOverride;
68
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interface/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interface/index.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,6 @@ export declare const findScript: (url: string) => HTMLScriptElement | undefined;
5
5
  export declare const findOfferScript: (stage?: IStages) => HTMLScriptElement | undefined;
6
6
  export declare const updateOffer: (options: Record<string, any>) => void;
7
7
  export declare const loadScript: (options: Record<string, any>) => Promise<BuddyObject | null>;
8
+ export declare const clearScriptPromise: () => void;
8
9
  export {};
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,OAAO,EAAU,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,cAAc,CAAC;AAEzD,KAAK,OAAO,GAAG,MAAM,OAAO,OAAO,CAAC;AA0BpC,eAAO,MAAM,UAAU,QAAS,MAAM,kCAGrC,CAAC;AAEF,eAAO,MAAM,eAAe,WAAW,OAAO,kCAI7C,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,OAAO,MAAM,EAAE,GAAG,CAAC,SASvD,CAAC;AAwBF,eAAO,MAAM,UAAU,YAAa,OAAO,MAAM,EAAE,GAAG,CAAC,gCAyEtD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,OAAO,EAAU,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,cAAc,CAAC;AAEzD,KAAK,OAAO,GAAG,MAAM,OAAO,OAAO,CAAC;AA0BpC,eAAO,MAAM,UAAU,QAAS,MAAM,kCAGrC,CAAC;AAEF,eAAO,MAAM,eAAe,WAAW,OAAO,kCAI7C,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,OAAO,MAAM,EAAE,GAAG,CAAC,SASvD,CAAC;AAwBF,eAAO,MAAM,UAAU,YAAa,OAAO,MAAM,EAAE,GAAG,CAAC,gCA0EtD,CAAC;AAGF,eAAO,MAAM,kBAAkB,YAE9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buddy-technology/offer-component",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
4
4
  "author": "Buddy Technology",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.modern.mjs",
@@ -19,7 +19,6 @@
19
19
  "scripts": {
20
20
  "build": "NODE_ENV=production microbundle --jsx React.createElement --jsxImportSource react --no-compress --format modern,cjs",
21
21
  "dev": "microbundle watch --jsx React.createElement --jsxImportSource react --no-compress --format modern,cjs",
22
- "deploy": "yarn version",
23
22
  "release": "npx --no-install semantic-release",
24
23
  "test": "jest"
25
24
  },
package/setupTests.ts DELETED
@@ -1,8 +0,0 @@
1
- import '@testing-library/jest-dom';
2
-
3
- const {
4
- TextDecoder, TextEncoder,
5
- } = require('util');
6
-
7
- global.TextEncoder = TextEncoder;
8
- global.TextDecoder = TextDecoder;
@@ -1,12 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "include": [
4
- "**/*.ts",
5
- "**/*.js",
6
- "**/*.tsx",
7
- "**/*.jsx",
8
- ".eslintrc.js",
9
- "release.config.js",
10
- "setupTests.ts",
11
- ],
12
- }