AttachmentService

The AttachmentService manages the uploads of a message input.

You can read more about uploads in the Stream API documentation. You can use Stream’s API or the dashboard to customize the file and image upload configuration.

Type parameters

NameType
Textends DefaultStreamChatGenerics = DefaultStreamChatGenerics

Properties

attachmentUploadInProgressCounter$

attachmentUploadInProgressCounter$: BehaviorSubject<number>

Emits the number of uploads in progress.

You can increment and decrement this counter if you’re using custom attachments and want to disable message sending until all attachments are uploaded.

The SDK will handle updating this counter for built-in attachments, but for custom attachments you should take care of this.

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:41


attachmentUploads$

attachmentUploads$: Observable<AttachmentUpload<DefaultStreamChatGenerics>[]>

Emits the state of the uploads (AttachmentUpload[]), it adds a state (success, error or uploading) to each file the user selects for upload. It is used by the AttachmentPreviewList to display the attachment previews.

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:45


attachmentsCounter$

attachmentsCounter$: Observable<number>

The current number of attachments

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:55


customAttachments$

customAttachments$: BehaviorSubject<Attachment<T>[]>

You can get and set the list if uploaded custom attachments

By default the SDK components won’t display these, but you can provide your own customAttachmentPreviewListTemplate$ and customAttachmentListTemplate$ for the CustomTemplatesService.

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:51


maxNumberOfAttachments

maxNumberOfAttachments: number = 30

The maximum number of attachments allowed for a message.

The maximum is 30, you can set it to lower, but not higher.

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:61

Methods

addAttachment

addAttachment(attachment): void

You can add custom image, video and file attachments using this method.

Note: If you just want to use your own CDN for file uploads, you don’t necessary need this method, you can just specify you own upload function in the ChannelService

Parameters

NameType
attachmentAttachment<T>

Returns

void

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:216


createFromAttachments

createFromAttachments(attachments): void

Maps attachments received from the Stream API to uploads. This is useful when editing a message.

Parameters

NameTypeDescription
attachmentsAttachment<T>[]Attachemnts received with the message

Returns

void

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:306


deleteAttachment

deleteAttachment(upload): Promise<void>

Deletes an attachment, the attachment can have any state (error, uploading or success).

Parameters

NameType
uploadAttachmentUpload<DefaultStreamChatGenerics>

Returns

Promise<void>

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:241


filesSelected

filesSelected(fileList): Promise<undefined | boolean>

Uploads the selected files, and creates preview for image files. The result is propagated throught the attachmentUploads$ stream.

Parameters

NameTypeDescription
fileListnull | File[] | FileListThe files selected by the user, if you have Blobs instead of Files, you can convert them with this method: https://developer.mozilla.org/en-US/docs/Web/API/File/File

Returns

Promise<undefined | boolean>

A promise with true or false. If false is returned the upload was canceled because of a client side error. The error is emitted via the NotificationService.

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:154


mapToAttachments

mapToAttachments(): Attachment<DefaultGenerics>[]

Maps the current uploads to a format that can be sent along with the message to the Stream API.

Returns

Attachment<DefaultGenerics>[]

the attachments

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:271


resetAttachmentUploads

resetAttachmentUploads(): void

Resets the attachments uploads (for example after the message with the attachments sent successfully)

Returns

void

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:107


retryAttachmentUpload

retryAttachmentUpload(file): Promise<void>

Retries to upload an attachment.

Parameters

NameType
fileFile

Returns

Promise<void>

A promise with the result

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:226


uploadVoiceRecording

uploadVoiceRecording(audioRecording): Promise<boolean>

Upload a voice recording

Parameters

NameType
audioRecordingAudioRecording

Returns

Promise<boolean>

A promise with true or false. If false is returned the upload was canceled because of a client side error. The error is emitted via the NotificationService.

Defined in

projects/stream-chat-angular/src/lib/attachment.service.ts:118

© Getstream.io, Inc. All Rights Reserved.