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.
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:35
attachmentUploads$
attachmentUploads$: Observable<AttachmentUpload[]>
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:39
attachmentsCounter$
attachmentsCounter$: Observable<number>
The current number of attachments
Defined in
projects/stream-chat-angular/src/lib/attachment.service.ts:49
customAttachments$
customAttachments$: BehaviorSubject<Attachment[]>
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:45
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:55
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
| Name | Type | Description |
|---|---|---|
attachment | Attachment | Will set isCustomAttachment to true on the attachment. This is a non-standard field, other SDKs will ignore this property. |
Returns
void
Defined in
projects/stream-chat-angular/src/lib/attachment.service.ts:212
createFromAttachments
createFromAttachments(attachments): void
Maps attachments received from the Stream API to uploads. This is useful when editing a message.
Parameters
| Name | Type | Description |
|---|---|---|
attachments | Attachment[] | Attachemnts received with the message |
Returns
void
Defined in
projects/stream-chat-angular/src/lib/attachment.service.ts:302
deleteAttachment
deleteAttachment(upload): Promise<void>
Deletes an attachment, the attachment can have any state (error, uploading or success).
Parameters
| Name | Type |
|---|---|
upload | AttachmentUpload |
Returns
Promise<void>
Defined in
projects/stream-chat-angular/src/lib/attachment.service.ts:237
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
| Name | Type | Description |
|---|---|---|
fileList | null | File[] | FileList | The 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:148
mapToAttachments
mapToAttachments(): Attachment[]
Maps the current uploads to a format that can be sent along with the message to the Stream API.
Returns
Attachment[]
the attachments
Defined in
projects/stream-chat-angular/src/lib/attachment.service.ts:267
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:101
retryAttachmentUpload
retryAttachmentUpload(file): Promise<void>
Retries to upload an attachment.
Parameters
| Name | Type |
|---|---|
file | File |
Returns
Promise<void>
A promise with the result
Defined in
projects/stream-chat-angular/src/lib/attachment.service.ts:222
uploadVoiceRecording
uploadVoiceRecording(audioRecording): Promise<boolean>
Upload a voice recording
Parameters
| Name | Type |
|---|---|
audioRecording | AudioRecording |
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:112