Commit Graph

184 Commits

Author SHA1 Message Date
David Langley d560e513d4 Address comments, show unencrypted rooms,
retain viewModel and services in ScreenSates so you can interact with Previews after the first state.
2021-09-23 23:57:54 +01:00
David Langley 0e62e9b80d Merge branch 'langleyd/4781_swiftui_template_examples' of https://github.com/vector-im/element-ios into langleyd/4781_swiftui_template_example2 2021-09-20 17:28:16 +01:00
David Langley e22848dcda Add counter example to show viewActions modifying the state. 2021-09-20 17:05:54 +01:00
David Langley 84eb32a1e7 Fix Unit tests 2021-09-20 15:56:53 +01:00
David Langley a94969403c Merge branch 'develop' of https://github.com/vector-im/element-ios into langleyd/4781_swiftui_template_examples 2021-09-20 08:50:38 +01:00
David Langley a52604fc56 Cleanup, documentation and ui tests. 2021-09-20 08:47:28 +01:00
David Langley 36e4327a76 Improve scrolling behaviour and add name colors 2021-09-16 23:48:59 +01:00
David Langley cb7b591ff6 Use dynamicMembers for StoreState for single source of truth. Fix bubble grouping and add send message function. 2021-09-16 22:09:32 +01:00
David Langley 62c528ecc0 Merge branch 'langleyd/4781_swiftui_template_examples' of https://github.com/vector-im/element-ios into langleyd/4781_swiftui_template_example2 2021-09-15 17:32:19 +01:00
David Langley 7442569c35 parameter not used in ThemePublisher.configure 2021-09-15 17:12:56 +01:00
David Langley cda4a354d1 Allow defer in xcAwait. simplify sending state actions from a publisher. Fix tests. 2021-09-15 16:09:41 +01:00
David Langley e01fd46b2e Improve StateStore documentation and naming. 2021-09-15 14:04:18 +01:00
David Langley f9e88680e2 Introduce StateStore with bindings example for Chat example. 2021-09-15 11:47:59 +01:00
David Langley 7ad3a001bd Add StateStoreViewModel and publisher extensions for convenienec. 2021-09-14 22:30:25 +01:00
David Langley da5fcd5d4f Add StateStoreViewModel and publisher extensions for convenienec. 2021-09-14 22:28:25 +01:00
David Langley 712dae357b Update RiotSwiftUI symbols to triple slash documentation style with function annotations. 2021-09-13 11:40:38 +01:00
David Langley 518dcbbd91 Fix Naming
Change userService name to templateUserProfileService for templating.
Remove test subclass from MockScreenTest
2021-09-13 11:40:38 +01:00
David Langley b51dbb1b63 Add chat example 2021-09-13 11:39:42 +01:00
David Langley 3d65fbd48f Update RiotSwiftUI symbols to triple slash documentation style with function annotations. 2021-09-13 11:36:33 +01:00
David Langley 886bb98eb1 Fix Naming
Change userService name to templateUserProfileService for templating.
Remove test subclass from MockScreenTest
2021-09-13 10:13:29 +01:00
David Langley a20b50028e move MockScreenTest to UI folder as should be excluded from Unit test target 2021-09-10 17:02:20 +01:00
David Langley 4fb59260d4 Add utility to run UI tests for Screen states, add screen states for template and finish unit test. 2021-09-10 16:43:31 +01:00
David Langley 59a54654b1 Add configurable logger for RiotSwiftUI 2021-09-09 22:42:00 +01:00
David Langley c80dfcd1d0 Update based on comments from Doug 2021-09-09 17:00:45 +01:00
David Langley 2d212ddd8e UITests and Mock Screens
Adds the test targets for Unit and UI tests
Adds mock screen data and utilities to render each mock screen for previews/ui tests.
Changes Published property in the service to CurrentValueSubject. we don't need the synthesized aspect of Published and property wrappers cannot be included in protocols.
2021-09-09 16:23:00 +01:00
David Langley 44abb7ecd4 Apply documentation suggestions from code review
Co-authored-by: manuroe <manuroe@users.noreply.github.com>
2021-09-09 10:31:41 +01:00
David Langley f965620bfe CoordinatorParamters, Type -> Protocol, remove MX Prefix. 2021-09-08 15:47:24 +01:00
David Langley 0131654e47 Add template unit tests and publisher utility. 2021-09-08 15:32:41 +01:00
David Langley d82ae75a0b Add Simple Template Example
- Add a simple Template example that shows a user profile with avatar, displayName and presence.
- ScreenCoordinator: closure based with less protocols and delegates.
- Reducer: Reducer function that manages all state modifications.
- SwiftUI View: Decomposes UI into appropriate sub components.
- Uses Theme and Dependency Management Infrastructure
2021-09-06 17:12:31 +01:00
David Langley 663f73b880 Merge branch 'langleyd/4776_extract_swiftui' of https://github.com/vector-im/element-ios into langleyd/4781_swiftui_template_examples 2021-09-02 14:23:39 +01:00
David Langley 173e9f2220 Fix filename typo 2021-09-02 09:43:54 +01:00
David Langley 3ef02af877 Add simple example with profile header, avatar and name. 2021-09-02 09:37:37 +01:00
David Langley 5bad233b90 Clean up and make an application target so that debug works in live preview. 2021-09-01 14:28:47 +01:00
David Langley ada377dcf2 Finish extraction
- Moves SwiftUI code out of Riot and into RiotSwiftUI which has no dependency on Matrix SDK.
- Git wasn't smart enough to see the file moves. Most feature function has remain unchanged. 1 change I did make was remove NotificationSettingsViewModel's dependence on MxPushRule, so that the view model could be moved into RiotSwiftUI.
- Add LocaleProvider to abstract VectorL10n's use of Matrix SDK language so it can be used in RiotSwiftUI.
- Split Theme into UKit/SwiftUI version to remove RiotSwiftUI's dependence on ThemeService and ThemeV1.
- Migrated from ThemeObserver to ThemePublisher. We push updates to ThemePublisher so that we can remove ThemeService as dependency.
- Add .DS_Store to .gitignore
2021-09-01 12:34:38 +01:00