@01.software/sdk 0.2.8 → 0.2.9-dev.260305.35fd2d4
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/README.md +37 -8
- package/dist/{auth-ZBsN9vPn.d.cts → auth-CDyJoENT.d.cts} +1 -1
- package/dist/{auth-D-_Ju7m5.d.ts → auth-Gb34eOkR.d.ts} +1 -1
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.d.cts +2 -2
- package/dist/auth.d.ts +2 -2
- package/dist/auth.js.map +1 -1
- package/dist/components.cjs +225 -42
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.cts +98 -16
- package/dist/components.d.ts +98 -16
- package/dist/components.js +218 -34
- package/dist/components.js.map +1 -1
- package/dist/flow.cjs +148 -0
- package/dist/flow.cjs.map +1 -0
- package/dist/flow.d.cts +116 -0
- package/dist/flow.d.ts +116 -0
- package/dist/flow.js +123 -0
- package/dist/flow.js.map +1 -0
- package/dist/index.cjs +70 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +48 -21
- package/dist/index.d.ts +48 -21
- package/dist/index.js +70 -15
- package/dist/index.js.map +1 -1
- package/dist/{payload-types-CRSz8jfP.d.cts → payload-types-BFAXKjly.d.cts} +242 -79
- package/dist/{payload-types-CRSz8jfP.d.ts → payload-types-BFAXKjly.d.ts} +242 -79
- package/dist/{webhook-Dn5o0LXq.d.cts → webhook-CmbS5Uu3.d.cts} +2 -2
- package/dist/{webhook-C_DHB0Sw.d.ts → webhook-Ct6PD0Ys.d.ts} +2 -2
- package/dist/webhook.d.cts +2 -2
- package/dist/webhook.d.ts +2 -2
- package/package.json +18 -1
package/dist/components.cjs
CHANGED
|
@@ -22,6 +22,18 @@ var __spreadValues = (a, b) => {
|
|
|
22
22
|
return a;
|
|
23
23
|
};
|
|
24
24
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
25
|
+
var __objRest = (source, exclude) => {
|
|
26
|
+
var target = {};
|
|
27
|
+
for (var prop in source)
|
|
28
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
29
|
+
target[prop] = source[prop];
|
|
30
|
+
if (source != null && __getOwnPropSymbols)
|
|
31
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
32
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
33
|
+
target[prop] = source[prop];
|
|
34
|
+
}
|
|
35
|
+
return target;
|
|
36
|
+
};
|
|
25
37
|
var __export = (target, all) => {
|
|
26
38
|
for (var name in all)
|
|
27
39
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -70,35 +82,206 @@ __export(components_exports, {
|
|
|
70
82
|
FormRenderer: () => FormRenderer,
|
|
71
83
|
Image: () => Image,
|
|
72
84
|
RichTextContent: () => RichTextContent,
|
|
85
|
+
StyledRichTextContent: () => StyledRichTextContent,
|
|
73
86
|
toSubmissionData: () => toSubmissionData
|
|
74
87
|
});
|
|
75
88
|
module.exports = __toCommonJS(components_exports);
|
|
76
89
|
|
|
77
90
|
// src/components/RichTextContent/index.tsx
|
|
91
|
+
var import_react2 = __toESM(require("react"), 1);
|
|
92
|
+
var import_react3 = require("@payloadcms/richtext-lexical/react");
|
|
93
|
+
|
|
94
|
+
// src/components/RichTextContent/styled.tsx
|
|
78
95
|
var import_react = __toESM(require("react"), 1);
|
|
79
|
-
|
|
96
|
+
function createComponentConverters(components, internalDocToHref) {
|
|
97
|
+
const converters = {};
|
|
98
|
+
if (components.Heading) {
|
|
99
|
+
const Heading = components.Heading;
|
|
100
|
+
converters.heading = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(Heading, { tag: node.tag, node }, nodesToJSX({ nodes: node.children }));
|
|
101
|
+
}
|
|
102
|
+
if (components.Paragraph) {
|
|
103
|
+
const Paragraph = components.Paragraph;
|
|
104
|
+
converters.paragraph = ({ node, nodesToJSX }) => {
|
|
105
|
+
const children = nodesToJSX({ nodes: node.children });
|
|
106
|
+
return /* @__PURE__ */ import_react.default.createElement(Paragraph, { isEmpty: !(children == null ? void 0 : children.length), node }, (children == null ? void 0 : children.length) ? children : /* @__PURE__ */ import_react.default.createElement("br", null));
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
if (components.Blockquote) {
|
|
110
|
+
const Blockquote = components.Blockquote;
|
|
111
|
+
converters.quote = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(Blockquote, { node }, nodesToJSX({ nodes: node.children }));
|
|
112
|
+
}
|
|
113
|
+
if (components.List) {
|
|
114
|
+
const List = components.List;
|
|
115
|
+
converters.list = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(List, { tag: node.tag, listType: node.listType, node }, nodesToJSX({ nodes: node.children }));
|
|
116
|
+
}
|
|
117
|
+
if (components.ListItem) {
|
|
118
|
+
const ListItem = components.ListItem;
|
|
119
|
+
converters.listitem = ({ node, nodesToJSX }) => {
|
|
120
|
+
const hasSubLists = node.children.some(
|
|
121
|
+
(child) => child.type === "list"
|
|
122
|
+
);
|
|
123
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
124
|
+
ListItem,
|
|
125
|
+
{
|
|
126
|
+
hasSubLists,
|
|
127
|
+
checked: node.checked,
|
|
128
|
+
value: node.value,
|
|
129
|
+
node
|
|
130
|
+
},
|
|
131
|
+
nodesToJSX({ nodes: node.children })
|
|
132
|
+
);
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
if (components.Link) {
|
|
136
|
+
const Link = components.Link;
|
|
137
|
+
const resolveHref = (node) => {
|
|
138
|
+
var _a;
|
|
139
|
+
if (node.fields.linkType === "internal") {
|
|
140
|
+
return internalDocToHref ? internalDocToHref({ linkNode: node }) : "#";
|
|
141
|
+
}
|
|
142
|
+
return (_a = node.fields.url) != null ? _a : "";
|
|
143
|
+
};
|
|
144
|
+
converters.link = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(
|
|
145
|
+
Link,
|
|
146
|
+
{
|
|
147
|
+
href: resolveHref(node),
|
|
148
|
+
rel: node.fields.newTab ? "noopener noreferrer" : void 0,
|
|
149
|
+
target: node.fields.newTab ? "_blank" : void 0,
|
|
150
|
+
node
|
|
151
|
+
},
|
|
152
|
+
nodesToJSX({ nodes: node.children })
|
|
153
|
+
);
|
|
154
|
+
converters.autolink = ({ node, nodesToJSX }) => {
|
|
155
|
+
var _a;
|
|
156
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
157
|
+
Link,
|
|
158
|
+
{
|
|
159
|
+
href: (_a = node.fields.url) != null ? _a : "",
|
|
160
|
+
rel: node.fields.newTab ? "noopener noreferrer" : void 0,
|
|
161
|
+
target: node.fields.newTab ? "_blank" : void 0,
|
|
162
|
+
node
|
|
163
|
+
},
|
|
164
|
+
nodesToJSX({ nodes: node.children })
|
|
165
|
+
);
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
if (components.HorizontalRule) {
|
|
169
|
+
const HorizontalRule = components.HorizontalRule;
|
|
170
|
+
converters.horizontalrule = /* @__PURE__ */ import_react.default.createElement(HorizontalRule, null);
|
|
171
|
+
}
|
|
172
|
+
if (components.Upload) {
|
|
173
|
+
const Upload = components.Upload;
|
|
174
|
+
converters.upload = ({ node }) => {
|
|
175
|
+
var _a;
|
|
176
|
+
const uploadNode = node;
|
|
177
|
+
if (typeof uploadNode.value !== "object") return null;
|
|
178
|
+
const doc = uploadNode.value;
|
|
179
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
180
|
+
Upload,
|
|
181
|
+
{
|
|
182
|
+
src: doc.url,
|
|
183
|
+
alt: ((_a = uploadNode.fields) == null ? void 0 : _a.alt) || (doc == null ? void 0 : doc.alt) || "",
|
|
184
|
+
width: doc.width,
|
|
185
|
+
height: doc.height,
|
|
186
|
+
mimeType: doc.mimeType,
|
|
187
|
+
filename: doc.filename,
|
|
188
|
+
sizes: doc.sizes,
|
|
189
|
+
node
|
|
190
|
+
}
|
|
191
|
+
);
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
if (components.Table) {
|
|
195
|
+
const Table = components.Table;
|
|
196
|
+
converters.table = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(Table, { node }, nodesToJSX({ nodes: node.children }));
|
|
197
|
+
}
|
|
198
|
+
if (components.TableRow) {
|
|
199
|
+
const TableRow = components.TableRow;
|
|
200
|
+
converters.tablerow = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(TableRow, { node }, nodesToJSX({ nodes: node.children }));
|
|
201
|
+
}
|
|
202
|
+
if (components.TableCell) {
|
|
203
|
+
const TableCell = components.TableCell;
|
|
204
|
+
converters.tablecell = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(
|
|
205
|
+
TableCell,
|
|
206
|
+
{
|
|
207
|
+
tag: node.headerState > 0 ? "th" : "td",
|
|
208
|
+
colSpan: node.colSpan > 1 ? node.colSpan : void 0,
|
|
209
|
+
rowSpan: node.rowSpan > 1 ? node.rowSpan : void 0,
|
|
210
|
+
backgroundColor: node.backgroundColor || void 0,
|
|
211
|
+
node
|
|
212
|
+
},
|
|
213
|
+
nodesToJSX({ nodes: node.children })
|
|
214
|
+
);
|
|
215
|
+
}
|
|
216
|
+
return converters;
|
|
217
|
+
}
|
|
218
|
+
function StyledRichTextContent(_a) {
|
|
219
|
+
var _b = _a, {
|
|
220
|
+
components = {},
|
|
221
|
+
internalDocToHref,
|
|
222
|
+
blocks,
|
|
223
|
+
textState
|
|
224
|
+
} = _b, props = __objRest(_b, [
|
|
225
|
+
"components",
|
|
226
|
+
"internalDocToHref",
|
|
227
|
+
"blocks",
|
|
228
|
+
"textState"
|
|
229
|
+
]);
|
|
230
|
+
const converters = createComponentConverters(components, internalDocToHref);
|
|
231
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
232
|
+
RichTextContent,
|
|
233
|
+
__spreadProps(__spreadValues({}, props), {
|
|
234
|
+
internalDocToHref,
|
|
235
|
+
converters,
|
|
236
|
+
blocks,
|
|
237
|
+
textState
|
|
238
|
+
})
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// src/components/RichTextContent/index.tsx
|
|
243
|
+
function hyphenToCamel(str) {
|
|
244
|
+
return str.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
|
|
245
|
+
}
|
|
246
|
+
function createTextStateConverter(state) {
|
|
247
|
+
const defaultTextConverter = import_react3.TextJSXConverter.text;
|
|
248
|
+
return (_a) => {
|
|
249
|
+
var _b = _a, { node } = _b, rest = __objRest(_b, ["node"]);
|
|
250
|
+
var _a2, _b2;
|
|
251
|
+
const base = defaultTextConverter(__spreadValues({ node }, rest));
|
|
252
|
+
const nodeState = node.$;
|
|
253
|
+
if (!nodeState || typeof nodeState !== "object") return base;
|
|
254
|
+
const style = {};
|
|
255
|
+
for (const stateKey in nodeState) {
|
|
256
|
+
const stateValue = nodeState[stateKey];
|
|
257
|
+
if (!stateValue) continue;
|
|
258
|
+
const css = (_b2 = (_a2 = state[stateKey]) == null ? void 0 : _a2[stateValue]) == null ? void 0 : _b2.css;
|
|
259
|
+
if (css) {
|
|
260
|
+
for (const prop in css) {
|
|
261
|
+
const val = css[prop];
|
|
262
|
+
if (val) style[hyphenToCamel(prop)] = val;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
if (Object.keys(style).length === 0) return base;
|
|
267
|
+
return /* @__PURE__ */ import_react2.default.createElement("span", { style }, base);
|
|
268
|
+
};
|
|
269
|
+
}
|
|
80
270
|
function RichTextContent({
|
|
81
271
|
data,
|
|
82
272
|
className,
|
|
83
273
|
internalDocToHref,
|
|
84
|
-
|
|
274
|
+
converters,
|
|
275
|
+
blocks,
|
|
276
|
+
disableDefaultConverters,
|
|
277
|
+
textState
|
|
85
278
|
}) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
{
|
|
89
|
-
data,
|
|
90
|
-
className,
|
|
91
|
-
converters: __spreadProps(__spreadValues(__spreadValues({}, import_react2.defaultJSXConverters), (0, import_react2.LinkJSXConverter)({
|
|
92
|
-
internalDocToHref
|
|
93
|
-
})), {
|
|
94
|
-
blocks: blocks ? blocks : void 0
|
|
95
|
-
})
|
|
96
|
-
}
|
|
97
|
-
);
|
|
279
|
+
const baseConverters = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, disableDefaultConverters ? {} : import_react3.defaultJSXConverters), (0, import_react3.LinkJSXConverter)({ internalDocToHref })), textState ? { text: createTextStateConverter(textState) } : {}), converters), blocks ? { blocks } : {});
|
|
280
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react3.RichText, { data, className, converters: baseConverters });
|
|
98
281
|
}
|
|
99
282
|
|
|
100
283
|
// src/components/FormRenderer/index.tsx
|
|
101
|
-
var
|
|
284
|
+
var import_react4 = __toESM(require("react"), 1);
|
|
102
285
|
|
|
103
286
|
// src/components/FormRenderer/countries.ts
|
|
104
287
|
var COUNTRIES = [
|
|
@@ -437,15 +620,15 @@ function FormRenderer({
|
|
|
437
620
|
renderButton
|
|
438
621
|
}) {
|
|
439
622
|
var _a;
|
|
440
|
-
const [values, setValues] = (0,
|
|
623
|
+
const [values, setValues] = (0, import_react4.useState)(
|
|
441
624
|
() => getInitialValues(form.fields)
|
|
442
625
|
);
|
|
443
|
-
const [isSubmitting, setIsSubmitting] = (0,
|
|
444
|
-
const submittingRef = (0,
|
|
445
|
-
(0,
|
|
626
|
+
const [isSubmitting, setIsSubmitting] = (0, import_react4.useState)(false);
|
|
627
|
+
const submittingRef = (0, import_react4.useRef)(false);
|
|
628
|
+
(0, import_react4.useEffect)(() => {
|
|
446
629
|
setValues(getInitialValues(form.fields));
|
|
447
630
|
}, [form.id]);
|
|
448
|
-
const handleChange = (0,
|
|
631
|
+
const handleChange = (0, import_react4.useCallback)(
|
|
449
632
|
(name, value) => {
|
|
450
633
|
setValues((prev) => __spreadProps(__spreadValues({}, prev), { [name]: value }));
|
|
451
634
|
},
|
|
@@ -469,14 +652,14 @@ function FormRenderer({
|
|
|
469
652
|
value: (_a2 = values[field.name]) != null ? _a2 : "",
|
|
470
653
|
onChange: (v) => handleChange(field.name, v)
|
|
471
654
|
};
|
|
472
|
-
const el = /* @__PURE__ */
|
|
655
|
+
const el = /* @__PURE__ */ import_react4.default.createElement(
|
|
473
656
|
"div",
|
|
474
657
|
{
|
|
475
658
|
key: (_b = field.id) != null ? _b : field.name,
|
|
476
659
|
className: fieldClassName,
|
|
477
660
|
style
|
|
478
661
|
},
|
|
479
|
-
field.label && /* @__PURE__ */
|
|
662
|
+
field.label && /* @__PURE__ */ import_react4.default.createElement("label", { htmlFor: field.name }, field.label),
|
|
480
663
|
input
|
|
481
664
|
);
|
|
482
665
|
return renderField ? renderField(field, context, el) : el;
|
|
@@ -486,7 +669,7 @@ function FormRenderer({
|
|
|
486
669
|
return wrapField(
|
|
487
670
|
field,
|
|
488
671
|
style,
|
|
489
|
-
/* @__PURE__ */
|
|
672
|
+
/* @__PURE__ */ import_react4.default.createElement(
|
|
490
673
|
"select",
|
|
491
674
|
{
|
|
492
675
|
id: field.name,
|
|
@@ -495,8 +678,8 @@ function FormRenderer({
|
|
|
495
678
|
required: (_b = field.required) != null ? _b : false,
|
|
496
679
|
onChange: (e) => handleChange(field.name, e.target.value)
|
|
497
680
|
},
|
|
498
|
-
/* @__PURE__ */
|
|
499
|
-
options.map((opt) => /* @__PURE__ */
|
|
681
|
+
/* @__PURE__ */ import_react4.default.createElement("option", { value: "" }, placeholder || "Select\u2026"),
|
|
682
|
+
options.map((opt) => /* @__PURE__ */ import_react4.default.createElement("option", { key: opt.value, value: opt.value }, opt.label))
|
|
500
683
|
)
|
|
501
684
|
);
|
|
502
685
|
};
|
|
@@ -508,7 +691,7 @@ function FormRenderer({
|
|
|
508
691
|
return wrapField(
|
|
509
692
|
field,
|
|
510
693
|
style,
|
|
511
|
-
/* @__PURE__ */
|
|
694
|
+
/* @__PURE__ */ import_react4.default.createElement(
|
|
512
695
|
"input",
|
|
513
696
|
{
|
|
514
697
|
type: "text",
|
|
@@ -525,7 +708,7 @@ function FormRenderer({
|
|
|
525
708
|
return wrapField(
|
|
526
709
|
field,
|
|
527
710
|
style,
|
|
528
|
-
/* @__PURE__ */
|
|
711
|
+
/* @__PURE__ */ import_react4.default.createElement(
|
|
529
712
|
"input",
|
|
530
713
|
{
|
|
531
714
|
type: "email",
|
|
@@ -541,7 +724,7 @@ function FormRenderer({
|
|
|
541
724
|
return wrapField(
|
|
542
725
|
field,
|
|
543
726
|
style,
|
|
544
|
-
/* @__PURE__ */
|
|
727
|
+
/* @__PURE__ */ import_react4.default.createElement(
|
|
545
728
|
"input",
|
|
546
729
|
{
|
|
547
730
|
type: "number",
|
|
@@ -562,7 +745,7 @@ function FormRenderer({
|
|
|
562
745
|
return wrapField(
|
|
563
746
|
field,
|
|
564
747
|
style,
|
|
565
|
-
/* @__PURE__ */
|
|
748
|
+
/* @__PURE__ */ import_react4.default.createElement(
|
|
566
749
|
"textarea",
|
|
567
750
|
{
|
|
568
751
|
id: field.name,
|
|
@@ -578,14 +761,14 @@ function FormRenderer({
|
|
|
578
761
|
value: (_j = values[field.name]) != null ? _j : false,
|
|
579
762
|
onChange: (v) => handleChange(field.name, v)
|
|
580
763
|
};
|
|
581
|
-
const el = /* @__PURE__ */
|
|
764
|
+
const el = /* @__PURE__ */ import_react4.default.createElement(
|
|
582
765
|
"div",
|
|
583
766
|
{
|
|
584
767
|
key: (_k = field.id) != null ? _k : field.name,
|
|
585
768
|
className: fieldClassName,
|
|
586
769
|
style
|
|
587
770
|
},
|
|
588
|
-
/* @__PURE__ */
|
|
771
|
+
/* @__PURE__ */ import_react4.default.createElement("label", { htmlFor: field.name }, /* @__PURE__ */ import_react4.default.createElement(
|
|
589
772
|
"input",
|
|
590
773
|
{
|
|
591
774
|
type: "checkbox",
|
|
@@ -595,7 +778,7 @@ function FormRenderer({
|
|
|
595
778
|
required: (_l = field.required) != null ? _l : false,
|
|
596
779
|
onChange: (e) => handleChange(field.name, e.target.checked)
|
|
597
780
|
}
|
|
598
|
-
), field.label && /* @__PURE__ */
|
|
781
|
+
), field.label && /* @__PURE__ */ import_react4.default.createElement("span", null, field.label))
|
|
599
782
|
);
|
|
600
783
|
return renderField ? renderField(field, context, el) : el;
|
|
601
784
|
}
|
|
@@ -612,7 +795,7 @@ function FormRenderer({
|
|
|
612
795
|
return renderSelectField(field, style, US_STATES);
|
|
613
796
|
case "message":
|
|
614
797
|
if (renderMessage && field.message) {
|
|
615
|
-
return /* @__PURE__ */
|
|
798
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, { key: (_p = (_o = field.id) != null ? _o : field.blockName) != null ? _p : "message" }, renderMessage(field.message));
|
|
616
799
|
}
|
|
617
800
|
return null;
|
|
618
801
|
default:
|
|
@@ -620,7 +803,7 @@ function FormRenderer({
|
|
|
620
803
|
}
|
|
621
804
|
};
|
|
622
805
|
const buttonLabel = form.submitButtonLabel || "Submit";
|
|
623
|
-
return /* @__PURE__ */
|
|
806
|
+
return /* @__PURE__ */ import_react4.default.createElement("form", { onSubmit: handleSubmit, className }, (_a = form.fields) == null ? void 0 : _a.map((field) => renderFieldElement(field)), renderButton ? renderButton({ isSubmitting, label: buttonLabel }) : /* @__PURE__ */ import_react4.default.createElement(
|
|
624
807
|
"button",
|
|
625
808
|
{
|
|
626
809
|
type: "submit",
|
|
@@ -632,7 +815,7 @@ function FormRenderer({
|
|
|
632
815
|
}
|
|
633
816
|
|
|
634
817
|
// src/components/Image/index.tsx
|
|
635
|
-
var
|
|
818
|
+
var import_react5 = __toESM(require("react"), 1);
|
|
636
819
|
|
|
637
820
|
// src/utils/image.ts
|
|
638
821
|
var IMAGE_SIZES = [384, 768, 1536];
|
|
@@ -697,8 +880,8 @@ function Image({
|
|
|
697
880
|
imageRendering
|
|
698
881
|
}) {
|
|
699
882
|
var _a, _b;
|
|
700
|
-
const [loaded, setLoaded] = (0,
|
|
701
|
-
const firedRef = (0,
|
|
883
|
+
const [loaded, setLoaded] = (0, import_react5.useState)(false);
|
|
884
|
+
const firedRef = (0, import_react5.useRef)(false);
|
|
702
885
|
const isPixelRendering = imageRendering === "pixelated" || imageRendering === "crisp-edges";
|
|
703
886
|
const placeholder = placeholderProp != null ? placeholderProp : isPixelRendering ? "none" : "blur";
|
|
704
887
|
const loading = priority ? "eager" : loadingProp != null ? loadingProp : "lazy";
|
|
@@ -710,13 +893,13 @@ function Image({
|
|
|
710
893
|
type: placeholder
|
|
711
894
|
});
|
|
712
895
|
const placeholderColor = !hasLqip && "backgroundColor" in placeholderStyle ? placeholderStyle.backgroundColor : void 0;
|
|
713
|
-
const fireLoad = (0,
|
|
896
|
+
const fireLoad = (0, import_react5.useCallback)(() => {
|
|
714
897
|
if (firedRef.current) return;
|
|
715
898
|
firedRef.current = true;
|
|
716
899
|
setLoaded(true);
|
|
717
900
|
onLoad == null ? void 0 : onLoad();
|
|
718
901
|
}, [onLoad]);
|
|
719
|
-
const imgRef = (0,
|
|
902
|
+
const imgRef = (0, import_react5.useCallback)(
|
|
720
903
|
(node) => {
|
|
721
904
|
if (node && node.complete && node.naturalWidth > 0) {
|
|
722
905
|
fireLoad();
|
|
@@ -747,7 +930,7 @@ function Image({
|
|
|
747
930
|
opacity: loaded ? 1 : 0,
|
|
748
931
|
transition: "opacity 0.3s ease"
|
|
749
932
|
}), imgStyle);
|
|
750
|
-
return /* @__PURE__ */
|
|
933
|
+
return /* @__PURE__ */ import_react5.default.createElement("div", { className, style: containerStyle }, hasLqip && /* @__PURE__ */ import_react5.default.createElement(
|
|
751
934
|
"img",
|
|
752
935
|
{
|
|
753
936
|
"aria-hidden": true,
|
|
@@ -760,7 +943,7 @@ function Image({
|
|
|
760
943
|
transform: "scale(1.1)"
|
|
761
944
|
})
|
|
762
945
|
}
|
|
763
|
-
), placeholderColor && /* @__PURE__ */
|
|
946
|
+
), placeholderColor && /* @__PURE__ */ import_react5.default.createElement(
|
|
764
947
|
"div",
|
|
765
948
|
{
|
|
766
949
|
"aria-hidden": true,
|
|
@@ -768,7 +951,7 @@ function Image({
|
|
|
768
951
|
backgroundColor: placeholderColor
|
|
769
952
|
})
|
|
770
953
|
}
|
|
771
|
-
), /* @__PURE__ */
|
|
954
|
+
), /* @__PURE__ */ import_react5.default.createElement(
|
|
772
955
|
"img",
|
|
773
956
|
{
|
|
774
957
|
ref: imgRef,
|