diff --git a/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarSidebar.kt b/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarSidebar.kt index b87a5d5d83b8701c31c52ac9097af44ec6222b2e..13cddaa33e84c5e98fe1ba0ab9fa5cfff8d4984b 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarSidebar.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarSidebar.kt @@ -33,7 +33,7 @@ import org.briarproject.briar.desktop.paul.theme.briarBlack import org.briarproject.briar.desktop.paul.theme.briarBlue @Composable -fun BriarSidebar(uiMode: String, setUiMode: (String) -> Unit) { +fun BriarSidebar(uiMode: uiModes, setUiMode: (uiModes) -> Unit) { Surface(modifier = Modifier.width(56.dp).fillMaxHeight(), color = briarBlue) { Column(verticalArrangement = Arrangement.Top) { IconButton( @@ -51,25 +51,25 @@ fun BriarSidebar(uiMode: String, setUiMode: (String) -> Unit) { BriarSidebarButton( uiMode = uiMode, setUiMode = setUiMode, - "Contacts", + uiModes.Contacts, Icons.Filled.Contacts ) BriarSidebarButton( uiMode = uiMode, setUiMode = setUiMode, - "Private Groups", + uiModes.Groups, Icons.Filled.Group ) BriarSidebarButton( uiMode = uiMode, setUiMode = setUiMode, - "Forums", + uiModes.Forums, Icons.Filled.Forum ) BriarSidebarButton( uiMode = uiMode, setUiMode = setUiMode, - "Blogs", + uiModes.Blogs, Icons.Filled.ChromeReaderMode ) } @@ -77,19 +77,19 @@ fun BriarSidebar(uiMode: String, setUiMode: (String) -> Unit) { BriarSidebarButton( uiMode = uiMode, setUiMode = setUiMode, - "Transports", + uiModes.Transports, Icons.Filled.WifiTethering ) BriarSidebarButton( uiMode = uiMode, setUiMode = setUiMode, - "Settings", + uiModes.Settings, Icons.Filled.Settings ) BriarSidebarButton( uiMode = uiMode, setUiMode = setUiMode, - "Sign Out", + uiModes.SignOut, Icons.Filled.Logout ) } @@ -97,7 +97,7 @@ fun BriarSidebar(uiMode: String, setUiMode: (String) -> Unit) { } @Composable -fun BriarSidebarButton(uiMode: String, setUiMode: (String) -> Unit, thisMode: String, icon: ImageVector) { +fun BriarSidebarButton(uiMode: uiModes, setUiMode: (uiModes) -> Unit, thisMode: uiModes, icon: ImageVector) { val bg = if (uiMode == thisMode) briarBlack else briarBlue Column { IconButton( @@ -105,7 +105,7 @@ fun BriarSidebarButton(uiMode: String, setUiMode: (String) -> Unit, thisMode: St .padding(vertical = 4.dp, horizontal = 12.dp), onClick = { setUiMode(thisMode) } ) { - Icon(icon, thisMode, tint = Color.White, modifier = Modifier.size(30.dp)) + Icon(icon, thisMode.toString(), tint = Color.White, modifier = Modifier.size(30.dp)) } } } diff --git a/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarUIStateManager.kt b/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarUIStateManager.kt index 54b00c4f538fcbf603064504378d8d65208fff14..d38405e52b6d98ac91ceec176e15cb59d6df9a89 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarUIStateManager.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarUIStateManager.kt @@ -19,6 +19,16 @@ import org.briarproject.bramble.api.contact.Contact import org.briarproject.briar.desktop.paul.theme.briarBlack import org.briarproject.briar.desktop.paul.theme.divider +enum class uiModes { + Contacts, + Groups, + Forums, + Blogs, + Transports, + Settings, + SignOut +} + /* * This is the root of the tree, all state is held here and passed down to stateless composables, which render the UI * Desktop specific kotlin files are found in briarComposeDesktop (possibly briar-compose-desktop project in the future) @@ -29,10 +39,12 @@ fun BriarUIStateManager( contacts: List<Contact> ) { // current selected mode, changed using the sidebar buttons - val (uiMode, setUiMode) = remember { mutableStateOf("Contacts") } + val (uiMode, setUiMode) = remember { mutableStateOf(uiModes.Contacts) } // TODO Figure out how to handle accounts with 0 contacts // current selected contact val (contact, setContact) = remember { mutableStateOf(contact(contacts)) } + // current selected private group + val (group, setGroup) = remember { mutableStateOf(contact(contacts)) } // current selected forum val (forum, setForum) = remember { mutableStateOf(0) } // current blog state @@ -46,7 +58,7 @@ fun BriarUIStateManager( BriarSidebar(uiMode, setUiMode) Divider(color = divider, modifier = Modifier.fillMaxHeight().width(1.dp)) when (uiMode) { - "Contacts" -> if (contact != null) PrivateMessageView( + uiModes.Contacts -> if (contact != null) PrivateMessageView( contact, contacts, setContact