Skip to content

Commit 2205de8

Browse files
Initial commit
1 parent 6b6a828 commit 2205de8

3 files changed

Lines changed: 9 additions & 11 deletions

File tree

src/components/MessageComposer/AttachmentSelector/AttachmentSelector.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,8 @@ const useAttachmentSelectorActionsFiltered = (original: AttachmentSelectorAction
282282
ShareLocationDialog = DefaultLocationDialog,
283283
} = useComponentContext();
284284
const { channelCapabilities } = useChannelStateContext();
285-
const { isUploadEnabled } = useAttachmentManagerState();
285+
const { hasAvailableUploadSlots, hasCustomDoUploadRequest, isUploadEnabled } =
286+
useAttachmentManagerState();
286287
const messageComposer = useMessageComposerController();
287288
const channelConfig = messageComposer.channel.getConfig();
288289

@@ -292,9 +293,8 @@ const useAttachmentSelectorActionsFiltered = (original: AttachmentSelectorAction
292293
.filter((action) => {
293294
if (action.type === 'uploadFile')
294295
return (
295-
channelCapabilities['upload-file'] &&
296-
channelConfig?.uploads &&
297-
isUploadEnabled
296+
(!hasCustomDoUploadRequest && channelConfig?.uploads && isUploadEnabled) ||
297+
(hasCustomDoUploadRequest && hasAvailableUploadSlots)
298298
);
299299

300300
if (action.type === 'createPoll')
@@ -328,6 +328,8 @@ const useAttachmentSelectorActionsFiltered = (original: AttachmentSelectorAction
328328
ShareLocationDialog,
329329
channelCapabilities,
330330
channelConfig,
331+
hasAvailableUploadSlots,
332+
hasCustomDoUploadRequest,
331333
isUploadEnabled,
332334
messageComposer.threadId,
333335
original,
@@ -343,7 +345,6 @@ export const AttachmentSelector = ({
343345
const { t } = useTranslationContext();
344346
const { ContextMenu: ContextMenuComponent = ContextMenu, Modal = GlobalModal } =
345347
useComponentContext();
346-
const { channelCapabilities } = useChannelStateContext();
347348
const messageComposer = useMessageComposerController();
348349
const isCooldownActive = useIsCooldownActive();
349350
const { command } = useStateStore(
@@ -434,7 +435,7 @@ export const AttachmentSelector = ({
434435
return (
435436
<AttachmentSelectorContextProvider value={{ fileInput }}>
436437
<div className='str-chat__attachment-selector' {...inertProps}>
437-
{channelCapabilities['upload-file'] && <UploadFileInput ref={setFileInput} />}
438+
<UploadFileInput ref={setFileInput} />
438439
<AttachmentSelectorButton
439440
{...buttonProps}
440441
aria-expanded={menuDialogIsOpen}

src/components/MessageComposer/hooks/useAttachmentManagerState.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ export const useAttachmentManagerState = () => {
1414
availableUploadSlots: attachmentManager.availableUploadSlots,
1515
blockedUploadsCount: attachmentManager.blockedUploadsCount,
1616
failedUploadsCount: attachmentManager.failedUploadsCount,
17+
hasAvailableUploadSlots: attachmentManager.hasAvailableUploadSlots,
18+
hasCustomDoUploadRequest: attachmentManager.hasCustomDoUploadRequest,
1719
isUploadEnabled: attachmentManager.isUploadEnabled,
1820
pendingUploadsCount: attachmentManager.pendingUploadsCount,
1921
successfulUploadsCount: attachmentManager.successfulUploadsCount,

src/components/ReactFileUtilities/UploadButton.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import React, { forwardRef, useCallback, useMemo } from 'react';
66
import { useHandleFileChangeWrapper } from './utils';
77
import { useMessageComposerContext, useTranslationContext } from '../../context';
88
import { useMessageComposerController } from '../MessageComposer/hooks/useMessageComposerController';
9-
import { useAttachmentManagerState } from '../MessageComposer/hooks/useAttachmentManagerState';
10-
import { useIsCooldownActive } from '../MessageComposer/hooks/useIsCooldownActive';
119
import { useStateStore } from '../../store';
1210
import type { MessageComposerConfig } from 'stream-chat';
1311
import type { PartialSelected } from '../../types/types';
@@ -43,12 +41,10 @@ export const UploadFileInput = forwardRef(function UploadFileInput(
4341
const { textareaRef } = useMessageComposerContext();
4442
const messageComposer = useMessageComposerController();
4543
const { attachmentManager } = messageComposer;
46-
const { isUploadEnabled } = useAttachmentManagerState();
4744
const { acceptedFiles, maxNumberOfFilesPerMessage } = useStateStore(
4845
messageComposer.configState,
4946
attachmentManagerConfigStateSelector,
5047
);
51-
const isCooldownActive = useIsCooldownActive();
5248
const id = useMemo(() => nanoid(), []);
5349

5450
const onFileChange = useCallback(
@@ -65,7 +61,6 @@ export const UploadFileInput = forwardRef(function UploadFileInput(
6561
accept={acceptedFiles?.join(',')}
6662
aria-label={t('aria/File upload')}
6763
data-testid='file-input'
68-
disabled={!isUploadEnabled || isCooldownActive}
6964
id={id}
7065
multiple={maxNumberOfFilesPerMessage > 1}
7166
{...props}

0 commit comments

Comments
 (0)