diff --git a/src/Loom.Web/Components/Pages/FeatureWorkspace.razor b/src/Loom.Web/Components/Pages/FeatureWorkspace.razor index 33e4290..6e8a34b 100644 --- a/src/Loom.Web/Components/Pages/FeatureWorkspace.razor +++ b/src/Loom.Web/Components/Pages/FeatureWorkspace.razor @@ -13,11 +13,13 @@ @inject IFeatureService Features @inject IArtifactRepository ArtifactRepo @inject Loom.Application.Artifacts.IArtifactService Artifacts +@inject Loom.Application.Artifacts.IArtifactBlobStore BlobStore @inject IWorkflowEngine Engine @inject IWorkflowRepository Workflows @inject IServiceScopeFactory ScopeFactory @inject Loom.Web.Services.CurrentUserAccessor CurrentUser @inject NavigationManager Nav +@inject IJSRuntime JS @(_view?.Title ?? "Loading…") · Loom @@ -402,6 +404,38 @@ else @if (_attachingArtifact) { +
+ @* Native input absorbs both clicks and drops. Positioned to fill the dropzone via CSS so the visible content shows through but the input still wins for click + drop routing. *@ + +
+ @if (_attachUploadBusy) + { +

Uploading…

+ } + else if (_attachUploadedRef is { } r) + { +

+ Uploaded: @r.Filename + · @r.ContentType · @FormatBytes(r.SizeBytes) + +

+ } + else + { +

+ Drop a file, paste an image, or click to choose. +

+ } + @if (!string.IsNullOrEmpty(_attachUploadError)) + { +

@_attachUploadError

+ } +
+