In libraries/features/blog/src/lib/components/blog-create/blog-create.ts, both createBlogPost() and saveDraft() set isUploading to true then subscribe to blogService.createBlogPost with:
subscribe({next:()=>{/* snack + reset */},error:(error)=>{/* snack only */},complete:()=>{this.isUploading.set(false);},})
On Observable error, RxJS does not invoke complete. So isUploading remains true and the Publish / Save Draft buttons stay [disabled] until a full page reload.
Expected
Error path should clear isUploading (e.g. set false inside error, or use finalize(() => this.isUploading.set(false))).
Repro (unit)
Covered by blog-create.render.spec.ts — createBlogPost error snacks but leaves isUploading stuck and the saveDraft error arm.
## Summary
In `libraries/features/blog/src/lib/components/blog-create/blog-create.ts`, both `createBlogPost()` and `saveDraft()` set `isUploading` to `true` then subscribe to `blogService.createBlogPost` with:
```ts
subscribe({
next: () => { /* snack + reset */ },
error: (error) => { /* snack only */ },
complete: () => { this.isUploading.set(false); },
})
```
On Observable **error**, RxJS does **not** invoke `complete`. So `isUploading` remains `true` and the Publish / Save Draft buttons stay `[disabled]` until a full page reload.
## Expected
Error path should clear `isUploading` (e.g. set false inside `error`, or use `finalize(() => this.isUploading.set(false))`).
## Repro (unit)
Covered by `blog-create.render.spec.ts` — `createBlogPost error snacks but leaves isUploading stuck` and the saveDraft error arm.
## Found during
Wave 6 coverage loop tick 2, agent a4 (blog/book).
Already present on spikersoft-angularmaster. createBlogPost / saveDraft error paths set isUploading to false, so Publish / Save Draft are not stuck disabled after HTTP failure. Closing.
Already present on `spikersoft-angular` `master`. `createBlogPost` / `saveDraft` error paths set `isUploading` to false, so Publish / Save Draft are not stuck disabled after HTTP failure. Closing.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
In
libraries/features/blog/src/lib/components/blog-create/blog-create.ts, bothcreateBlogPost()andsaveDraft()setisUploadingtotruethen subscribe toblogService.createBlogPostwith:On Observable error, RxJS does not invoke
complete. SoisUploadingremainstrueand the Publish / Save Draft buttons stay[disabled]until a full page reload.Expected
Error path should clear
isUploading(e.g. set false insideerror, or usefinalize(() => this.isUploading.set(false))).Repro (unit)
Covered by
blog-create.render.spec.ts—createBlogPost error snacks but leaves isUploading stuckand the saveDraft error arm.Found during
Wave 6 coverage loop tick 2, agent a4 (blog/book).
Already present on
spikersoft-angularmaster.createBlogPost/saveDrafterror paths setisUploadingto false, so Publish / Save Draft are not stuck disabled after HTTP failure. Closing.