feat(editor): improve status display in image block (#12194)
Closes: [BS-3451](https://linear.app/affine-design/issue/BS-3451/image-block-status-组件)
This commit is contained in:
@@ -51,6 +51,12 @@ export class ImageBlockPageComponent extends WithDisposable(ShadowlessElement) {
|
|||||||
background: ${unsafeCSSVarV2('loading/backgroundLayer')};
|
background: ${unsafeCSSVarV2('loading/backgroundLayer')};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
affine-page-image .affine-image-status {
|
||||||
|
position: absolute;
|
||||||
|
left: 18px;
|
||||||
|
bottom: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
affine-page-image .resizable-img {
|
affine-page-image .resizable-img {
|
||||||
position: relative;
|
position: relative;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
@@ -354,7 +360,7 @@ export class ImageBlockPageComponent extends WithDisposable(ShadowlessElement) {
|
|||||||
? ImageSelectedRect(this._doc.readonly)
|
? ImageSelectedRect(this._doc.readonly)
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
const { loading, icon } = this.state;
|
const { loading, error, icon, description } = this.state;
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
<div class="resizable-img" style=${styleMap(imageSize)}>
|
<div class="resizable-img" style=${styleMap(imageSize)}>
|
||||||
@@ -371,6 +377,15 @@ export class ImageBlockPageComponent extends WithDisposable(ShadowlessElement) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
${when(loading, () => html`<div class="loading">${icon}</div>`)}
|
${when(loading, () => html`<div class="loading">${icon}</div>`)}
|
||||||
|
${when(
|
||||||
|
error && description,
|
||||||
|
() =>
|
||||||
|
html`<affine-resource-status
|
||||||
|
class="affine-image-status"
|
||||||
|
.message=${description}
|
||||||
|
.reload=${() => this.block.refreshData()}
|
||||||
|
></affine-resource-status>`
|
||||||
|
)}
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,12 @@ export class ImageEdgelessBlockComponent extends GfxBlockComponent<ImageBlockMod
|
|||||||
background: ${unsafeCSSVarV2('loading/backgroundLayer')};
|
background: ${unsafeCSSVarV2('loading/backgroundLayer')};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
affine-edgeless-image .affine-image-status {
|
||||||
|
position: absolute;
|
||||||
|
left: 18px;
|
||||||
|
bottom: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
affine-edgeless-image .resizable-img,
|
affine-edgeless-image .resizable-img,
|
||||||
affine-edgeless-image .resizable-img img {
|
affine-edgeless-image .resizable-img img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -136,6 +142,15 @@ export class ImageEdgelessBlockComponent extends GfxBlockComponent<ImageBlockMod
|
|||||||
resovledState.loading,
|
resovledState.loading,
|
||||||
() => html`<div class="loading">${loadingIcon}</div>`
|
() => html`<div class="loading">${loadingIcon}</div>`
|
||||||
)}
|
)}
|
||||||
|
${when(
|
||||||
|
resovledState.error && resovledState.description,
|
||||||
|
() =>
|
||||||
|
html`<affine-resource-status
|
||||||
|
class="affine-image-status"
|
||||||
|
.message=${resovledState.description}
|
||||||
|
.reload=${() => this.refreshData()}
|
||||||
|
></affine-resource-status>`
|
||||||
|
)}
|
||||||
`,
|
`,
|
||||||
() =>
|
() =>
|
||||||
html`<affine-image-fallback-card
|
html`<affine-image-fallback-card
|
||||||
|
|||||||
Reference in New Issue
Block a user