mirror of
https://github.com/vector-im/hydrogen-web.git
synced 2024-12-23 11:35:04 +01:00
adjust ImageTile to state machine changes
This commit is contained in:
parent
fd81111bfb
commit
a930dec8db
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import {MessageTile} from "./MessageTile.js";
|
import {MessageTile} from "./MessageTile.js";
|
||||||
|
import {SendStatus} from "../../../../../matrix/room/sending/PendingEvent.js";
|
||||||
const MAX_HEIGHT = 300;
|
const MAX_HEIGHT = 300;
|
||||||
const MAX_WIDTH = 400;
|
const MAX_WIDTH = 400;
|
||||||
|
|
||||||
@ -32,14 +32,6 @@ export class ImageTile extends MessageTile {
|
|||||||
this.navigation.segment("room", this._room.id),
|
this.navigation.segment("room", this._room.id),
|
||||||
this.navigation.segment("lightbox", this._entry.id)
|
this.navigation.segment("lightbox", this._entry.id)
|
||||||
]);
|
]);
|
||||||
if (this._entry.attachments) {
|
|
||||||
this.track(this._entry.attachments.url.status.subscribe(() => {
|
|
||||||
this.emitChange("uploadStatus");
|
|
||||||
}));
|
|
||||||
this.track(this._entry.attachments.url.uploadProgress.subscribe(() => {
|
|
||||||
this.emitChange("uploadStatus");
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async _loadEncryptedFile(file) {
|
async _loadEncryptedFile(file) {
|
||||||
@ -69,19 +61,38 @@ export class ImageTile extends MessageTile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get lightboxUrl() {
|
get lightboxUrl() {
|
||||||
return this._lightboxUrl;
|
if (!this.isUploading) {
|
||||||
|
return this._lightboxUrl;
|
||||||
|
}
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
get isUploading() {
|
get isUploading() {
|
||||||
return !!this._entry.attachments;
|
return this._entry.isPending;
|
||||||
}
|
}
|
||||||
|
|
||||||
get uploadStatus() {
|
get uploadStatus() {
|
||||||
if (this._entry.attachments) {
|
const {pendingEvent} = this._entry;
|
||||||
const attachment = this._entry.attachments.url;
|
switch (pendingEvent?.status) {
|
||||||
return `${attachment.status.get()} (${Math.round(attachment.uploadProgress.get() * 100)}%)`;
|
case SendStatus.Waiting:
|
||||||
|
return this.i18n`Waiting`;
|
||||||
|
case SendStatus.EncryptingAttachments:
|
||||||
|
return this.i18n`Encrypting image`;
|
||||||
|
case SendStatus.UploadingAttachments: {
|
||||||
|
const percent = Math.round((pendingEvent.attachmentsSentBytes / pendingEvent.attachmentsTotalBytes) * 100);
|
||||||
|
return this.i18n`Uploading image (${percent}%)`;
|
||||||
|
}
|
||||||
|
case SendStatus.Encrypting:
|
||||||
|
return this.i18n`Encrypting message`;
|
||||||
|
case SendStatus.Sending:
|
||||||
|
return this.i18n`Sending message`;
|
||||||
|
case SendStatus.Sent:
|
||||||
|
return this.i18n`Message sent`;
|
||||||
|
case SendStatus.Error:
|
||||||
|
return this.i18n`Error: ${pendingEvent.error.message}`;
|
||||||
|
default:
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
return "";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get thumbnailUrl() {
|
get thumbnailUrl() {
|
||||||
@ -90,8 +101,9 @@ export class ImageTile extends MessageTile {
|
|||||||
} else if (this._decryptedImage) {
|
} else if (this._decryptedImage) {
|
||||||
return this._decryptedImage.url;
|
return this._decryptedImage.url;
|
||||||
}
|
}
|
||||||
if (this._entry.attachments) {
|
if (this._entry.isPending) {
|
||||||
return this._entry.attachments.url.localPreview.url;
|
const attachment = this._entry.pendingEvent.getAttachment("url");
|
||||||
|
return attachment && attachment.localPreview.url;
|
||||||
}
|
}
|
||||||
const mxcUrl = this._getContent()?.url;
|
const mxcUrl = this._getContent()?.url;
|
||||||
if (typeof mxcUrl === "string") {
|
if (typeof mxcUrl === "string") {
|
||||||
|
Loading…
Reference in New Issue
Block a user