Commit Graph

45 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 bd4d9974a8 Merge branch 'develop' of github.com:vector-im/element-ios into langleyd/4781_swiftui_template_example2 2021-09-23 12:31:33 +01:00
David Langley 1da6674006 Add viewAction to state action. 2021-09-21 11:22:05 +01:00
David Langley 3bc582c8b5 Only display unencrypted rooms which we can use with the chat view. 2021-09-21 08:06:27 +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 a52604fc56 Cleanup, documentation and ui tests. 2021-09-20 08:47:28 +01:00
David Langley 01f96afe12 Add Flow coordinator and hook up screens. 2021-09-17 10:46:40 +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 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 cd1c8a75f3 Add subviews for message and image 2021-09-13 11:39:42 +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 0b38e09c02 fix immutability 2021-09-10 16:56:35 +01:00
David Langley bebdad3d5d fix example userId and avatarUrl 2021-09-10 16:55:11 +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 c7524fd16e Merge branch 'langleyd/4781_swiftui_template_examples' of https://github.com/vector-im/element-ios into langleyd/4781_swiftui_template_examples 2021-09-09 10:50:42 +01:00
David Langley f3d9ea49f0 Make reducer static, pass viewState directly to reducer, log reducer. 2021-09-09 10:50:39 +01:00
David Langley 4af9b66f56 Update RiotSwiftUI/Modules/Template/SimpleUserProfileExample/ViewModel/TemplateUserProfileViewModel.swift
Co-authored-by: manuroe <manuroe@users.noreply.github.com>
2021-09-09 10:34:25 +01:00
David Langley 0826ccdb31 fix build 2021-09-08 17:56:51 +01:00
David Langley ad287d8dea Fix retain cycle 2021-09-08 16:37:56 +01:00
David Langley 15a7b43423 Extract presence listener setup out to own function. 2021-09-08 16:28:08 +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 a35feeba26 Fix ordering, add pragmas, fix visibility on a few functions, remove default param on state. 2021-09-08 11:43:57 +01:00
David Langley c890c831c5 Correct preview name and create template script 2021-09-08 00:00:34 +01:00
David Langley 8259b82fb7 Improve folder name 2021-09-07 23:04:52 +01:00
David Langley 72cfb688e5 Make naming of symbols consistent 2021-09-07 23:02:26 +01:00
David Langley bcc3b23b1c Remove unneeded protocol and methods on VectortHostingController 2021-09-07 22:49:11 +01:00
David Langley 2720050646 Add ViewActions and ViewModelActions for Coordinator
- also add Marks
2021-09-07 16:57:08 +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 3ef02af877 Add simple example with profile header, avatar and name. 2021-09-02 09:37:37 +01:00