Skip to content

1.1.0

Choose a tag to compare

@anthony1810 anthony1810 released this 20 Mar 00:52
· 14 commits to main since this release

ScreenStateKit 1.1.0

Breaking Changes

  • ScreenActionStore.receive(action:) is now async throws — stores just throw errors
  • nonisolatedReceive(action:) replaces old nonisolated func receive(action:) — creates Task, calls dispatch, returns AnyTask
  • dispatch(action:) (framework-provided) centralizes loadingStarted, error catching via showError, and loadingFinished
  • Action requires Hashable conformance — auto-synthesized lockKey, no manual lockKey computed property needed
  • viewState associated type replaces AScreenState

New Features

  • NonPresentableError: Protocol for silent errors (isSilent: Bool), not shown to user
  • DisplayableError: Now has originalError, isSilent, init(error:)
  • AnyTask: Public type-erased task handle with waitComplete(), isCancelled, cancel()
  • CancelBag: DuplicatePolicy (.cancelExisting/.cancelNew), auto-removal of completed tasks, AnyHashable identifiers
  • StreamProducer: Extracted StreamStorage with deinit cleanup

Deprecations

  • nonIsolatedFinish() on StreamProducer — use await producer.finish() instead

Bug Fixes

  • terminateLoadMoreView() replaces misspelled ternimateLoadmoreView()
  • Deterministic tests using withMainSerialExecutor + Task.megaYield() instead of Task.sleep