Skip to content

Commit 23c1cfe

Browse files
leandroBorgesFerreiraLeandro Ferreira
andauthored
Removing inner scaffold (#538)
* Removing inner scaffold * removing inner scaffold --------- Co-authored-by: Leandro Ferreira <[email protected]>
1 parent 28e5d9a commit 23c1cfe

18 files changed

Lines changed: 121 additions & 90 deletions

File tree

application/common_flows/wide_screen_common/src/commonMain/kotlin/io/writeopia/notes/desktop/components/DesktopApp.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,8 @@ fun DesktopApp(
188188
documentsGraphInjection = documentsGraphInjection,
189189
editorInjector = editorInjector,
190190
selectColorTheme = selectColorTheme,
191+
navigationBar = {},
192+
isMobile = false,
191193
navController = navigationController
192194
) {}
193195

application/composeApp/src/commonMain/kotlin/io/writeopia/mobile/AppMobile.kt

Lines changed: 53 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package io.writeopia.mobile
22

33
import androidx.compose.foundation.layout.Box
4-
import androidx.compose.foundation.layout.padding
54
import androidx.compose.material3.Icon
65
import androidx.compose.material3.MaterialTheme
76
import androidx.compose.material3.NavigationBar
87
import androidx.compose.material3.NavigationBarItem
98
import androidx.compose.material3.NavigationBarItemDefaults
10-
import androidx.compose.material3.Scaffold
119
import androidx.compose.runtime.Composable
1210
import androidx.compose.runtime.collectAsState
1311
import androidx.compose.runtime.getValue
@@ -48,66 +46,64 @@ fun AppMobile(
4846
val colorTheme by uiConfigViewModel.listenForColorTheme { "disconnected_user" }.collectAsState()
4947

5048
WrieopiaTheme(darkTheme = colorTheme.isDarkTheme()) {
51-
Scaffold(
52-
bottomBar = {
53-
NavigationBar(
54-
containerColor = MaterialTheme.colorScheme.primary,
55-
modifier = Modifier
56-
) {
57-
val navBackStackEntry by navController.currentBackStackEntryAsState()
58-
val currentDestination = navBackStackEntry?.destination
59-
val navigationItems by navigationViewModel.selectedNavigation.collectAsState()
49+
Box(modifier = Modifier) {
50+
Navigation(
51+
isDarkTheme = colorTheme.isDarkTheme(),
52+
isMobile = true,
53+
startDestination = startDestination,
54+
notesMenuInjection = notesMenuInjection,
55+
navController = navController,
56+
editorInjector = editorInjector,
57+
selectColorTheme = uiConfigViewModel::changeColorTheme,
58+
searchInjection = searchInjector,
59+
navigationBar = {
60+
NavigationBar(
61+
containerColor = MaterialTheme.colorScheme.primary,
62+
modifier = Modifier
63+
) {
64+
val navBackStackEntry by navController.currentBackStackEntryAsState()
65+
val currentDestination = navBackStackEntry?.destination
66+
val navigationItems by navigationViewModel.selectedNavigation.collectAsState()
6067

61-
navigationItems.forEach { item ->
62-
val isSelected =
63-
currentDestination?.hierarchy?.any { destination ->
64-
destination.route?.let {
65-
NavItemName.selectRoute(it)
66-
}?.value == item.navItemName.value
67-
} ?: false
68+
navigationItems.forEach { item ->
69+
val isSelected =
70+
currentDestination?.hierarchy?.any { destination ->
71+
destination.route?.let {
72+
NavItemName.selectRoute(it)
73+
}?.value == item.navItemName.value
74+
} ?: false
6875

69-
NavigationBarItem(
70-
selected = isSelected,
71-
icon = {
72-
Icon(
73-
imageVector = item.navItemName.iconForNavItem(),
74-
contentDescription = item.navItemName.value
75-
)
76-
},
77-
onClick = {
78-
navController.navigateToItem(item.navItemName) {
79-
if (!isSelected) {
80-
popUpTo(navController.graph.findStartDestination().route!!) {
81-
saveState = true
76+
NavigationBarItem(
77+
selected = isSelected,
78+
icon = {
79+
Icon(
80+
imageVector = item.navItemName.iconForNavItem(),
81+
contentDescription = item.navItemName.value
82+
)
83+
},
84+
onClick = {
85+
navController.navigateToItem(item.navItemName) {
86+
if (!isSelected) {
87+
popUpTo(navController.graph.findStartDestination().route!!) {
88+
saveState = true
89+
}
90+
launchSingleTop = true
91+
restoreState = true
8292
}
83-
launchSingleTop = true
84-
restoreState = true
8593
}
86-
}
87-
},
88-
colors = NavigationBarItemDefaults.colors()
89-
.copy(
90-
selectedIconColor = MaterialTheme.colorScheme.onSecondary,
91-
unselectedIconColor = MaterialTheme.colorScheme.onPrimary,
92-
selectedIndicatorColor = MaterialTheme.colorScheme.secondary,
93-
)
94-
)
94+
},
95+
colors = NavigationBarItemDefaults.colors()
96+
.copy(
97+
selectedIconColor = MaterialTheme.colorScheme.onSecondary,
98+
unselectedIconColor = MaterialTheme.colorScheme.onPrimary,
99+
selectedIndicatorColor = MaterialTheme.colorScheme.secondary,
100+
)
101+
)
102+
}
95103
}
96-
}
97-
}
98-
) { padding ->
99-
Box(modifier = Modifier.padding(padding)) {
100-
Navigation(
101-
isDarkTheme = colorTheme.isDarkTheme(),
102-
startDestination = startDestination,
103-
notesMenuInjection = notesMenuInjection,
104-
navController = navController,
105-
editorInjector = editorInjector,
106-
selectColorTheme = uiConfigViewModel::changeColorTheme,
107-
searchInjection = searchInjector,
108-
builder = builder
109-
)
110-
}
104+
},
105+
builder = builder
106+
)
111107
}
112108
}
113109
}

application/core/navigation/src/commonMain/kotlin/io/writeopia/navigation/Navigation.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import io.writeopia.notemenu.navigation.notesMenuNavigation
3131
@Composable
3232
fun Navigation(
3333
isDarkTheme: Boolean,
34+
isMobile: Boolean,
3435
startDestination: String,
3536
navController: NavHostController = rememberNavController(),
3637
notesMenuInjection: NotesMenuInjection,
@@ -39,6 +40,7 @@ fun Navigation(
3940
editorInjector: TextEditorInjector,
4041
searchInjection: SearchInjection? = null,
4142
selectColorTheme: (ColorThemeOption) -> Unit,
43+
navigationBar: @Composable () -> Unit,
4244
builder: NavGraphBuilder.() -> Unit
4345
) {
4446
SharedTransitionLayout {
@@ -54,7 +56,8 @@ fun Navigation(
5456
navigateToAccount = navController::navigateToAccount,
5557
navigateToNewNote = navController::navigateToNewNote,
5658
navigateToFolders = navController::navigateToFolder,
57-
navigateToForceGraph = navController::navigateToForceGraph
59+
navigateToForceGraph = navController::navigateToForceGraph,
60+
navigationBar = navigationBar
5861
)
5962

6063
if (documentsGraphInjection != null) {
@@ -85,6 +88,7 @@ fun Navigation(
8588

8689
if (searchInjection != null) {
8790
searchNavigation(
91+
isMobile = isMobile,
8892
searchInjection,
8993
navController::navigateToNote,
9094
navController::navigateToFolder

application/features/account/src/commonMain/kotlin/io/writeopia/account/navigation/AccountNavigation.kt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ package io.writeopia.account.navigation
22

33
import androidx.compose.animation.slideInHorizontally
44
import androidx.compose.animation.slideOutHorizontally
5+
import androidx.compose.foundation.layout.padding
6+
import androidx.compose.material3.Scaffold
7+
import androidx.compose.ui.Modifier
58
import androidx.navigation.NavGraphBuilder
69
import androidx.navigation.compose.composable
710
import io.writeopia.account.di.AccountMenuKmpInjector
@@ -28,12 +31,15 @@ fun NavGraphBuilder.accountMenuNavigation(
2831
) {
2932
val accountMenuViewModel = AccountMenuKmpInjector.singleton().provideAccountMenuViewModel()
3033

31-
AccountMenuScreen(
32-
accountMenuViewModel = accountMenuViewModel,
33-
isLoggedInState = accountMenuViewModel.isLoggedIn,
34-
onLogout = navigateToAuthMenu,
35-
goToRegister = navigateToAuthMenu,
36-
selectColorTheme = selectColorTheme
37-
)
34+
Scaffold { paddingValues ->
35+
AccountMenuScreen(
36+
modifier = Modifier.padding(paddingValues),
37+
accountMenuViewModel = accountMenuViewModel,
38+
isLoggedInState = accountMenuViewModel.isLoggedIn,
39+
onLogout = navigateToAuthMenu,
40+
goToRegister = navigateToAuthMenu,
41+
selectColorTheme = selectColorTheme
42+
)
43+
}
3844
}
3945
}

application/features/account/src/commonMain/kotlin/io/writeopia/account/ui/AccountMenuScreen.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ fun AccountMenuScreen(
2828
onLogout: () -> Unit,
2929
goToRegister: () -> Unit,
3030
selectColorTheme: (ColorThemeOption) -> Unit,
31+
modifier: Modifier = Modifier,
3132
) {
32-
Column(modifier = Modifier.fillMaxSize().padding(16.dp)) {
33+
Column(modifier = modifier.fillMaxSize().padding(16.dp)) {
3334
Connect(accountMenuViewModel, isLoggedInState, onLogout, goToRegister)
3435

3536
Spacer(modifier = Modifier.height(16.dp))

application/features/editor/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ kotlin {
7171
val androidMain by getting {
7272
dependencies {
7373
// implementation("androidx.activity:activity-compose")
74-
implementation(libs.accompanist.systemuicontroller)
7574
}
7675
}
7776

application/features/editor/src/androidMain/kotlin/io/writeopia/editor/features/editor/ui/screen/NoteEditorScreen.android.kt

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import androidx.compose.material3.Text
3939
import androidx.compose.material3.TopAppBar
4040
import androidx.compose.material3.TopAppBarDefaults
4141
import androidx.compose.runtime.Composable
42-
import androidx.compose.runtime.DisposableEffect
4342
import androidx.compose.runtime.LaunchedEffect
4443
import androidx.compose.runtime.collectAsState
4544
import androidx.compose.runtime.getValue
@@ -54,7 +53,6 @@ import androidx.compose.ui.text.style.TextOverflow
5453
import androidx.compose.ui.unit.IntOffset
5554
import androidx.compose.ui.unit.dp
5655
import androidx.compose.ui.unit.sp
57-
import com.google.accompanist.systemuicontroller.rememberSystemUiController
5856
import io.writeopia.common.utils.colors.ColorUtils
5957
import io.writeopia.common.utils.icons.WrIcons
6058
import io.writeopia.editor.configuration.ui.HeaderEdition
@@ -83,18 +81,8 @@ internal fun NoteEditorScreen(
8381
onDocumentLinkClick: (String) -> Unit,
8482
modifier: Modifier = Modifier,
8583
) {
86-
val systemUiController = rememberSystemUiController()
87-
val systemBarColor = MaterialTheme.colorScheme.background
88-
val systemBarDefaultColor = MaterialTheme.colorScheme.primary
89-
90-
DisposableEffect(systemUiController) {
91-
systemUiController.setStatusBarColor(color = systemBarColor)
92-
onDispose {}
93-
}
94-
9584
BackHandler {
9685
noteEditorViewModel.handleBackAction(navigateBack = {
97-
systemUiController.setStatusBarColor(color = systemBarDefaultColor)
9886
navigateBack()
9987
})
10088
}
@@ -125,7 +113,6 @@ internal fun NoteEditorScreen(
125113
titleState = noteEditorViewModel.currentTitle,
126114
editableState = noteEditorViewModel.isEditable,
127115
navigationClick = {
128-
systemUiController.setStatusBarColor(color = systemBarDefaultColor)
129116
noteEditorViewModel.handleBackAction(navigateBack = navigateBack)
130117
},
131118
shareDocument = noteEditorViewModel::onMoreOptionsClick

application/features/global_shell/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ kotlin {
7171
val androidMain by getting {
7272
dependencies {
7373
// implementation("androidx.activity:activity-compose")
74-
implementation(libs.accompanist.systemuicontroller)
74+
// implementation(libs.accompanist.systemuicontroller)
7575
}
7676
}
7777

application/features/note_menu/src/androidMain/kotlin/io/writeopia/notemenu/ui/screen/menu/ChooseNoteScreen.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ internal fun ChooseNoteScreen(
2222
newNote: () -> Unit,
2323
navigateToAccount: () -> Unit,
2424
navigateToNotes: (NotesNavigation) -> Unit,
25+
navigationBar: @Composable () -> Unit,
2526
modifier: Modifier = Modifier,
2627
) {
2728
val hasSelectedNotes by chooseNoteViewModel.hasSelectedNotes.collectAsState()
@@ -48,6 +49,7 @@ internal fun ChooseNoteScreen(
4849
newNote = newNote,
4950
navigateToAccount = navigateToAccount,
5051
navigateToNotes = navigateToNotes,
52+
navigationBar = navigationBar,
5153
modifier = modifier,
5254
)
5355
}

application/features/note_menu/src/androidMain/kotlin/io/writeopia/notemenu/ui/screen/menu/NotesMenuScreen.android.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ actual fun NotesMenuScreen(
3030
navigateToFolders: (NotesNavigation) -> Unit,
3131
addFolder: () -> Unit,
3232
editFolder: (MenuItemUi.FolderUi) -> Unit,
33+
navigationBar: @Composable () -> Unit,
3334
modifier: Modifier
3435
) {
3536
ChooseNoteScreen(
@@ -41,6 +42,7 @@ actual fun NotesMenuScreen(
4142
newNote = onNewNoteClick,
4243
navigateToAccount = onAccountClick,
4344
navigateToNotes = navigateToFolders,
45+
navigationBar = navigationBar,
4446
modifier = modifier,
4547
)
4648
}

0 commit comments

Comments
 (0)