88package io.element.android.features.space.impl.root
99
1010import androidx.compose.ui.tooling.preview.PreviewParameterProvider
11+ import androidx.compose.ui.tooling.preview.datasource.LoremIpsum
1112import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteState
1213import io.element.android.features.invite.api.acceptdecline.anAcceptDeclineInviteState
1314import io.element.android.libraries.architecture.AsyncAction
@@ -25,60 +26,30 @@ open class SpaceStateProvider : PreviewParameterProvider<SpaceState> {
2526 override val values: Sequence <SpaceState >
2627 get() = sequenceOf(
2728 aSpaceState(),
29+ aSpaceState(parentSpace = aParentSpace(joinRule = JoinRule .Public )),
30+ aSpaceState(parentSpace = aParentSpace(joinRule = JoinRule .Restricted (persistentListOf()))),
31+ aSpaceState(children = aListOfSpaceRooms()),
2832 aSpaceState(
29- parentSpace = aSpaceRoom(
30- joinRule = JoinRule .Public
31- )
32- ),
33- aSpaceState(
34- parentSpace = aSpaceRoom(
35- joinRule = JoinRule .Restricted (persistentListOf())
36- )
37- ),
38- aSpaceState(
39- parentSpace = aSpaceRoom(
40- numJoinedMembers = 5 ,
41- childrenCount = 10 ,
42- worldReadable = true ,
43- ),
44- hasMoreToLoad = true ,
45- ),
46- aSpaceState(
47- hasMoreToLoad = true ,
48- children = aListOfSpaceRooms(),
49- ),
50- aSpaceState(
51- hasMoreToLoad = false ,
33+ parentSpace = aParentSpace(),
5234 children = aListOfSpaceRooms(),
5335 joiningRooms = setOf (RoomId (" !spaceId0:example.com" )),
36+ hasMoreToLoad = false
5437 ),
5538 aSpaceState(
56- hasMoreToLoad = false ,
57- topicViewerState = TopicViewerState .Shown (
58- topic = " Description of the space goes right here. Lorem ipsum dolor sit amet consectetur. " +
59- " Leo viverra morbi habitant in. Sem amet enim habitant nibh augue mauris. " +
60- " Interdum mauris ultrices tincidunt proin morbi erat aenean risus nibh. " +
61- " Diam amet sit fermentum vulputate faucibus."
62- ),
63- children = aListOfSpaceRooms(),
39+ topicViewerState = TopicViewerState .Shown (topic = " Space description goes here." + LoremIpsum (20 ).values.first()),
6440 ),
6541 // Add other states here
6642 )
6743}
6844
6945fun aSpaceState (
70- parentSpace : SpaceRoom ? = aSpaceRoom(
71- numJoinedMembers = 5,
72- childrenCount = 10,
73- worldReadable = true,
74- roomId = RoomId ("!spaceId0:example.com"),
75- ),
46+ parentSpace : SpaceRoom ? = aParentSpace(),
7647 children : List <SpaceRoom > = emptyList(),
7748 seenSpaceInvites : Set <RoomId > = emptySet(),
7849 joiningRooms : Set <RoomId > = emptySet(),
7950 joinActions : Map <RoomId , AsyncAction <Unit >> = joiningRooms.associateWith { AsyncAction .Loading },
8051 hideInvitesAvatar : Boolean = false,
81- hasMoreToLoad : Boolean = false ,
52+ hasMoreToLoad : Boolean = true ,
8253 acceptDeclineInviteState : AcceptDeclineInviteState = anAcceptDeclineInviteState(),
8354 topicViewerState : TopicViewerState = TopicViewerState .Hidden ,
8455 eventSink : (SpaceEvents ) -> Unit = { },
@@ -94,6 +65,19 @@ fun aSpaceState(
9465 eventSink = eventSink,
9566)
9667
68+ private fun aParentSpace (
69+ joinRule : JoinRule ? = null,
70+ ): SpaceRoom {
71+ return aSpaceRoom(
72+ numJoinedMembers = 5 ,
73+ childrenCount = 10 ,
74+ worldReadable = true ,
75+ joinRule = joinRule,
76+ roomId = RoomId (" !spaceId0:example.com" ),
77+ topic = " Space description goes here. " + LoremIpsum (20 ).values.first(),
78+ )
79+ }
80+
9781private fun aListOfSpaceRooms (): List <SpaceRoom > {
9882 return listOf (
9983 aSpaceRoom(
0 commit comments