Skip to content

Releases: anthony1810/ScreenStateKit

1.1.0

20 Mar 00:52

Choose a tag to compare

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

1.0.6

24 Feb 04:37
ebb18df

Choose a tag to compare

  • Remove .claude/ folder from git tracking
  • Add ssk-skill.md usage guide
  • Architecture diagram improvements

1.0.5

09 Feb 01:43
03aefbc

Choose a tag to compare

What's New

  • Skeleton Loading: Add PlaceholderRepresentable protocol and .placeholder() view modifier for skeleton loading support
  • Rename: RMDisplayableError renamed to DisplayableError (deprecated typealias removed)
  • README: Complete API documentation with StateUpdatable, load-more pagination, and skeleton loading sections

Tests

  • Add StreamProducer tests (multi-subscriber, withLatest, finish)
  • Add OnShowErrorModifier and Environment extension tests
  • Add RMLoadmoreView tests

Fixes

  • Fix ViewModel example to match correct do/catch placement