@plasmicpkgs/plasmic-eventbrite 0.0.2
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/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/eventbrite.d.ts +11 -0
- package/dist/hooks/useEventBrite.d.ts +12 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +8 -0
- package/dist/plasmic-eventbrite.cjs.development.js +164 -0
- package/dist/plasmic-eventbrite.cjs.development.js.map +1 -0
- package/dist/plasmic-eventbrite.cjs.production.min.js +2 -0
- package/dist/plasmic-eventbrite.cjs.production.min.js.map +1 -0
- package/dist/plasmic-eventbrite.esm.js +155 -0
- package/dist/plasmic-eventbrite.esm.js.map +1 -0
- package/package.json +53 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 Latipov Abdukhamid
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Plasmic components and registration calls for Eventbrite
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ComponentMeta } from "@plasmicapp/host";
|
|
2
|
+
import React from "react";
|
|
3
|
+
export declare function ensure<T>(x: T | null | undefined): T;
|
|
4
|
+
interface EventbriteProps {
|
|
5
|
+
className?: string;
|
|
6
|
+
eventId?: string;
|
|
7
|
+
text?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const EventbriteMeta: ComponentMeta<EventbriteProps>;
|
|
10
|
+
export declare function Eventbrite({ className, text, eventId }: EventbriteProps): React.JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
eventId?: string;
|
|
3
|
+
modal?: boolean;
|
|
4
|
+
onOrderComplete: () => void;
|
|
5
|
+
promoCode?: string;
|
|
6
|
+
iFrameHeight?: string;
|
|
7
|
+
iFrameAutoAdapt?: string;
|
|
8
|
+
}
|
|
9
|
+
declare const useEventbrite: ({ eventId, modal, onOrderComplete, promoCode, }: Props) => {
|
|
10
|
+
id: string;
|
|
11
|
+
} | null;
|
|
12
|
+
export default useEventbrite;
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
6
|
+
|
|
7
|
+
var registerComponent = _interopDefault(require('@plasmicapp/host/registerComponent'));
|
|
8
|
+
var React = _interopDefault(require('react'));
|
|
9
|
+
var uuid = require('uuid');
|
|
10
|
+
|
|
11
|
+
var TAG_ID = "EB_SCRIPT_" + /*#__PURE__*/uuid.v4();
|
|
12
|
+
var SCRIPT_URL = "https://www.eventbrite.com/static/widgets/eb_widgets.js";
|
|
13
|
+
var useEventbrite = function useEventbrite(_ref) {
|
|
14
|
+
var eventId = _ref.eventId,
|
|
15
|
+
modal = _ref.modal,
|
|
16
|
+
onOrderComplete = _ref.onOrderComplete,
|
|
17
|
+
promoCode = _ref.promoCode;
|
|
18
|
+
var id = "EB_" + uuid.v4();
|
|
19
|
+
var _React$useState = React.useState(false),
|
|
20
|
+
isLoaded = _React$useState[0],
|
|
21
|
+
setLoaded = _React$useState[1];
|
|
22
|
+
var onLoad = React.useCallback(function () {
|
|
23
|
+
return setLoaded(true);
|
|
24
|
+
}, [setLoaded]);
|
|
25
|
+
var onErr = React.useCallback(function (e) {
|
|
26
|
+
console.error("Failed to load Eventbrite script from " + SCRIPT_URL);
|
|
27
|
+
console.error(e);
|
|
28
|
+
setLoaded(false);
|
|
29
|
+
}, [setLoaded]);
|
|
30
|
+
React.useEffect(function () {
|
|
31
|
+
var _globalThis$window;
|
|
32
|
+
//@ts-ignore
|
|
33
|
+
if ((_globalThis$window = globalThis.window) != null && _globalThis$window.EBWidgets) {
|
|
34
|
+
setLoaded(true);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
var existing = document.getElementById(TAG_ID);
|
|
38
|
+
if (existing) {
|
|
39
|
+
existing.remove();
|
|
40
|
+
}
|
|
41
|
+
var script = document.createElement("script");
|
|
42
|
+
script.id = TAG_ID;
|
|
43
|
+
script.async = true;
|
|
44
|
+
script.src = SCRIPT_URL;
|
|
45
|
+
script.addEventListener("load", onLoad);
|
|
46
|
+
script.addEventListener("error", onErr);
|
|
47
|
+
script.addEventListener("abort", onErr);
|
|
48
|
+
document.head.appendChild(script);
|
|
49
|
+
return function () {
|
|
50
|
+
script.removeEventListener("load", onLoad);
|
|
51
|
+
script.removeEventListener("error", onErr);
|
|
52
|
+
script.removeEventListener("abort", onErr);
|
|
53
|
+
script.remove();
|
|
54
|
+
setLoaded(false);
|
|
55
|
+
};
|
|
56
|
+
}, [setLoaded, onLoad, onErr]);
|
|
57
|
+
React.useEffect(function () {
|
|
58
|
+
var _globalThis$window2;
|
|
59
|
+
if (!isLoaded) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
var config = {
|
|
63
|
+
widgetType: "checkout",
|
|
64
|
+
eventId: eventId,
|
|
65
|
+
onOrderComplete: onOrderComplete,
|
|
66
|
+
modal: modal
|
|
67
|
+
};
|
|
68
|
+
if (modal) {
|
|
69
|
+
config.modalTriggerElementId = id;
|
|
70
|
+
} else {
|
|
71
|
+
config.iframeContainerId = id;
|
|
72
|
+
}
|
|
73
|
+
if (promoCode) {
|
|
74
|
+
config.promoCode = promoCode;
|
|
75
|
+
}
|
|
76
|
+
//@ts-ignore
|
|
77
|
+
(_globalThis$window2 = globalThis.window) == null ? void 0 : _globalThis$window2.EBWidgets.createWidget(config);
|
|
78
|
+
}, [isLoaded]);
|
|
79
|
+
return isLoaded ? {
|
|
80
|
+
id: id
|
|
81
|
+
} : null;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
function ensure(x) {
|
|
85
|
+
if (x === null || x === undefined) {
|
|
86
|
+
debugger;
|
|
87
|
+
throw new Error("Value must not be undefined or null");
|
|
88
|
+
} else {
|
|
89
|
+
return x;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
var modulePath = "@plasmicpkgs/plasmic-eventbrite";
|
|
93
|
+
var EventbriteMeta = {
|
|
94
|
+
name: "Eventbrite",
|
|
95
|
+
displayName: "EventBrite",
|
|
96
|
+
importName: "Eventbrite",
|
|
97
|
+
importPath: modulePath,
|
|
98
|
+
providesData: true,
|
|
99
|
+
description: "Shows Eventbrite checkout on your website",
|
|
100
|
+
defaultStyles: {
|
|
101
|
+
color: "#ffffff",
|
|
102
|
+
fontSize: "12px",
|
|
103
|
+
width: "100px",
|
|
104
|
+
height: "25px",
|
|
105
|
+
borderWidth: "0px",
|
|
106
|
+
backgroundColor: "#19aee7",
|
|
107
|
+
borderRadius: "4px"
|
|
108
|
+
},
|
|
109
|
+
props: {
|
|
110
|
+
eventId: {
|
|
111
|
+
type: "string",
|
|
112
|
+
displayName: "Event ID",
|
|
113
|
+
description: "Learn how to get event ID (\"https://www.eventbrite.com/platform/docs/events\")",
|
|
114
|
+
defaultValue: "463676879027",
|
|
115
|
+
helpText: "In the URL field at the top, you see something like https://www.eventbrite.com/myevent?eid=123456789 . The number after eid= is the Event ID"
|
|
116
|
+
},
|
|
117
|
+
text: {
|
|
118
|
+
type: "string",
|
|
119
|
+
displayName: "Label",
|
|
120
|
+
description: "Label",
|
|
121
|
+
defaultValue: "Buy tickets"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
function Eventbrite(_ref) {
|
|
126
|
+
var className = _ref.className,
|
|
127
|
+
text = _ref.text,
|
|
128
|
+
eventId = _ref.eventId;
|
|
129
|
+
if (!eventId) {
|
|
130
|
+
return React.createElement("div", null, "Please enter Event Id");
|
|
131
|
+
}
|
|
132
|
+
var handleOrderCompleted = React.useCallback(function () {
|
|
133
|
+
console.log("Order was completed successfully");
|
|
134
|
+
}, []);
|
|
135
|
+
var modalButtonCheckout = useEventbrite({
|
|
136
|
+
eventId: "" + eventId,
|
|
137
|
+
modal: true,
|
|
138
|
+
onOrderComplete: handleOrderCompleted
|
|
139
|
+
});
|
|
140
|
+
return React.createElement("button", {
|
|
141
|
+
className: className,
|
|
142
|
+
id: modalButtonCheckout == null ? void 0 : modalButtonCheckout.id,
|
|
143
|
+
type: "button"
|
|
144
|
+
}, text);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function registerAll(loader) {
|
|
148
|
+
var _registerComponent = function _registerComponent(Component, defaultMeta) {
|
|
149
|
+
if (loader) {
|
|
150
|
+
loader.registerComponent(Component, defaultMeta);
|
|
151
|
+
} else {
|
|
152
|
+
registerComponent(Component, defaultMeta);
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
if (loader) {
|
|
156
|
+
_registerComponent(Eventbrite, EventbriteMeta);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
exports.Eventbrite = Eventbrite;
|
|
161
|
+
exports.EventbriteMeta = EventbriteMeta;
|
|
162
|
+
exports.ensure = ensure;
|
|
163
|
+
exports.registerAll = registerAll;
|
|
164
|
+
//# sourceMappingURL=plasmic-eventbrite.cjs.development.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plasmic-eventbrite.cjs.development.js","sources":["../src/hooks/useEventBrite.ts","../src/eventbrite.tsx","../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { v4 as uuid } from \"uuid\";\n\nconst TAG_ID = `EB_SCRIPT_${uuid()}`;\nconst SCRIPT_URL = \"https://www.eventbrite.com/static/widgets/eb_widgets.js\";\n\ninterface Props {\n eventId?: string;\n modal?: boolean;\n onOrderComplete: () => void;\n promoCode?: string;\n iFrameHeight?: string;\n iFrameAutoAdapt?: string;\n}\ntype Widget = {\n widgetType?: string;\n eventId?: string;\n onOrderComplete: () => void;\n modal?: boolean;\n modalTriggerElementId?: string;\n promoCode?: string;\n iframeContainerId?: string;\n}\nconst useEventbrite = ({\n eventId,\n modal,\n onOrderComplete,\n promoCode,\n}: Props) => {\n const id = `EB_${uuid()}`;\n const [isLoaded, setLoaded] = React.useState(false);\n const onLoad = React.useCallback(() => setLoaded(true), [setLoaded]);\n const onErr = React.useCallback(\n (e) => {\n console.error(`Failed to load Eventbrite script from ${SCRIPT_URL}`);\n console.error(e);\n\n setLoaded(false);\n },\n [setLoaded]\n );\n\n React.useEffect(() => {\n //@ts-ignore\n if (globalThis.window?.EBWidgets) {\n setLoaded(true);\n return;\n }\n const existing = document.getElementById(TAG_ID);\n if (existing) {\n existing.remove();\n }\n const script = document.createElement(\"script\");\n script.id = TAG_ID;\n script.async = true;\n script.src = SCRIPT_URL;\n script.addEventListener(\"load\", onLoad);\n script.addEventListener(\"error\", onErr);\n script.addEventListener(\"abort\", onErr);\n document.head.appendChild(script);\n\n return () => {\n script.removeEventListener(\"load\", onLoad);\n script.removeEventListener(\"error\", onErr);\n script.removeEventListener(\"abort\", onErr);\n script.remove();\n setLoaded(false);\n };\n }, [setLoaded, onLoad, onErr]);\n\n React.useEffect(() => {\n if (!isLoaded) {\n return;\n }\n\n const config: Widget = {\n widgetType: \"checkout\",\n eventId,\n onOrderComplete,\n modal,\n };\n\n if (modal) {\n config.modalTriggerElementId = id;\n } else {\n config.iframeContainerId = id;\n }\n\n if (promoCode) {\n config.promoCode = promoCode;\n }\n //@ts-ignore\n globalThis.window?.EBWidgets.createWidget(config);\n }, [isLoaded]);\n\n return isLoaded ? { id } : null;\n};\n\nexport default useEventbrite;\n","import { ComponentMeta } from \"@plasmicapp/host\";\n\nimport React from \"react\";\nimport useEventbrite from \"./hooks/useEventBrite\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n debugger;\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-eventbrite\";\n\ninterface EventbriteProps {\n className?: string;\n eventId?: string;\n text?: string;\n}\n\nexport const EventbriteMeta: ComponentMeta<EventbriteProps> = {\n name: \"Eventbrite\",\n displayName: \"EventBrite\",\n importName: \"Eventbrite\",\n importPath: modulePath,\n providesData: true,\n description: \"Shows Eventbrite checkout on your website\",\n defaultStyles: {\n color: \"#ffffff\",\n fontSize: \"12px\",\n width: \"100px\",\n height: \"25px\",\n borderWidth: \"0px\",\n backgroundColor: \"#19aee7\",\n borderRadius: \"4px\",\n },\n props: {\n eventId: {\n type: \"string\",\n displayName: \"Event ID\",\n description: `Learn how to get event ID (\"https://www.eventbrite.com/platform/docs/events\")`,\n defaultValue: \"463676879027\",\n helpText:\n \"In the URL field at the top, you see something like https://www.eventbrite.com/myevent?eid=123456789 . The number after eid= is the Event ID\",\n },\n text: {\n type: \"string\",\n displayName: \"Label\",\n description: \"Label\",\n defaultValue: \"Buy tickets\",\n },\n },\n};\n\nexport function Eventbrite({ className, text, eventId }: EventbriteProps) {\n \n if (!eventId) {\n return <div>Please enter Event Id</div>;\n }\n\n const handleOrderCompleted = React.useCallback(() => {\n console.log(\"Order was completed successfully\");\n }, []);\n\n const modalButtonCheckout = useEventbrite({\n eventId: `${eventId!}`,\n modal: true,\n onOrderComplete: handleOrderCompleted,\n });\n\n return (\n <button className={className} id={modalButtonCheckout?.id} type=\"button\">\n {text}\n </button>\n );\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Eventbrite, EventbriteMeta } from \"./eventbrite\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n _registerComponent(Eventbrite, EventbriteMeta);\n }\n}\nexport * from \"./eventbrite\";\n"],"names":["TAG_ID","uuid","SCRIPT_URL","useEventbrite","eventId","modal","onOrderComplete","promoCode","id","React","useState","isLoaded","setLoaded","onLoad","useCallback","onErr","e","console","error","useEffect","globalThis","window","EBWidgets","existing","document","getElementById","remove","script","createElement","async","src","addEventListener","head","appendChild","removeEventListener","config","widgetType","modalTriggerElementId","iframeContainerId","createWidget","ensure","x","undefined","Error","modulePath","EventbriteMeta","name","displayName","importName","importPath","providesData","description","defaultStyles","color","fontSize","width","height","borderWidth","backgroundColor","borderRadius","props","type","defaultValue","helpText","text","Eventbrite","className","handleOrderCompleted","log","modalButtonCheckout","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent"],"mappings":";;;;;;;;;;AAGA,IAAMA,MAAM,+BAAgBC,OAAI,EAAI;AACpC,IAAMC,UAAU,GAAG,yDAAyD;AAmB5E,IAAMC,aAAa,GAAG,SAAhBA,aAAa;MACfC,OAAO,QAAPA,OAAO;IACPC,KAAK,QAALA,KAAK;IACLC,eAAe,QAAfA,eAAe;IACfC,SAAS,QAATA,SAAS;EAET,IAAMC,EAAE,WAASP,OAAI,EAAI;EACzB,sBAA8BQ,KAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAA5CC,QAAQ;IAAEC,SAAS;EAC1B,IAAMC,MAAM,GAAGJ,KAAK,CAACK,WAAW,CAAC;IAAA,OAAMF,SAAS,CAAC,IAAI,CAAC;KAAE,CAACA,SAAS,CAAC,CAAC;EACpE,IAAMG,KAAK,GAAGN,KAAK,CAACK,WAAW,CAC3B,UAACE,CAAC;IACEC,OAAO,CAACC,KAAK,4CAA0ChB,UAAU,CAAG;IACpEe,OAAO,CAACC,KAAK,CAACF,CAAC,CAAC;IAEhBJ,SAAS,CAAC,KAAK,CAAC;GACnB,EACD,CAACA,SAAS,CAAC,CACd;EAEDH,KAAK,CAACU,SAAS,CAAC;;;IAEZ,0BAAIC,UAAU,CAACC,MAAM,aAAjB,mBAAmBC,SAAS,EAAE;MAC9BV,SAAS,CAAC,IAAI,CAAC;MACf;;IAEJ,IAAMW,QAAQ,GAAGC,QAAQ,CAACC,cAAc,CAACzB,MAAM,CAAC;IAChD,IAAIuB,QAAQ,EAAE;MACVA,QAAQ,CAACG,MAAM,EAAE;;IAErB,IAAMC,MAAM,GAAGH,QAAQ,CAACI,aAAa,CAAC,QAAQ,CAAC;IAC/CD,MAAM,CAACnB,EAAE,GAAGR,MAAM;IAClB2B,MAAM,CAACE,KAAK,GAAG,IAAI;IACnBF,MAAM,CAACG,GAAG,GAAG5B,UAAU;IACvByB,MAAM,CAACI,gBAAgB,CAAC,MAAM,EAAElB,MAAM,CAAC;IACvCc,MAAM,CAACI,gBAAgB,CAAC,OAAO,EAAEhB,KAAK,CAAC;IACvCY,MAAM,CAACI,gBAAgB,CAAC,OAAO,EAAEhB,KAAK,CAAC;IACvCS,QAAQ,CAACQ,IAAI,CAACC,WAAW,CAACN,MAAM,CAAC;IAEjC,OAAO;MACHA,MAAM,CAACO,mBAAmB,CAAC,MAAM,EAAErB,MAAM,CAAC;MAC1Cc,MAAM,CAACO,mBAAmB,CAAC,OAAO,EAAEnB,KAAK,CAAC;MAC1CY,MAAM,CAACO,mBAAmB,CAAC,OAAO,EAAEnB,KAAK,CAAC;MAC1CY,MAAM,CAACD,MAAM,EAAE;MACfd,SAAS,CAAC,KAAK,CAAC;KACnB;GACJ,EAAE,CAACA,SAAS,EAAEC,MAAM,EAAEE,KAAK,CAAC,CAAC;EAE9BN,KAAK,CAACU,SAAS,CAAC;;IACZ,IAAI,CAACR,QAAQ,EAAE;MACX;;IAGJ,IAAMwB,MAAM,GAAW;MACnBC,UAAU,EAAE,UAAU;MACtBhC,OAAO,EAAPA,OAAO;MACPE,eAAe,EAAfA,eAAe;MACfD,KAAK,EAALA;KACH;IAED,IAAIA,KAAK,EAAE;MACP8B,MAAM,CAACE,qBAAqB,GAAG7B,EAAE;KACpC,MAAM;MACH2B,MAAM,CAACG,iBAAiB,GAAG9B,EAAE;;IAGjC,IAAID,SAAS,EAAE;MACX4B,MAAM,CAAC5B,SAAS,GAAGA,SAAS;;;IAGhC,uBAAAa,UAAU,CAACC,MAAM,qBAAjB,oBAAmBC,SAAS,CAACiB,YAAY,CAACJ,MAAM,CAAC;GACpD,EAAE,CAACxB,QAAQ,CAAC,CAAC;EAEd,OAAOA,QAAQ,GAAG;IAAEH,EAAE,EAAFA;GAAI,GAAG,IAAI;AACnC,CAAC;;SC3FegC,MAAM,CAAIC,CAAuB;EAC/C,IAAIA,CAAC,KAAK,IAAI,IAAIA,CAAC,KAAKC,SAAS,EAAE;IACjC;IACA,MAAM,IAAIC,KAAK,uCAAuC;GACvD,MAAM;IACL,OAAOF,CAAC;;AAEZ;AAEA,IAAMG,UAAU,GAAG,iCAAiC;AAQpD,IAAaC,cAAc,GAAmC;EAC5DC,IAAI,EAAE,YAAY;EAClBC,WAAW,EAAE,YAAY;EACzBC,UAAU,EAAE,YAAY;EACxBC,UAAU,EAAEL,UAAU;EACtBM,YAAY,EAAE,IAAI;EAClBC,WAAW,EAAE,2CAA2C;EACxDC,aAAa,EAAE;IACbC,KAAK,EAAE,SAAS;IAChBC,QAAQ,EAAE,MAAM;IAChBC,KAAK,EAAE,OAAO;IACdC,MAAM,EAAE,MAAM;IACdC,WAAW,EAAE,KAAK;IAClBC,eAAe,EAAE,SAAS;IAC1BC,YAAY,EAAE;GACf;EACDC,KAAK,EAAE;IACLxD,OAAO,EAAE;MACPyD,IAAI,EAAE,QAAQ;MACdd,WAAW,EAAE,UAAU;MACvBI,WAAW,mFAAiF;MAC5FW,YAAY,EAAE,cAAc;MAC5BC,QAAQ,EACN;KACH;IACDC,IAAI,EAAE;MACJH,IAAI,EAAE,QAAQ;MACdd,WAAW,EAAE,OAAO;MACpBI,WAAW,EAAE,OAAO;MACpBW,YAAY,EAAE;;;CAGnB;AAED,SAAgBG,UAAU;MAAGC,SAAS,QAATA,SAAS;IAAEF,IAAI,QAAJA,IAAI;IAAE5D,OAAO,QAAPA,OAAO;EAEnD,IAAI,CAACA,OAAO,EAAE;IACZ,OAAOK,yDAAgC;;EAGzC,IAAM0D,oBAAoB,GAAG1D,KAAK,CAACK,WAAW,CAAC;IAC7CG,OAAO,CAACmD,GAAG,CAAC,kCAAkC,CAAC;GAChD,EAAE,EAAE,CAAC;EAEN,IAAMC,mBAAmB,GAAGlE,aAAa,CAAC;IACxCC,OAAO,OAAKA,OAAU;IACtBC,KAAK,EAAE,IAAI;IACXC,eAAe,EAAE6D;GAClB,CAAC;EAEF,OACE1D;IAAQyD,SAAS,EAAEA,SAAS;IAAE1D,EAAE,EAAE6D,mBAAmB,oBAAnBA,mBAAmB,CAAE7D,EAAE;IAAEqD,IAAI,EAAC;KAC7DG,IAAI,CACE;AAEb;;SCxEgBM,WAAW,CAACC,MAG3B;EACC,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkB,CACtBC,SAAY,EACZC,WAAmD;IAEnD,IAAIH,MAAM,EAAE;MACVA,MAAM,CAACI,iBAAiB,CAACF,SAAS,EAAEC,WAAW,CAAC;KACjD,MAAM;MACLC,iBAAiB,CAACF,SAAS,EAAEC,WAAW,CAAC;;GAE5C;EAED,IAAIH,MAAM,EAAE;IACVC,kBAAkB,CAACP,UAAU,EAAEpB,cAAc,CAAC;;AAElD;;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@plasmicapp/host/registerComponent")),r=e(require("react")),n=require("uuid"),o="EB_SCRIPT_"+n.v4(),i="https://www.eventbrite.com/static/widgets/eb_widgets.js",a={name:"Eventbrite",displayName:"EventBrite",importName:"Eventbrite",importPath:"@plasmicpkgs/plasmic-eventbrite",providesData:!0,description:"Shows Eventbrite checkout on your website",defaultStyles:{color:"#ffffff",fontSize:"12px",width:"100px",height:"25px",borderWidth:"0px",backgroundColor:"#19aee7",borderRadius:"4px"},props:{eventId:{type:"string",displayName:"Event ID",description:'Learn how to get event ID ("https://www.eventbrite.com/platform/docs/events")',defaultValue:"463676879027",helpText:"In the URL field at the top, you see something like https://www.eventbrite.com/myevent?eid=123456789 . The number after eid= is the Event ID"},text:{type:"string",displayName:"Label",description:"Label",defaultValue:"Buy tickets"}}};function l(e){var t=e.className,a=e.text,l=e.eventId;if(!l)return r.createElement("div",null,"Please enter Event Id");var d=function(e){var t=e.eventId,a=e.modal,l=e.onOrderComplete,d=e.promoCode,s="EB_"+n.v4(),u=r.useState(!1),c=u[0],p=u[1],v=r.useCallback((function(){return p(!0)}),[p]),m=r.useCallback((function(e){console.error("Failed to load Eventbrite script from "+i),console.error(e),p(!1)}),[p]);return r.useEffect((function(){var e;if(null==(e=globalThis.window)||!e.EBWidgets){var t=document.getElementById(o);t&&t.remove();var r=document.createElement("script");return r.id=o,r.async=!0,r.src=i,r.addEventListener("load",v),r.addEventListener("error",m),r.addEventListener("abort",m),document.head.appendChild(r),function(){r.removeEventListener("load",v),r.removeEventListener("error",m),r.removeEventListener("abort",m),r.remove(),p(!1)}}p(!0)}),[p,v,m]),r.useEffect((function(){var e;if(c){var r={widgetType:"checkout",eventId:t,onOrderComplete:l,modal:a};a?r.modalTriggerElementId=s:r.iframeContainerId=s,d&&(r.promoCode=d),null==(e=globalThis.window)||e.EBWidgets.createWidget(r)}}),[c]),c?{id:s}:null}({eventId:""+l,modal:!0,onOrderComplete:r.useCallback((function(){console.log("Order was completed successfully")}),[])});return r.createElement("button",{className:t,id:null==d?void 0:d.id,type:"button"},a)}exports.Eventbrite=l,exports.EventbriteMeta=a,exports.ensure=function(e){if(null==e)throw new Error("Value must not be undefined or null");return e},exports.registerAll=function(e){var r,n;e&&(r=l,n=a,e?e.registerComponent(r,n):t(r,n))};
|
|
2
|
+
//# sourceMappingURL=plasmic-eventbrite.cjs.production.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plasmic-eventbrite.cjs.production.min.js","sources":["../src/hooks/useEventBrite.ts","../src/eventbrite.tsx","../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { v4 as uuid } from \"uuid\";\n\nconst TAG_ID = `EB_SCRIPT_${uuid()}`;\nconst SCRIPT_URL = \"https://www.eventbrite.com/static/widgets/eb_widgets.js\";\n\ninterface Props {\n eventId?: string;\n modal?: boolean;\n onOrderComplete: () => void;\n promoCode?: string;\n iFrameHeight?: string;\n iFrameAutoAdapt?: string;\n}\ntype Widget = {\n widgetType?: string;\n eventId?: string;\n onOrderComplete: () => void;\n modal?: boolean;\n modalTriggerElementId?: string;\n promoCode?: string;\n iframeContainerId?: string;\n}\nconst useEventbrite = ({\n eventId,\n modal,\n onOrderComplete,\n promoCode,\n}: Props) => {\n const id = `EB_${uuid()}`;\n const [isLoaded, setLoaded] = React.useState(false);\n const onLoad = React.useCallback(() => setLoaded(true), [setLoaded]);\n const onErr = React.useCallback(\n (e) => {\n console.error(`Failed to load Eventbrite script from ${SCRIPT_URL}`);\n console.error(e);\n\n setLoaded(false);\n },\n [setLoaded]\n );\n\n React.useEffect(() => {\n //@ts-ignore\n if (globalThis.window?.EBWidgets) {\n setLoaded(true);\n return;\n }\n const existing = document.getElementById(TAG_ID);\n if (existing) {\n existing.remove();\n }\n const script = document.createElement(\"script\");\n script.id = TAG_ID;\n script.async = true;\n script.src = SCRIPT_URL;\n script.addEventListener(\"load\", onLoad);\n script.addEventListener(\"error\", onErr);\n script.addEventListener(\"abort\", onErr);\n document.head.appendChild(script);\n\n return () => {\n script.removeEventListener(\"load\", onLoad);\n script.removeEventListener(\"error\", onErr);\n script.removeEventListener(\"abort\", onErr);\n script.remove();\n setLoaded(false);\n };\n }, [setLoaded, onLoad, onErr]);\n\n React.useEffect(() => {\n if (!isLoaded) {\n return;\n }\n\n const config: Widget = {\n widgetType: \"checkout\",\n eventId,\n onOrderComplete,\n modal,\n };\n\n if (modal) {\n config.modalTriggerElementId = id;\n } else {\n config.iframeContainerId = id;\n }\n\n if (promoCode) {\n config.promoCode = promoCode;\n }\n //@ts-ignore\n globalThis.window?.EBWidgets.createWidget(config);\n }, [isLoaded]);\n\n return isLoaded ? { id } : null;\n};\n\nexport default useEventbrite;\n","import { ComponentMeta } from \"@plasmicapp/host\";\n\nimport React from \"react\";\nimport useEventbrite from \"./hooks/useEventBrite\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n debugger;\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-eventbrite\";\n\ninterface EventbriteProps {\n className?: string;\n eventId?: string;\n text?: string;\n}\n\nexport const EventbriteMeta: ComponentMeta<EventbriteProps> = {\n name: \"Eventbrite\",\n displayName: \"EventBrite\",\n importName: \"Eventbrite\",\n importPath: modulePath,\n providesData: true,\n description: \"Shows Eventbrite checkout on your website\",\n defaultStyles: {\n color: \"#ffffff\",\n fontSize: \"12px\",\n width: \"100px\",\n height: \"25px\",\n borderWidth: \"0px\",\n backgroundColor: \"#19aee7\",\n borderRadius: \"4px\",\n },\n props: {\n eventId: {\n type: \"string\",\n displayName: \"Event ID\",\n description: `Learn how to get event ID (\"https://www.eventbrite.com/platform/docs/events\")`,\n defaultValue: \"463676879027\",\n helpText:\n \"In the URL field at the top, you see something like https://www.eventbrite.com/myevent?eid=123456789 . The number after eid= is the Event ID\",\n },\n text: {\n type: \"string\",\n displayName: \"Label\",\n description: \"Label\",\n defaultValue: \"Buy tickets\",\n },\n },\n};\n\nexport function Eventbrite({ className, text, eventId }: EventbriteProps) {\n \n if (!eventId) {\n return <div>Please enter Event Id</div>;\n }\n\n const handleOrderCompleted = React.useCallback(() => {\n console.log(\"Order was completed successfully\");\n }, []);\n\n const modalButtonCheckout = useEventbrite({\n eventId: `${eventId!}`,\n modal: true,\n onOrderComplete: handleOrderCompleted,\n });\n\n return (\n <button className={className} id={modalButtonCheckout?.id} type=\"button\">\n {text}\n </button>\n );\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Eventbrite, EventbriteMeta } from \"./eventbrite\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n _registerComponent(Eventbrite, EventbriteMeta);\n }\n}\nexport * from \"./eventbrite\";\n"],"names":["TAG_ID","uuid","SCRIPT_URL","EventbriteMeta","name","displayName","importName","importPath","providesData","description","defaultStyles","color","fontSize","width","height","borderWidth","backgroundColor","borderRadius","props","eventId","type","defaultValue","helpText","text","Eventbrite","className","React","modalButtonCheckout","modal","onOrderComplete","promoCode","id","useState","isLoaded","setLoaded","onLoad","useCallback","onErr","e","console","error","useEffect","globalThis","window","_globalThis$window","EBWidgets","existing","document","getElementById","remove","script","createElement","async","src","addEventListener","head","appendChild","removeEventListener","config","widgetType","modalTriggerElementId","iframeContainerId","_globalThis$window2","createWidget","useEventbrite","log","x","Error","loader","Component","defaultMeta","registerComponent"],"mappings":"yOAGMA,eAAsBC,OACtBC,EAAa,0DCkBNC,EAAiD,CAC5DC,KAAM,aACNC,YAAa,aACbC,WAAY,aACZC,WAZiB,kCAajBC,cAAc,EACdC,YAAa,4CACbC,cAAe,CACbC,MAAO,UACPC,SAAU,OACVC,MAAO,QACPC,OAAQ,OACRC,YAAa,MACbC,gBAAiB,UACjBC,aAAc,OAEhBC,MAAO,CACLC,QAAS,CACPC,KAAM,SACNf,YAAa,WACbI,4FACAY,aAAc,eACdC,SACE,gJAEJC,KAAM,CACJH,KAAM,SACNf,YAAa,QACbI,YAAa,QACbY,aAAc,0BAKJG,SAAaC,IAAAA,UAAWF,IAAAA,KAAMJ,IAAAA,QAE5C,IAAKA,EACH,OAAOO,oDAGT,IAIMC,ED3Cc,gBAClBR,IAAAA,QACAS,IAAAA,MACAC,IAAAA,gBACAC,IAAAA,UAEMC,QAAW9B,SACayB,EAAMM,UAAS,GAAtCC,OAAUC,OACXC,EAAST,EAAMU,aAAY,WAAA,OAAMF,GAAU,KAAO,CAACA,IACnDG,EAAQX,EAAMU,aAChB,SAACE,GACGC,QAAQC,+CAA+CtC,GACvDqC,QAAQC,MAAMF,GAEdJ,GAAU,KAEd,CAACA,IAwDL,OArDAR,EAAMe,WAAU,iBAEZ,YAAIC,WAAWC,UAAXC,EAAmBC,UAAvB,CAIA,IAAMC,EAAWC,SAASC,eAAehD,GACrC8C,GACAA,EAASG,SAEb,IAAMC,EAASH,SAASI,cAAc,UAStC,OARAD,EAAOnB,GAAK/B,EACZkD,EAAOE,OAAQ,EACfF,EAAOG,IAAMnD,EACbgD,EAAOI,iBAAiB,OAAQnB,GAChCe,EAAOI,iBAAiB,QAASjB,GACjCa,EAAOI,iBAAiB,QAASjB,GACjCU,SAASQ,KAAKC,YAAYN,GAEnB,WACHA,EAAOO,oBAAoB,OAAQtB,GACnCe,EAAOO,oBAAoB,QAASpB,GACpCa,EAAOO,oBAAoB,QAASpB,GACpCa,EAAOD,SACPf,GAAU,IArBVA,GAAU,KAuBf,CAACA,EAAWC,EAAQE,IAEvBX,EAAMe,WAAU,iBACZ,GAAKR,EAAL,CAIA,IAAMyB,EAAiB,CACnBC,WAAY,WACZxC,QAAAA,EACAU,gBAAAA,EACAD,MAAAA,GAGAA,EACA8B,EAAOE,sBAAwB7B,EAE/B2B,EAAOG,kBAAoB9B,EAG3BD,IACA4B,EAAO5B,UAAYA,YAGvBY,WAAWC,SAAXmB,EAAmBjB,UAAUkB,aAAaL,MAC3C,CAACzB,IAEGA,EAAW,CAAEF,GAAAA,GAAO,KC7BDiC,CAAc,CACxC7C,WAAYA,EACZS,OAAO,EACPC,gBAP2BH,EAAMU,aAAY,WAC7CG,QAAQ0B,IAAI,sCACX,MAQH,OACEvC,0BAAQD,UAAWA,EAAWM,SAAIJ,SAAAA,EAAqBI,GAAIX,KAAK,UAC7DG,yEArEmB2C,GACxB,GAAIA,MAAAA,EAEF,MAAM,IAAIC,6CAEV,OAAOD,gCCLiBE,GAI1B,IACEC,EACAC,EASEF,IAVFC,EAWmB7C,EAVnB8C,EAU+BnE,EAR3BiE,EACFA,EAAOG,kBAAkBF,EAAWC,GAEpCC,EAAkBF,EAAWC"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import registerComponent from '@plasmicapp/host/registerComponent';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { v4 } from 'uuid';
|
|
4
|
+
|
|
5
|
+
var TAG_ID = "EB_SCRIPT_" + /*#__PURE__*/v4();
|
|
6
|
+
var SCRIPT_URL = "https://www.eventbrite.com/static/widgets/eb_widgets.js";
|
|
7
|
+
var useEventbrite = function useEventbrite(_ref) {
|
|
8
|
+
var eventId = _ref.eventId,
|
|
9
|
+
modal = _ref.modal,
|
|
10
|
+
onOrderComplete = _ref.onOrderComplete,
|
|
11
|
+
promoCode = _ref.promoCode;
|
|
12
|
+
var id = "EB_" + v4();
|
|
13
|
+
var _React$useState = React.useState(false),
|
|
14
|
+
isLoaded = _React$useState[0],
|
|
15
|
+
setLoaded = _React$useState[1];
|
|
16
|
+
var onLoad = React.useCallback(function () {
|
|
17
|
+
return setLoaded(true);
|
|
18
|
+
}, [setLoaded]);
|
|
19
|
+
var onErr = React.useCallback(function (e) {
|
|
20
|
+
console.error("Failed to load Eventbrite script from " + SCRIPT_URL);
|
|
21
|
+
console.error(e);
|
|
22
|
+
setLoaded(false);
|
|
23
|
+
}, [setLoaded]);
|
|
24
|
+
React.useEffect(function () {
|
|
25
|
+
var _globalThis$window;
|
|
26
|
+
//@ts-ignore
|
|
27
|
+
if ((_globalThis$window = globalThis.window) != null && _globalThis$window.EBWidgets) {
|
|
28
|
+
setLoaded(true);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
var existing = document.getElementById(TAG_ID);
|
|
32
|
+
if (existing) {
|
|
33
|
+
existing.remove();
|
|
34
|
+
}
|
|
35
|
+
var script = document.createElement("script");
|
|
36
|
+
script.id = TAG_ID;
|
|
37
|
+
script.async = true;
|
|
38
|
+
script.src = SCRIPT_URL;
|
|
39
|
+
script.addEventListener("load", onLoad);
|
|
40
|
+
script.addEventListener("error", onErr);
|
|
41
|
+
script.addEventListener("abort", onErr);
|
|
42
|
+
document.head.appendChild(script);
|
|
43
|
+
return function () {
|
|
44
|
+
script.removeEventListener("load", onLoad);
|
|
45
|
+
script.removeEventListener("error", onErr);
|
|
46
|
+
script.removeEventListener("abort", onErr);
|
|
47
|
+
script.remove();
|
|
48
|
+
setLoaded(false);
|
|
49
|
+
};
|
|
50
|
+
}, [setLoaded, onLoad, onErr]);
|
|
51
|
+
React.useEffect(function () {
|
|
52
|
+
var _globalThis$window2;
|
|
53
|
+
if (!isLoaded) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
var config = {
|
|
57
|
+
widgetType: "checkout",
|
|
58
|
+
eventId: eventId,
|
|
59
|
+
onOrderComplete: onOrderComplete,
|
|
60
|
+
modal: modal
|
|
61
|
+
};
|
|
62
|
+
if (modal) {
|
|
63
|
+
config.modalTriggerElementId = id;
|
|
64
|
+
} else {
|
|
65
|
+
config.iframeContainerId = id;
|
|
66
|
+
}
|
|
67
|
+
if (promoCode) {
|
|
68
|
+
config.promoCode = promoCode;
|
|
69
|
+
}
|
|
70
|
+
//@ts-ignore
|
|
71
|
+
(_globalThis$window2 = globalThis.window) == null ? void 0 : _globalThis$window2.EBWidgets.createWidget(config);
|
|
72
|
+
}, [isLoaded]);
|
|
73
|
+
return isLoaded ? {
|
|
74
|
+
id: id
|
|
75
|
+
} : null;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
function ensure(x) {
|
|
79
|
+
if (x === null || x === undefined) {
|
|
80
|
+
debugger;
|
|
81
|
+
throw new Error("Value must not be undefined or null");
|
|
82
|
+
} else {
|
|
83
|
+
return x;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
var modulePath = "@plasmicpkgs/plasmic-eventbrite";
|
|
87
|
+
var EventbriteMeta = {
|
|
88
|
+
name: "Eventbrite",
|
|
89
|
+
displayName: "EventBrite",
|
|
90
|
+
importName: "Eventbrite",
|
|
91
|
+
importPath: modulePath,
|
|
92
|
+
providesData: true,
|
|
93
|
+
description: "Shows Eventbrite checkout on your website",
|
|
94
|
+
defaultStyles: {
|
|
95
|
+
color: "#ffffff",
|
|
96
|
+
fontSize: "12px",
|
|
97
|
+
width: "100px",
|
|
98
|
+
height: "25px",
|
|
99
|
+
borderWidth: "0px",
|
|
100
|
+
backgroundColor: "#19aee7",
|
|
101
|
+
borderRadius: "4px"
|
|
102
|
+
},
|
|
103
|
+
props: {
|
|
104
|
+
eventId: {
|
|
105
|
+
type: "string",
|
|
106
|
+
displayName: "Event ID",
|
|
107
|
+
description: "Learn how to get event ID (\"https://www.eventbrite.com/platform/docs/events\")",
|
|
108
|
+
defaultValue: "463676879027",
|
|
109
|
+
helpText: "In the URL field at the top, you see something like https://www.eventbrite.com/myevent?eid=123456789 . The number after eid= is the Event ID"
|
|
110
|
+
},
|
|
111
|
+
text: {
|
|
112
|
+
type: "string",
|
|
113
|
+
displayName: "Label",
|
|
114
|
+
description: "Label",
|
|
115
|
+
defaultValue: "Buy tickets"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
function Eventbrite(_ref) {
|
|
120
|
+
var className = _ref.className,
|
|
121
|
+
text = _ref.text,
|
|
122
|
+
eventId = _ref.eventId;
|
|
123
|
+
if (!eventId) {
|
|
124
|
+
return React.createElement("div", null, "Please enter Event Id");
|
|
125
|
+
}
|
|
126
|
+
var handleOrderCompleted = React.useCallback(function () {
|
|
127
|
+
console.log("Order was completed successfully");
|
|
128
|
+
}, []);
|
|
129
|
+
var modalButtonCheckout = useEventbrite({
|
|
130
|
+
eventId: "" + eventId,
|
|
131
|
+
modal: true,
|
|
132
|
+
onOrderComplete: handleOrderCompleted
|
|
133
|
+
});
|
|
134
|
+
return React.createElement("button", {
|
|
135
|
+
className: className,
|
|
136
|
+
id: modalButtonCheckout == null ? void 0 : modalButtonCheckout.id,
|
|
137
|
+
type: "button"
|
|
138
|
+
}, text);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
function registerAll(loader) {
|
|
142
|
+
var _registerComponent = function _registerComponent(Component, defaultMeta) {
|
|
143
|
+
if (loader) {
|
|
144
|
+
loader.registerComponent(Component, defaultMeta);
|
|
145
|
+
} else {
|
|
146
|
+
registerComponent(Component, defaultMeta);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
if (loader) {
|
|
150
|
+
_registerComponent(Eventbrite, EventbriteMeta);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export { Eventbrite, EventbriteMeta, ensure, registerAll };
|
|
155
|
+
//# sourceMappingURL=plasmic-eventbrite.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plasmic-eventbrite.esm.js","sources":["../src/hooks/useEventBrite.ts","../src/eventbrite.tsx","../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { v4 as uuid } from \"uuid\";\n\nconst TAG_ID = `EB_SCRIPT_${uuid()}`;\nconst SCRIPT_URL = \"https://www.eventbrite.com/static/widgets/eb_widgets.js\";\n\ninterface Props {\n eventId?: string;\n modal?: boolean;\n onOrderComplete: () => void;\n promoCode?: string;\n iFrameHeight?: string;\n iFrameAutoAdapt?: string;\n}\ntype Widget = {\n widgetType?: string;\n eventId?: string;\n onOrderComplete: () => void;\n modal?: boolean;\n modalTriggerElementId?: string;\n promoCode?: string;\n iframeContainerId?: string;\n}\nconst useEventbrite = ({\n eventId,\n modal,\n onOrderComplete,\n promoCode,\n}: Props) => {\n const id = `EB_${uuid()}`;\n const [isLoaded, setLoaded] = React.useState(false);\n const onLoad = React.useCallback(() => setLoaded(true), [setLoaded]);\n const onErr = React.useCallback(\n (e) => {\n console.error(`Failed to load Eventbrite script from ${SCRIPT_URL}`);\n console.error(e);\n\n setLoaded(false);\n },\n [setLoaded]\n );\n\n React.useEffect(() => {\n //@ts-ignore\n if (globalThis.window?.EBWidgets) {\n setLoaded(true);\n return;\n }\n const existing = document.getElementById(TAG_ID);\n if (existing) {\n existing.remove();\n }\n const script = document.createElement(\"script\");\n script.id = TAG_ID;\n script.async = true;\n script.src = SCRIPT_URL;\n script.addEventListener(\"load\", onLoad);\n script.addEventListener(\"error\", onErr);\n script.addEventListener(\"abort\", onErr);\n document.head.appendChild(script);\n\n return () => {\n script.removeEventListener(\"load\", onLoad);\n script.removeEventListener(\"error\", onErr);\n script.removeEventListener(\"abort\", onErr);\n script.remove();\n setLoaded(false);\n };\n }, [setLoaded, onLoad, onErr]);\n\n React.useEffect(() => {\n if (!isLoaded) {\n return;\n }\n\n const config: Widget = {\n widgetType: \"checkout\",\n eventId,\n onOrderComplete,\n modal,\n };\n\n if (modal) {\n config.modalTriggerElementId = id;\n } else {\n config.iframeContainerId = id;\n }\n\n if (promoCode) {\n config.promoCode = promoCode;\n }\n //@ts-ignore\n globalThis.window?.EBWidgets.createWidget(config);\n }, [isLoaded]);\n\n return isLoaded ? { id } : null;\n};\n\nexport default useEventbrite;\n","import { ComponentMeta } from \"@plasmicapp/host\";\n\nimport React from \"react\";\nimport useEventbrite from \"./hooks/useEventBrite\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n debugger;\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-eventbrite\";\n\ninterface EventbriteProps {\n className?: string;\n eventId?: string;\n text?: string;\n}\n\nexport const EventbriteMeta: ComponentMeta<EventbriteProps> = {\n name: \"Eventbrite\",\n displayName: \"EventBrite\",\n importName: \"Eventbrite\",\n importPath: modulePath,\n providesData: true,\n description: \"Shows Eventbrite checkout on your website\",\n defaultStyles: {\n color: \"#ffffff\",\n fontSize: \"12px\",\n width: \"100px\",\n height: \"25px\",\n borderWidth: \"0px\",\n backgroundColor: \"#19aee7\",\n borderRadius: \"4px\",\n },\n props: {\n eventId: {\n type: \"string\",\n displayName: \"Event ID\",\n description: `Learn how to get event ID (\"https://www.eventbrite.com/platform/docs/events\")`,\n defaultValue: \"463676879027\",\n helpText:\n \"In the URL field at the top, you see something like https://www.eventbrite.com/myevent?eid=123456789 . The number after eid= is the Event ID\",\n },\n text: {\n type: \"string\",\n displayName: \"Label\",\n description: \"Label\",\n defaultValue: \"Buy tickets\",\n },\n },\n};\n\nexport function Eventbrite({ className, text, eventId }: EventbriteProps) {\n \n if (!eventId) {\n return <div>Please enter Event Id</div>;\n }\n\n const handleOrderCompleted = React.useCallback(() => {\n console.log(\"Order was completed successfully\");\n }, []);\n\n const modalButtonCheckout = useEventbrite({\n eventId: `${eventId!}`,\n modal: true,\n onOrderComplete: handleOrderCompleted,\n });\n\n return (\n <button className={className} id={modalButtonCheckout?.id} type=\"button\">\n {text}\n </button>\n );\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Eventbrite, EventbriteMeta } from \"./eventbrite\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n _registerComponent(Eventbrite, EventbriteMeta);\n }\n}\nexport * from \"./eventbrite\";\n"],"names":["TAG_ID","uuid","SCRIPT_URL","useEventbrite","eventId","modal","onOrderComplete","promoCode","id","React","useState","isLoaded","setLoaded","onLoad","useCallback","onErr","e","console","error","useEffect","globalThis","window","EBWidgets","existing","document","getElementById","remove","script","createElement","async","src","addEventListener","head","appendChild","removeEventListener","config","widgetType","modalTriggerElementId","iframeContainerId","createWidget","ensure","x","undefined","Error","modulePath","EventbriteMeta","name","displayName","importName","importPath","providesData","description","defaultStyles","color","fontSize","width","height","borderWidth","backgroundColor","borderRadius","props","type","defaultValue","helpText","text","Eventbrite","className","handleOrderCompleted","log","modalButtonCheckout","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@plasmicpkgs/plasmic-eventbrite",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "Plasmic Eventbrite components.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"typings": "dist/index.d.ts",
|
|
7
|
+
"module": "dist/plasmic-eventbrite.esm.js",
|
|
8
|
+
"publishConfig": {
|
|
9
|
+
"access": "public"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"start": "tsdx watch",
|
|
16
|
+
"build": "tsdx build",
|
|
17
|
+
"test": "yarn --cwd=../.. test --passWithNoTests",
|
|
18
|
+
"lint": "tsdx lint",
|
|
19
|
+
"prepare": "if-env PREPARE_NO_BUILD=true || yarn build",
|
|
20
|
+
"size": "size-limit",
|
|
21
|
+
"analyze": "size-limit --why"
|
|
22
|
+
},
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"react": ">=16"
|
|
25
|
+
},
|
|
26
|
+
"size-limit": [
|
|
27
|
+
{
|
|
28
|
+
"path": "dist/plasmic-eventbrite.cjs.production.min.js",
|
|
29
|
+
"limit": "10 KB"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"path": "dist/plasmic-eventbrite.esm.js",
|
|
33
|
+
"limit": "10 KB"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@plasmicapp/host": "^1.0.100",
|
|
38
|
+
"@size-limit/preset-small-lib": "^7.0.8",
|
|
39
|
+
"@types/react": "^17.0.43",
|
|
40
|
+
"@types/react-dom": "^17.0.14",
|
|
41
|
+
"husky": "^7.0.4",
|
|
42
|
+
"react": "^18.0.0",
|
|
43
|
+
"react-dom": "^18.0.0",
|
|
44
|
+
"size-limit": "^7.0.8",
|
|
45
|
+
"tsdx": "^0.14.1",
|
|
46
|
+
"tslib": "^2.3.1"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"@types/uuid": "^8.3.4",
|
|
50
|
+
"uuid": "^9.0.0"
|
|
51
|
+
},
|
|
52
|
+
"gitHead": "6a7364c3fd0b59099a5869f3e99f13b51a391d0a"
|
|
53
|
+
}
|