@dotss/tictoccroc 0.0.22 → 0.0.24

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.
@@ -13,7 +13,7 @@ function ye({
13
13
  renderPagination: z,
14
14
  ...C
15
15
  }) {
16
- const { spacing: $ } = he(), [l, Y] = I(1), [w, ee] = I(0), [te, ne] = I(0), L = p(null), c = p(null), u = p(null), X = p(0), F = p(0), b = p(0), S = p(!1), D = p(!0), k = p(0), v = $.content(K), E = $.content(O), N = Q.toArray(Z).filter(ue).filter((e) => e.type === me), x = N.length, j = (e, t) => {
16
+ const { spacing: $ } = he(), [l, Y] = I(1), [w, ee] = I(1), [te, ne] = I(0), L = p(null), c = p(null), u = p(null), X = p(0), F = p(0), b = p(0), S = p(!1), D = p(!0), k = p(0), v = $.content(K), E = $.content(O), N = Q.toArray(Z).filter(ue).filter((e) => e.type === me), x = N.length, j = (e, t) => {
17
17
  X.current = e, F.current = t;
18
18
  }, M = () => {
19
19
  var o;
@@ -1,7 +1,8 @@
1
1
  import { FlexboxProps } from 'node_modules/@dotss/ui/Flexbox/Flexbox';
2
- export type BotMessageType = 'MATCHING_SUCCEEDED' | 'TEACHER_INQUIRED' | 'PARENT_CHANGED_OFFER_SCHEDULE' | 'PARENT_CHANGED_MATCHING_SCHEDULE' | 'TEACHER_APPLIED' | 'PARENT_SENT_OFFER' | 'KOK_MATCHING_SUCCEEDED' | 'APPLICATION_MATCHING_SUCCEEDED' | 'PARENT_REJECTED_APPLICATION' | 'TEACHER_REFUSED_OFFER' | 'PARENT_CANCELED_MATCHING' | 'TEACHER_CANCELED_MATCHING' | 'TEACHER_COMPLETED_CARE' | 'ADMIN_CANCELED_MATCHING';
2
+ export type BotMessageType = 'MATCHING_SUCCEEDED' | 'TEACHER_INQUIRED' | 'PARENT_CHANGED_OFFER_SCHEDULE' | 'PARENT_CHANGED_MATCHING_SCHEDULE' | 'TEACHER_APPLIED' | 'PARENT_SENT_OFFER' | 'KOK_MATCHING_SUCCEEDED' | 'APPLICATION_MATCHING_SUCCEEDED' | 'ASSIGNMENT_MATCHING_SUCCEEDED' | 'PARENT_REJECTED_APPLICATION' | 'TEACHER_REFUSED_OFFER' | 'PARENT_CANCELED_MATCHING' | 'TEACHER_CANCELED_MATCHING' | 'TEACHER_COMPLETED_CARE' | 'ADMIN_CANCELED_MATCHING';
3
3
  export type BotMessageCtaType = 'MY_CLASS_CHECK' | 'OFFER_CHECK' | 'CHANGE_INFO_CHECK' | 'MY_APPLICATION_INFO_VIEW' | 'CARE_NOTE_CHECK' | 'TEACHER_SELECTION';
4
- export type BotMessageSubCtaType = 'MATCHING';
4
+ export type BotMessageCtaTargetTable = 'OFFER' | 'MATCHING';
5
+ export type BotMessageSubCtaTargetTable = 'OFFER' | 'MATCHING';
5
6
  export interface BotMessageOffer {
6
7
  careStartDate: string;
7
8
  careStartTime: string;
@@ -14,9 +15,9 @@ export interface BotMessageProps extends Omit<FlexboxProps, 'id' | 'title'> {
14
15
  id: string | number;
15
16
  botMessageType: BotMessageType;
16
17
  ctaType?: BotMessageCtaType | null;
17
- ctaTargetTable?: string | null;
18
+ ctaTargetTable?: BotMessageCtaTargetTable | null;
18
19
  ctaTargetId?: number | null;
19
- subCtaTargetTable?: BotMessageSubCtaType | null;
20
+ subCtaTargetTable?: BotMessageSubCtaTargetTable | null;
20
21
  subCtaTargetId?: number | null;
21
22
  mine: boolean;
22
23
  avatarUrl?: string;
@@ -29,10 +30,11 @@ export interface BotMessageProps extends Omit<FlexboxProps, 'id' | 'title'> {
29
30
  botMessageType: BotMessageType;
30
31
  ctaType?: BotMessageCtaType | null;
31
32
  ctaTargetId?: number | null;
32
- subCtaTargetTable?: BotMessageSubCtaType | null;
33
+ ctaTargetTable?: string | null;
34
+ subCtaTargetTable?: BotMessageSubCtaTargetTable | null;
33
35
  subCtaTargetId?: number | null;
34
36
  }) => void;
35
37
  onView?: () => void;
36
38
  }
37
- declare function BotMessage({ id, botMessageType, ctaType, ctaTargetId, subCtaTargetTable, subCtaTargetId, mine, avatarUrl, title, content, unreadUserCount, offer, regDatetime, onAction, onView, inlineCSS, ...props }: BotMessageProps): import("@emotion/react/jsx-runtime").JSX.Element;
39
+ declare function BotMessage({ id, botMessageType, ctaType, ctaTargetId, ctaTargetTable, subCtaTargetTable, subCtaTargetId, mine, avatarUrl, title, content, unreadUserCount, offer, regDatetime, onAction, onView, inlineCSS, ...props }: BotMessageProps): import("@emotion/react/jsx-runtime").JSX.Element;
38
40
  export default BotMessage;
@@ -1,39 +1,47 @@
1
1
  import { jsxs as t, jsx as r } from "react/jsx-runtime";
2
- import { useRef as E, useEffect as F } from "react";
3
- import { Flexbox as n, Typography as e, Button as L } from "@dotss/ui";
4
- import $ from "@dotss/ui/core/useTheme";
5
- import q from "dayjs";
6
- import { getClassInfo as z, getCtaButtonText as G } from "./BotMessage.utils.mjs";
7
- import J from "../../Image/Image.mjs";
8
- import K from "../../../hooks/useInView/useInView.mjs";
2
+ import { useRef as F, useEffect as L } from "react";
3
+ import { Flexbox as n, Typography as e, Button as $ } from "@dotss/ui";
4
+ import q from "@dotss/ui/core/useTheme";
5
+ import z from "dayjs";
6
+ import { getClassInfo as G, getCtaButtonText as J } from "./BotMessage.utils.mjs";
7
+ import K from "../../Image/Image.mjs";
8
+ import N from "../../../hooks/useInView/useInView.mjs";
9
9
  import S from "../../../utils/getCareTypeLabel/getCareTypeLabel.mjs";
10
- function O({
11
- id: N,
10
+ function V({
11
+ id: P,
12
12
  botMessageType: y,
13
13
  ctaType: s,
14
14
  ctaTargetId: C,
15
- subCtaTargetTable: b,
16
- subCtaTargetId: v,
15
+ ctaTargetTable: b,
16
+ subCtaTargetTable: v,
17
+ subCtaTargetId: T,
17
18
  mine: a,
18
19
  avatarUrl: g,
19
- title: T,
20
+ title: R,
20
21
  content: p,
21
22
  unreadUserCount: h,
22
- offer: R,
23
- regDatetime: w,
23
+ offer: w,
24
+ regDatetime: I,
24
25
  onAction: o,
25
26
  onView: l,
26
- inlineCSS: I,
27
- ...B
27
+ inlineCSS: B,
28
+ ...j
28
29
  }) {
29
30
  const {
30
- palette: { brand: j, grey: m, background: D },
31
+ palette: { brand: D, grey: m, background: k },
31
32
  spacing: d
32
- } = $(), f = E(null), { isInView: u } = K(f), x = G(s), i = R, k = [
33
+ } = q(), f = F(null), { isInView: u } = N(f), x = J(s), i = w, H = [
33
34
  S(i == null ? void 0 : i.firstCareType),
34
35
  S(i == null ? void 0 : i.secondCareType)
35
- ].filter(Boolean).filter((M) => M !== "-").join("+"), c = z(i), H = () => o == null ? void 0 : o({ botMessageType: y, ctaType: s, ctaTargetId: C, subCtaTargetTable: b, subCtaTargetId: v });
36
- return F(() => {
36
+ ].filter(Boolean).filter((E) => E !== "-").join("+"), c = G(i), M = () => o == null ? void 0 : o({
37
+ botMessageType: y,
38
+ ctaType: s,
39
+ ctaTargetId: C,
40
+ ctaTargetTable: b,
41
+ subCtaTargetTable: v,
42
+ subCtaTargetId: T
43
+ });
44
+ return L(() => {
37
45
  u && (l == null || l());
38
46
  }, [u, l]), /* @__PURE__ */ t(
39
47
  n,
@@ -45,10 +53,10 @@ function O({
45
53
  pl: 4,
46
54
  pr: 4,
47
55
  flexDirection: a ? "row" : "row-reverse",
48
- ...B,
56
+ ...j,
49
57
  inlineCSS: {
50
58
  overflowAnchor: "none",
51
- ...I
59
+ ...B
52
60
  },
53
61
  children: [
54
62
  /* @__PURE__ */ r(e, { visuallyHidden: !0, children: "안내" }),
@@ -68,7 +76,7 @@ function O({
68
76
  variant: "c5B",
69
77
  "aria-hidden": !0,
70
78
  inlineCSS: {
71
- color: j.primary.text
79
+ color: D.primary.text
72
80
  },
73
81
  children: h
74
82
  }
@@ -83,7 +91,7 @@ function O({
83
91
  inlineCSS: {
84
92
  whiteSpace: "nowrap"
85
93
  },
86
- children: q(w).format("A h:mm")
94
+ children: z(I).format("A h:mm")
87
95
  }
88
96
  )
89
97
  ]
@@ -104,7 +112,7 @@ function O({
104
112
  },
105
113
  children: [
106
114
  g && /* @__PURE__ */ r(
107
- J,
115
+ K,
108
116
  {
109
117
  src: g,
110
118
  width: 32,
@@ -114,7 +122,7 @@ function O({
114
122
  }
115
123
  ),
116
124
  /* @__PURE__ */ t(n, { flexDirection: "column", children: [
117
- /* @__PURE__ */ r(e, { tag: "p", variant: "h4B", children: T }),
125
+ /* @__PURE__ */ r(e, { tag: "p", variant: "h4B", children: R }),
118
126
  p && /* @__PURE__ */ r(
119
127
  e,
120
128
  {
@@ -134,7 +142,7 @@ function O({
134
142
  flexDirection: "column",
135
143
  inlineCSS: {
136
144
  borderRadius: d.content(2),
137
- backgroundColor: D.primary
145
+ backgroundColor: k.primary
138
146
  },
139
147
  children: [
140
148
  /* @__PURE__ */ t(e, { tag: "dl", children: [
@@ -147,16 +155,16 @@ function O({
147
155
  ] }),
148
156
  /* @__PURE__ */ t(e, { tag: "dl", children: [
149
157
  /* @__PURE__ */ r(e, { tag: "dt", visuallyHidden: !0, children: "돌봄 유형" }),
150
- /* @__PURE__ */ r(e, { tag: "dd", variant: "b4R", color: "grey.70", children: k })
158
+ /* @__PURE__ */ r(e, { tag: "dd", variant: "b4R", color: "grey.70", children: H })
151
159
  ] })
152
160
  ]
153
161
  }
154
162
  ),
155
163
  x && /* @__PURE__ */ r(
156
- L,
164
+ $,
157
165
  {
158
166
  color: "secondary",
159
- onClick: H,
167
+ onClick: M,
160
168
  inlineCSS: {
161
169
  marginTop: d.content(2)
162
170
  },
@@ -172,5 +180,5 @@ function O({
172
180
  );
173
181
  }
174
182
  export {
175
- O as default
183
+ V as default
176
184
  };
@@ -1,4 +1,4 @@
1
- import { default as BotMessage, BotMessageCtaType, BotMessageOffer, BotMessageProps, BotMessageSubCtaType, BotMessageType } from './BotMessage';
1
+ import { default as BotMessage, BotMessageCtaTargetTable, BotMessageCtaType, BotMessageOffer, BotMessageProps, BotMessageSubCtaTargetTable, BotMessageType } from './BotMessage';
2
2
  export { getClassInfo, getCtaButtonText, getBotMessageLabel } from './BotMessage.utils';
3
- export type { BotMessageProps, BotMessageCtaType, BotMessageType, BotMessageOffer, BotMessageSubCtaType };
3
+ export type { BotMessageProps, BotMessageCtaType, BotMessageType, BotMessageOffer, BotMessageSubCtaTargetTable, BotMessageCtaTargetTable };
4
4
  export default BotMessage;
@@ -1,53 +1,61 @@
1
- import { jsxs as t, jsx as i } from "react/jsx-runtime";
2
- import { Flexbox as l, Skeleton as n } from "@dotss/ui";
3
- import h from "@dotss/ui/core/useTheme";
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import { Flexbox as n, Skeleton as l } from "@dotss/ui";
3
+ import f from "@dotss/ui/core/useTheme";
4
4
  function x({
5
- mine: e = !1,
6
- showAvatar: r = !1,
5
+ mine: i = !1,
6
+ showAvatar: t = !1,
7
7
  showTime: o = !1,
8
- width: s = 200,
9
- inlineCSS: a,
10
- ...f
8
+ width: a = 200,
9
+ inlineCSS: s,
10
+ ...d
11
11
  }) {
12
- const { spacing: d } = h();
13
- return /* @__PURE__ */ t(
14
- l,
12
+ const { spacing: h } = f();
13
+ return /* @__PURE__ */ r(
14
+ n,
15
15
  {
16
16
  alignItems: "flex-end",
17
- flexDirection: e ? "row-reverse" : "row",
17
+ flexDirection: i ? "row-reverse" : "row",
18
18
  pl: 4,
19
19
  pr: 4,
20
20
  gap: 1,
21
- ...f,
21
+ ...d,
22
22
  inlineCSS: {
23
23
  overflowAnchor: "none",
24
- ...a
24
+ ...s
25
25
  },
26
26
  children: [
27
- /* @__PURE__ */ t(l, { alignItems: "flex-start", gap: 2.5, children: [
28
- !e && r && /* @__PURE__ */ i(n, { width: 32, height: 32, borderRadius: 200 }),
29
- /* @__PURE__ */ i(
30
- n,
27
+ /* @__PURE__ */ r(n, { alignItems: "flex-start", gap: 2.5, children: [
28
+ !i && t && /* @__PURE__ */ e(l, { width: 32, height: 32, borderRadius: 200 }),
29
+ /* @__PURE__ */ e(
30
+ l,
31
31
  {
32
- width: s,
32
+ width: a,
33
33
  height: 38,
34
34
  borderRadius: 12,
35
35
  inlineCSS: {
36
- marginLeft: !e && r ? d.content(10.5) : void 0
36
+ marginLeft: !i && t ? h.content(10.5) : void 0
37
37
  }
38
38
  }
39
39
  )
40
40
  ] }),
41
- /* @__PURE__ */ i(
42
- l,
41
+ /* @__PURE__ */ e(
42
+ n,
43
43
  {
44
44
  flexDirection: "column",
45
- alignItems: e ? "flex-end" : "flex-start",
46
45
  inlineCSS: {
47
- visibility: o ? "visible" : "hidden",
48
46
  whiteSpace: "nowrap"
49
47
  },
50
- children: /* @__PURE__ */ i(n, { width: 38, height: 12 })
48
+ children: /* @__PURE__ */ r(n, { flexDirection: "column", alignItems: i ? "flex-end" : "flex-start", gap: 1, children: [
49
+ /* @__PURE__ */ e(l, { width: 4.49, height: 12 }),
50
+ /* @__PURE__ */ e(
51
+ l,
52
+ {
53
+ width: 38,
54
+ height: 12,
55
+ inlineCSS: { display: o ? "visible" : "hidden" }
56
+ }
57
+ )
58
+ ] })
51
59
  }
52
60
  )
53
61
  ]
@@ -1,6 +1,6 @@
1
1
  import { jsxs as t, jsx as r, Fragment as O } from "react/jsx-runtime";
2
2
  import { useRef as b, useImperativeHandle as q, useEffect as x } from "react";
3
- import { Flexbox as s, Typography as v, Button as J, Icon as C, Menu as K, MenuBlock as $, CircularProgressIndicator as Q } from "@dotss/ui";
3
+ import { Flexbox as s, Typography as C, Button as J, Icon as I, Menu as K, MenuBlock as P, CircularProgressIndicator as Q } from "@dotss/ui";
4
4
  import W from "@dotss/ui/core/useTheme";
5
5
  import { useCheckHoverPossible as X } from "@dotss/ui/hooks";
6
6
  import { MenuButton as Y } from "@dotss/ui/Menu";
@@ -8,22 +8,22 @@ import Z from "dayjs";
8
8
  import _ from "../../Image/Image.mjs";
9
9
  import V from "../../../hooks/useInView/useInView.mjs";
10
10
  function ar({
11
- id: I,
11
+ id: v,
12
12
  content: p = "",
13
13
  mine: e = !1,
14
- avatarUrl: h = "",
15
- unreadUserCount: f = 0,
16
- regDatetime: z,
14
+ avatarUrl: f = "",
15
+ unreadUserCount: h = 0,
16
+ regDatetime: $,
17
17
  status: n,
18
18
  onView: c,
19
19
  openMenu: g,
20
20
  onCloseMenu: i,
21
- onClickMenu: B,
21
+ onClickMenu: z,
22
22
  onResend: u,
23
23
  onDelete: S,
24
- onViewAll: D,
24
+ onViewAll: B,
25
25
  showAvatar: k,
26
- showTime: F,
26
+ showTime: D,
27
27
  ref: R,
28
28
  inlineCSS: T,
29
29
  ...j
@@ -33,7 +33,7 @@ function ar({
33
33
  spacing: w
34
34
  } = W(), { isHoverPossible: G } = X(), l = b(null), E = b(null), m = b(null);
35
35
  q(R, () => l.current);
36
- const L = V(l), N = 300, d = n === "FAILED", P = p.length > N, H = (a) => {
36
+ const F = V(l), L = 300, d = n === "FAILED", N = p.length > L, H = (a) => {
37
37
  a === "resend" ? (i == null || i(), m.current = setTimeout(() => {
38
38
  u == null || u();
39
39
  }, 200)) : a === "delete" && (i == null || i(), m.current = setTimeout(() => {
@@ -41,8 +41,8 @@ function ar({
41
41
  }, 200));
42
42
  };
43
43
  return x(() => {
44
- L && (c == null || c());
45
- }, [L, c]), x(() => {
44
+ F && (c == null || c());
45
+ }, [F, c]), x(() => {
46
46
  var a;
47
47
  d && ((a = l == null ? void 0 : l.current) == null || a.scrollIntoView());
48
48
  }, [d]), x(() => () => {
@@ -65,15 +65,16 @@ function ar({
65
65
  },
66
66
  children: [
67
67
  /* @__PURE__ */ t(s, { alignItems: "flex-start", gap: 2.5, children: [
68
- !e && k && h && /* @__PURE__ */ r(
68
+ !e && k && f && /* @__PURE__ */ r(
69
69
  _,
70
70
  {
71
- src: h,
71
+ src: f,
72
72
  width: 32,
73
73
  height: 32,
74
74
  borderRadius: "50%",
75
75
  alt: "째깍악어 선생님 심볼",
76
76
  role: "presentation",
77
+ enableFallback: !0,
77
78
  style: {
78
79
  objectFit: "cover"
79
80
  }
@@ -86,7 +87,7 @@ function ar({
86
87
  pb: 2,
87
88
  pl: 3,
88
89
  pr: 3,
89
- ml: !e && !k && h ? 10.5 : void 0,
90
+ ml: !e && !k && f ? 10.5 : void 0,
90
91
  flexDirection: "column",
91
92
  gap: 2.5,
92
93
  inlineCSS: {
@@ -95,7 +96,7 @@ function ar({
95
96
  },
96
97
  children: [
97
98
  /* @__PURE__ */ r(
98
- v,
99
+ C,
99
100
  {
100
101
  tag: "p",
101
102
  variant: "b3R",
@@ -104,16 +105,16 @@ function ar({
104
105
  whiteSpace: "pre-wrap",
105
106
  wordBreak: "break-all"
106
107
  },
107
- children: P ? p.slice(0, N) + "..." : p
108
+ children: N ? p.slice(0, L) + "..." : p
108
109
  }
109
110
  ),
110
- P && /* @__PURE__ */ r(
111
+ N && /* @__PURE__ */ r(
111
112
  J,
112
113
  {
113
114
  variant: "text",
114
115
  size: "xSmall",
115
- endAdornment: /* @__PURE__ */ r(C, { name: "ChevronRightLine" }),
116
- onClick: D,
116
+ endAdornment: /* @__PURE__ */ r(I, { name: "ChevronRightLine" }),
117
+ onClick: B,
117
118
  inlineCSS: {
118
119
  marginLeft: "auto"
119
120
  },
@@ -130,8 +131,8 @@ function ar({
130
131
  {
131
132
  ref: E,
132
133
  isMenuOpen: !!g,
133
- menuId: `message-${I}-menu`,
134
- onClick: B,
134
+ menuId: `message-${v}-menu`,
135
+ onClick: z,
135
136
  size: "xSmall",
136
137
  inlineCSS: {
137
138
  padding: w.content(0.5),
@@ -150,7 +151,7 @@ function ar({
150
151
  },
151
152
  children: [
152
153
  /* @__PURE__ */ r(
153
- C,
154
+ I,
154
155
  {
155
156
  name: "ResetLine",
156
157
  size: "xSmall",
@@ -161,7 +162,7 @@ function ar({
161
162
  }
162
163
  ),
163
164
  /* @__PURE__ */ r(
164
- C,
165
+ I,
165
166
  {
166
167
  name: "CloseLine",
167
168
  size: "xSmall",
@@ -177,7 +178,7 @@ function ar({
177
178
  /* @__PURE__ */ t(
178
179
  K,
179
180
  {
180
- id: `message-${I}-menu`,
181
+ id: `message-${v}-menu`,
181
182
  anchorRef: E,
182
183
  open: g,
183
184
  onClose: i,
@@ -185,8 +186,8 @@ function ar({
185
186
  width: 160,
186
187
  placement: "bottom-left",
187
188
  children: [
188
- /* @__PURE__ */ r($, { value: "resend", children: "재전송" }),
189
- /* @__PURE__ */ r($, { value: "delete", children: "삭제" })
189
+ /* @__PURE__ */ r(P, { value: "resend", children: "재전송" }),
190
+ /* @__PURE__ */ r(P, { value: "delete", children: "삭제" })
190
191
  ]
191
192
  }
192
193
  )
@@ -200,8 +201,8 @@ function ar({
200
201
  whiteSpace: "nowrap"
201
202
  },
202
203
  children: [
203
- e && f > 0 && n === "SUCCEEDED" && /* @__PURE__ */ r(
204
- v,
204
+ e && h > 0 && n === "SUCCEEDED" && /* @__PURE__ */ r(
205
+ C,
205
206
  {
206
207
  tag: "span",
207
208
  variant: "c5B",
@@ -209,10 +210,10 @@ function ar({
209
210
  inlineCSS: {
210
211
  color: y.primary.text
211
212
  },
212
- children: f
213
+ children: h
213
214
  }
214
215
  ),
215
- e && f > 0 && n === "PENDING" && /* @__PURE__ */ r(
216
+ e && h > 0 && n === "PENDING" && /* @__PURE__ */ r(
216
217
  Q,
217
218
  {
218
219
  size: "small",
@@ -224,15 +225,15 @@ function ar({
224
225
  }
225
226
  ),
226
227
  /* @__PURE__ */ r(
227
- v,
228
+ C,
228
229
  {
229
230
  tag: "span",
230
231
  variant: "c5R",
231
232
  color: "etc.dimmed01",
232
233
  inlineCSS: {
233
- visibility: F ? "visible" : "hidden"
234
+ display: D ? void 0 : "none"
234
235
  },
235
- children: Z(z).format("A h:mm")
236
+ children: Z($).format("A h:mm")
236
237
  }
237
238
  )
238
239
  ]
@@ -15,9 +15,10 @@ export interface ImageProps extends Omit<HTMLProps<HTMLImageElement>, 'onError'>
15
15
  disabledResizing?: boolean;
16
16
  withIntrinsicRatio?: boolean;
17
17
  wrapperProps?: FlexboxProps;
18
+ enableBlurPlaceholder?: boolean;
18
19
  enableFallback?: boolean;
19
20
  enableErrorFallback?: boolean;
20
- renderErrorFallback?: (hasError: boolean) => ReactNode;
21
+ renderErrorFallback?: () => ReactNode;
21
22
  }
22
23
  declare const Image: import('react').ForwardRefExoticComponent<Omit<ImageProps, "ref"> & import('react').RefAttributes<HTMLImageElement>>;
23
24
  export default Image;