Skip to content

Commit 5ce745c

Browse files
committed
Fix middleware.length
1 parent d23385f commit 5ce745c

4 files changed

Lines changed: 31 additions & 27 deletions

File tree

packages/api/src/hooks/Composer.tsx

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ const ComposerCore = ({
342342
const cardActionContext = useMemo(
343343
() =>
344344
createCardActionContext({
345-
cardActionMiddleware: Object.freeze([...singleToArray(cardActionMiddleware)]),
345+
cardActionMiddleware: Object.freeze([...singleToArray(cardActionMiddleware ?? [])]),
346346
continuous: !!styleOptions.speechRecognitionContinuous,
347347
directLine,
348348
dispatch,
@@ -422,7 +422,7 @@ const ComposerCore = ({
422422
applyMiddlewareForRenderer(
423423
'activity status',
424424
{ strict: false },
425-
...singleToArray(activityStatusMiddleware),
425+
...singleToArray(activityStatusMiddleware ?? []),
426426
() => () => () => false
427427
)({}),
428428
[activityStatusMiddleware]
@@ -433,7 +433,7 @@ const ComposerCore = ({
433433
applyMiddlewareForRenderer(
434434
'attachment for screen reader',
435435
{ strict: true },
436-
...singleToArray(attachmentForScreenReaderMiddleware),
436+
...singleToArray(attachmentForScreenReaderMiddleware ?? []),
437437
() =>
438438
() =>
439439
({ attachment }) => {
@@ -457,7 +457,7 @@ const ComposerCore = ({
457457
() =>
458458
applyMiddlewareForLegacyRenderer(
459459
'attachment',
460-
...singleToArray(attachmentMiddleware),
460+
...singleToArray(attachmentMiddleware ?? []),
461461
() =>
462462
() =>
463463
({ attachment }) => {
@@ -473,12 +473,15 @@ const ComposerCore = ({
473473

474474
const groupActivitiesMiddleware = useMemoIterable<readonly GroupActivitiesMiddleware[] | undefined>(
475475
() =>
476-
groupActivitiesMiddlewareFromProps ? Object.freeze(singleToArray(groupActivitiesMiddlewareFromProps)) : undefined,
476+
groupActivitiesMiddlewareFromProps
477+
? Object.freeze(singleToArray(groupActivitiesMiddlewareFromProps ?? []))
478+
: undefined,
477479
[groupActivitiesMiddlewareFromProps]
478480
);
479481

480482
const polymiddlewareForLegacyAvatarMiddleware = useMemo<Polymiddleware | undefined>(
481-
() => (avatarMiddleware ? createAvatarPolymiddlewareFromLegacy(...singleToArray(avatarMiddleware)) : undefined),
483+
() =>
484+
avatarMiddleware ? createAvatarPolymiddlewareFromLegacy(...singleToArray(avatarMiddleware ?? [])) : undefined,
482485
[avatarMiddleware]
483486
);
484487

@@ -487,7 +490,7 @@ const ComposerCore = ({
487490
applyMiddlewareForRenderer(
488491
'toast',
489492
{ strict: false },
490-
...singleToArray(toastMiddleware),
493+
...singleToArray(toastMiddleware ?? []),
491494
() =>
492495
() =>
493496
({ notification }) => {
@@ -506,7 +509,7 @@ const ComposerCore = ({
506509
applyMiddlewareForRenderer(
507510
'typing indicator',
508511
{ strict: false },
509-
...singleToArray(typingIndicatorMiddleware),
512+
...singleToArray(typingIndicatorMiddleware ?? []),
510513
() => () => () => false
511514
)({}),
512515
[typingIndicatorMiddleware]
@@ -517,15 +520,17 @@ const ComposerCore = ({
517520
applyMiddlewareForRenderer(
518521
'scroll to end button',
519522
{ strict: true },
520-
...singleToArray(scrollToEndButtonMiddleware),
523+
...singleToArray(scrollToEndButtonMiddleware ?? []),
521524
() => () => () => false
522525
)() as any,
523526
[scrollToEndButtonMiddleware]
524527
);
525528

526529
const polymiddlewareForLegacyActivityMiddleware = useMemo<Polymiddleware | undefined>(
527530
() =>
528-
activityMiddleware ? createActivityPolymiddlewareFromLegacy(...singleToArray(activityMiddleware)) : undefined,
531+
activityMiddleware
532+
? createActivityPolymiddlewareFromLegacy(...singleToArray(activityMiddleware ?? []))
533+
: undefined,
529534
[activityMiddleware]
530535
);
531536

packages/bundle/src/AddFullBundle.tsx

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,17 @@ function AddFullBundle({
5959

6060
const attachmentForScreenReaderMiddleware = useMemoIterable<
6161
readonly AttachmentForScreenReaderMiddleware[] | undefined
62-
>(
63-
() =>
64-
attachmentForScreenReaderMiddlewareFromProps?.length
65-
? singleToArray(attachmentForScreenReaderMiddlewareFromProps)
66-
: undefined,
67-
[attachmentForScreenReaderMiddlewareFromProps]
68-
);
62+
>(() => {
63+
const middleware = singleToArray(attachmentForScreenReaderMiddlewareFromProps);
6964

70-
const attachmentMiddleware = useMemoIterable<readonly AttachmentMiddleware[] | undefined>(
71-
() => (attachmentMiddlewareFromProps?.length ? singleToArray(attachmentMiddlewareFromProps) : undefined),
72-
[attachmentMiddlewareFromProps]
73-
);
65+
return middleware.length ? middleware : undefined;
66+
}, [attachmentForScreenReaderMiddlewareFromProps]);
67+
68+
const attachmentMiddleware = useMemoIterable<readonly AttachmentMiddleware[] | undefined>(() => {
69+
const middleware = singleToArray(attachmentMiddlewareFromProps);
70+
71+
return middleware.length ? middleware : undefined;
72+
}, [attachmentMiddlewareFromProps]);
7473

7574
const patchedProps = useComposerProps({
7675
attachmentForScreenReaderMiddleware,

packages/component/src/Composer.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -406,15 +406,15 @@ const Composer = ({
406406
);
407407

408408
const patchedAvatarMiddleware = useMemo<readonly AvatarMiddleware[] | undefined>(() => {
409-
const middleware = Object.freeze([...singleToArray(avatarMiddleware), ...theme.avatarMiddleware]);
409+
const middleware = Object.freeze([...singleToArray(avatarMiddleware ?? []), ...theme.avatarMiddleware]);
410410

411411
return middleware.length ? middleware : undefined;
412412
}, [avatarMiddleware, theme.avatarMiddleware]);
413413

414414
const patchedCardActionMiddleware = useMemo(
415415
() =>
416416
Object.freeze([
417-
...singleToArray(cardActionMiddleware),
417+
...singleToArray(cardActionMiddleware ?? []),
418418
...theme.cardActionMiddleware,
419419
...createDefaultCardActionMiddleware()
420420
]),
@@ -435,13 +435,13 @@ const Composer = ({
435435
);
436436

437437
const patchedToastMiddleware = useMemo(
438-
() => [...singleToArray(toastMiddleware), ...theme.toastMiddleware, ...createDefaultToastMiddleware()],
438+
() => [...singleToArray(toastMiddleware ?? []), ...theme.toastMiddleware, ...createDefaultToastMiddleware()],
439439
[toastMiddleware, theme.toastMiddleware]
440440
);
441441

442442
const patchedTypingIndicatorMiddleware = useMemo(
443443
() => [
444-
...singleToArray(typingIndicatorMiddleware),
444+
...singleToArray(typingIndicatorMiddleware ?? []),
445445
...theme.typingIndicatorMiddleware,
446446
...createDefaultTypingIndicatorMiddleware()
447447
],
@@ -452,7 +452,7 @@ const Composer = ({
452452

453453
const patchedScrollToEndButtonMiddleware = useMemo(
454454
() => [
455-
...singleToArray(scrollToEndButtonMiddleware),
455+
...singleToArray(scrollToEndButtonMiddleware ?? []),
456456
...theme.scrollToEndButtonMiddleware,
457457
...defaultScrollToEndButtonMiddleware
458458
],

packages/react-hooks/src/useMemoIterable.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ export default function useMemoIterable<T extends Iterable<unknown>>(factory: ()
66
return useMemoWithPrevious<T>(prevValue => {
77
const value = factory();
88

9-
return prevValue && iterateEquals(value, prevValue) ? prevValue : value;
9+
return typeof prevValue !== 'undefined' && iterateEquals(value, prevValue) ? prevValue : value;
1010
}, deps);
1111
}

0 commit comments

Comments
 (0)