Commit Graph

1108 Commits

Author SHA1 Message Date
hmhv
4b10e450f9 Fix tutorials (#2355)
* add deleted code

* fix compile error

* fix doc link

* add for alert
2023-08-06 18:22:21 -04:00
Brandon Williams
3d64d73d7c Small clarification for timer test in tutorial. (#2353)
* Small clarification for timer test in tutorial.

* Update Sources/ComposableArchitecture/Documentation.docc/Tutorials/MeetTheComposableArchitecture/01-Essentials/03-TestingYourFeatures/01-03-TestingYourFeature.tutorial

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

---------

Co-authored-by: Stephen Celis <stephen@stephencelis.com>
2023-08-04 13:26:24 -04:00
Brandon Williams
2c8ad6ffb9 Fix integration test and incorrect deprecation warning on TestStore (#2347)
* Fix integration test in iOS 17.

* Fix deprecation warning on TestStore.

* wip

* wip
2023-08-04 13:26:09 -04:00
Brandon Williams
402bccae2a Improve TestStore failures on init. (#2352)
* Improve TestStore failures on init.

* Convert fireAndForget to run
2023-08-04 12:27:45 -04:00
Brandon Williams
440015683f Update README.md 2023-08-04 12:14:18 -04:00
Maxim Smirnov
ec1a9c4981 dismiss docs update (#2350)
Co-authored-by: Maxim Smirnov <maxim.smirnov@Maxims-MacBook-Pro.local>
2023-08-04 11:10:45 -04:00
Brandon Williams
c895f87166 Move Dependencies directory under Standups. 2023-08-03 10:15:18 -04:00
Jayson Rhynas
948709714e Fixed typo referencing the property being mutated (#2342) 2023-08-02 10:17:37 -04:00
Brandon Williams
9a8c3a046b Fix tutorial typo. 2023-08-02 06:18:51 -04:00
Stephen Celis
7a6926144f Update README.md 2023-07-31 09:50:34 -07:00
Stephen Celis
af27329232 Bump version in docs (#2336)
* Bump version in docs

* wip
2023-07-31 09:39:57 -07:00
mbrandonw
ed02ed29e0 Run swift-format 2023-07-31 14:20:17 +00:00
Brandon Williams
eb207b636e Use main serial executor in testConcatenate. 2023-07-31 10:15:25 -04:00
Stephen Celis
195284b94b The Composable Architecture 1.0 (#2318)
* docs

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Fix invalid states count for 3 optionals and typos (#2094)

* wip

* wip

* more dismisseffect docs

* fixed some references

* navigation doc corrections

* more nav docs

* fix cancellation tests in release mode

* wrap some tests in #if DEBUG since they are testing expected failures

* update UUIDs in tests to use shorter initializer

* fixed a todo

* wip

* fix merge errors

* wip

* fix

* wip

* wip

* fixing a bunch of todos

* get rid of rawvalue in StackElementID

* more todos

* NavLinkStore docs

* fix swift 5.6 stuff

* fix some standups tests

* fix

* clean up

* docs fix

* fixes

* wip

* 5.6 fix

* wip

* wip

* dont parallelize tests

* updated demo readmes

* wip

* Use ObservedObject instead of StateObject for alert/dialog modifiers.

* integration tests for bad dismissal behavior

* check for runtime warnings in every integration test

* wip

* wip

* wip

* fix

* wip

* wip

* wip

* wip

* wip

* wip

* Drop a bunch of Hashables.

* some nav bug fixes

* wip

* wip

* wip

* fix

* fix

* wip

* wip

* Simplify recording test.

* add concurrent async test

* fix

* wip

* Refact how detail dismisses itself.

* fix

* 5.6 fix

* wip

* wip

* wip

* wip

* Add TestStore.assert.

* Revert "Add TestStore.assert."

This reverts commit a892cccc66.

* add Ukrainian Readme.md (#2121)

* Add TestStore.assert. (#2123)

* Add TestStore.assert.

* wip

* Update Sources/ComposableArchitecture/TestStore.swift

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* Update Sources/ComposableArchitecture/Documentation.docc/Extensions/TestStore.md

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* fix tests

---------

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* Run swift-format

* push for store.finish and presentation

* wip

* move docs around

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Add case subscripts

* wip

* wip

* wip

* 5.7-only

* wip

* wip

* wip

* wip

* fix

* revert store.finish task cancellation

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* add test for presentation scope

* wip

* wip

* wip

* wip

* wip

* cleanup

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Rename ReducerProtocol.swift to Reducer.swift (#2206)

* Hard-deprecate old SwitchStore initializers/overloads

* wip

* wip

* Resolve CaseStudies crash (#2258)

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Bump timeout for CI

* wip

* Remove old deprecations

* Simplify test store

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* images for tutorials

* wip

* wip

* Remove deprecated alert APIs

* Bump dependencies

* wip

---------

Co-authored-by: Brandon Williams <mbrandonw@hey.com>
Co-authored-by: 유재호 <y73447jh@gmail.com>
Co-authored-by: Dmytro <barabashdmyto@gmail.com>
Co-authored-by: Brandon Williams <135203+mbrandonw@users.noreply.github.com>
Co-authored-by: mbrandonw <mbrandonw@users.noreply.github.com>
1.0.0
2023-07-30 14:58:40 -07:00
stephencelis
4cf2104cf1 Run swift-format 0.58.0 2023-07-30 18:05:28 +00:00
Stephen Celis
4406349a57 Deprecate old alert APIs in favor of new presentation APIs (#2335)
* Deprecate old alert APIs in favor of new presentation APIs

* wip

* wip

* wip
2023-07-30 11:01:38 -07:00
Stephen Celis
37b8a41e09 Allow chaining into BindingViewState (#2334)
Currently, `BindingViewStore`s can only directly derive
`BindingViewState` for a view state struct, and then the view store can
derive a binding and use dynamic member lookup to pluck out a field for
a view. This means potentially exposing view state to far more state
than necessary.

To prevent this we can add dynamic member lookup to the binding view
state itself, which allows a view state struct to chip away any state it
doesn't care about.
2023-07-30 10:53:46 -07:00
mbrandonw
5b0ad4c7ce Run swift-format 2023-07-29 15:39:28 +00:00
Brandon Williams
90c2252d71 Some small improvements to Standups. (#2333)
* Some small improvements to Standups.

* wip

* Update Examples/Standups/Standups/AppFeature.swift

---------

Co-authored-by: Stephen Celis <stephen@stephencelis.com>
2023-07-29 11:30:24 -04:00
Brandon Williams
cf29ea1b58 Fix compiler error in tutorial. (#2331)
* Fix compiler error in tutorial.

* wip
2023-07-28 19:47:31 -04:00
Stephen Celis
db2a55fd89 Expose StorePublisher directly on Store (#2330)
Now that `ViewStore`s have a limited future, we should surface
functionality that was `ViewStore`-only to the `Store` instead.
0.57.0
2023-07-28 10:01:33 -07:00
Brandon Williams
2c93195c23 Prerelease 1.0 (#1929)
* Converted voice memos back to identified array

* update deps

* update docs for DismissEffect

* wip

* Add Sendable conformance to PresentationState (#2086)

* wip

* swift-format

* wip

* wip

* fix some warnings

* docs

* wip

* wip

* Catch some typos in Articles (#2088)

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* docs

* wip

* wip

* docs

* wip

* wip

* wip

* wip

* docs

* docs

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Fix invalid states count for 3 optionals and typos (#2094)

* wip

* wip

* more dismisseffect docs

* fixed some references

* navigation doc corrections

* more nav docs

* fix cancellation tests in release mode

* wrap some tests in #if DEBUG since they are testing expected failures

* update UUIDs in tests to use shorter initializer

* fixed a todo

* wip

* fix merge errors

* wip

* fix

* wip

* wip

* fixing a bunch of todos

* get rid of rawvalue in StackElementID

* more todos

* NavLinkStore docs

* fix swift 5.6 stuff

* fix some standups tests

* fix

* clean up

* docs fix

* fixes

* wip

* 5.6 fix

* wip

* wip

* dont parallelize tests

* updated demo readmes

* wip

* Use ObservedObject instead of StateObject for alert/dialog modifiers.

* integration tests for bad dismissal behavior

* check for runtime warnings in every integration test

* wip

* wip

* wip

* fix

* wip

* wip

* wip

* wip

* wip

* wip

* Drop a bunch of Hashables.

* some nav bug fixes

* wip

* wip

* wip

* fix

* fix

* wip

* wip

* Simplify recording test.

* add concurrent async test

* fix

* wip

* Refact how detail dismisses itself.

* fix

* 5.6 fix

* wip

* wip

* wip

* wip

* Add TestStore.assert.

* Revert "Add TestStore.assert."

This reverts commit a892cccc66.

* add Ukrainian Readme.md (#2121)

* Add TestStore.assert. (#2123)

* Add TestStore.assert.

* wip

* Update Sources/ComposableArchitecture/TestStore.swift

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* Update Sources/ComposableArchitecture/Documentation.docc/Extensions/TestStore.md

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* fix tests

---------

Co-authored-by: Stephen Celis <stephen@stephencelis.com>

* Run swift-format

* push for store.finish and presentation

* wip

* move docs around

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Add case subscripts

* wip

* wip

* wip

* 5.7-only

* wip

* wip

* wip

* wip

* fix

* revert store.finish task cancellation

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* add test for presentation scope

* wip

* wip

* wip

* wip

* wip

* cleanup

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Rename ReducerProtocol.swift to Reducer.swift (#2206)

* Hard-deprecate old SwitchStore initializers/overloads

* wip

* wip

* Resolve CaseStudies crash (#2258)

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Bump timeout for CI

* wip

* wip

---------

Co-authored-by: Jackson Utsch <jutechs@gmail.com>
Co-authored-by: Stephen Celis <stephen@stephencelis.com>
Co-authored-by: 유재호 <y73447jh@gmail.com>
Co-authored-by: Dmytro <barabashdmyto@gmail.com>
Co-authored-by: mbrandonw <mbrandonw@users.noreply.github.com>
2023-07-27 17:35:07 -07:00
HanjunYu
bad761c919 Add Store.send(_ action:) return StoreTask (#2323)
Co-authored-by: hanjun-yu <hanjun.yu@snowcorp.com>
2023-07-26 09:23:39 -07:00
Paul
382e44f49b Add missing try, remove . (#2319) 2023-07-24 12:23:01 -07:00
Brandon Williams
34463e023e Fix deprecation message. 2023-07-24 08:30:30 -04:00
Stephen Celis
cc8f6611e9 Abbreviate nested binding action values (#2315)
* Abbreviate nested binding action values

Now that binding action key paths cannot use dynamic member lookup,
dumps are a little more unwieldy to read when nested state is involved.
Generally one can look at the state diff to figure out what changed, so
let's abbreviate the action's state when we can.

* wip
2023-07-21 08:47:30 -07:00
Ryu
e7ee18d196 'init(initialState:reducer:prepareDependencies:file:line:)' is deprecated (#2313) 2023-07-19 11:47:16 -07:00
Ryu
599177a102 Remove TaskCancellableValue due to ConcurrencyExtras addition (#2310)
* Delete TaskCancellableValue

* add import ConcurrencyExtras

* Replaced with @_exported import
2023-07-19 07:51:01 -07:00
Ryu
22a1211b0e delete unnecessary await (#2312) 2023-07-19 10:28:53 -04:00
Stephen Celis
5473baa42d Re-pin swift-custom-dump to 0.11.0 2023-07-18 19:01:18 -07:00
Stephen Celis
087b00e388 Restore missing deprecation 2023-07-18 15:35:36 -07:00
stephencelis
e0c9ff8e09 Run swift-format 2023-07-18 00:24:21 +00:00
Brandon Williams
17add0fba7 Remove some old navigation case studies. (#2302)
* Remove some old navigation case studies.

* fix some deprecation warnings

* wip

---------

Co-authored-by: Stephen Celis <stephen@stephencelis.com>
0.56.0
2023-07-17 17:15:23 -07:00
Tiago Pigatto Lenza
36921f0d87 Add example for multiple destinations using an Enum state (#2231)
* Added example for multiple destinations

* update some things

* clean up

* clean up

---------

Co-authored-by: Brandon Williams <mbrandonw@hey.com>
Co-authored-by: Stephen Celis <stephen@stephencelis.com>
2023-07-17 17:12:40 -07:00
stephencelis
8e78b84417 Run swift-format 2023-07-17 23:38:58 +00:00
Stephen Celis
a1e454c1e6 Depend on ConcurrencyExtras (#2301)
* wip

* wip

* wip

Fixes #1902.

* wip

* wip

* wip

* wip

* fix

* added test for subscribe/receive

---------

Co-authored-by: Brandon Williams <mbrandonw@hey.com>
2023-07-17 15:54:15 -07:00
stephencelis
2dafe44c66 Run swift-format 2023-07-17 22:05:06 +00:00
Paul
8d54102cce Add TestStoreOf typealias (#2277)
Co-authored-by: Stephen Celis <stephen@stephencelis.com>
2023-07-17 14:54:11 -07:00
Timur Guliamov
945ab055a8 Fixed tree-based navigation: dismiss action is not sent when navigating back (#2210)
* fixed dismiss action sending when navigating back

* Revert "fixed dismiss action sending when navigating back"

This reverts commit 52f7340406.

* added integration ui test

* fixed id for presentation with `isPresented` parameter

* fixed integration tests
2023-07-17 14:36:13 -07:00
stephencelis
b6d22ef222 Run swift-format 2023-07-16 22:31:04 +00:00
Stephen Celis
1595003d95 Clean up test store deprecation messages (#2294)
* Clean up test store deprecation messages

* wip

* wip
2023-07-16 15:27:28 -07:00
Stephen Celis
faadf6a780 Add named closure arguments (#2295)
* Add named closure arguments

Better for documentation and auto-fill.

* wip
2023-07-16 15:27:02 -07:00
Ben Lings
c113ba4f22 Fix for infinite loop when combining Stack and Tree navigation (#2289)
* Fix for https://github.com/pointfreeco/swift-composable-architecture/issues/2288

* Add navigation destination to NavigationStackTestCase

* Add UI test case

* clean up

---------

Co-authored-by: Ben Lings <ben.lings@bp.com>
Co-authored-by: Brandon Williams <mbrandonw@hey.com>
2023-07-16 15:24:03 -07:00
Stephen Celis
4feea763fd Deprecate TestStore scoping (#2292) 2023-07-16 15:22:25 -07:00
stephencelis
05cc9bd29e Run swift-format 2023-07-14 20:19:39 +00:00
Harshil Shah
0602a68941 Added the ability to specify an animation or transaction with Store.send (#2241)
* Added an internal initialiser for ViewStoreTask

This is done to allow returning a ViewStoreTask from Store.send(_:animation:)

* Added Store.send methods that allow specifying an animation or transaction

* Added StoreTask

* Made StoreTask.rawValue internal

This is to allow ViewStore to access the rawValue as it does currently

* Made ViewStoreTask a deprecated typealias of StoreTask

* Store.send methods now return a StoreTask instead of a ViewStoreTask

* Update ViewStore.swift

* Update Sources/ComposableArchitecture/Store.swift

---------

Co-authored-by: Stephen Celis <stephen.celis@gmail.com>
Co-authored-by: Stephen Celis <stephen@stephencelis.com>
2023-07-14 13:10:49 -07:00
Stephen Celis
c28311e351 Fix macOS dismissal (#2284)
Fixes #2182.

The `id` used for comparison appears to sometimes be `nil`, for example
on macOS when drilling out of a `navigationDestination`. This PR adds a
little nuance to the dismissal logic of `presentationModifier`:

  * It explicitly checks that something is presented
  * It always sends `dismiss` if the cached `id` was `nil`

We should maybe have some integration tests for macOS for this...
2023-07-14 10:31:18 -07:00
Stephen Celis
8455c5179f Fix cancellation ID existentials in iOS 14 (#2283)
* Fix cancellation ID existentials in iOS 14

Fixes #2233.

On iOS 14, `DismissEffect` is broken because effect cancellation uses
`AnyHashable` throughout, which can lead to nested
`AnyHashable(AnyHashable(...))` IDs, which can hash differently
depending on the level of nesting. By preserving the hashable ID up to
being stored in the internal cancellation token type, we can avoid a
hash lookup failure that prevents a dismissal from happening.

* wip
2023-07-14 10:26:03 -07:00
Stephen Celis
c0a9e1c3bd Make ViewStoreTask.cancel synchronous (#2282)
Currently, `ViewStoreTask.cancel` works like `TestStoreTask`, where
it'll cancel _and_ await cancellation to complete. This is needlessly
limiting, and probably not what you want when interacting with
cancellation.
2023-07-14 10:22:30 -07:00
Stephen Celis
4824056bd9 Update README.md 2023-07-12 17:19:11 -07:00