|
|
@ -44,6 +44,8 @@ fun TabsTray(
|
|
|
|
.observeAsComposableState { state -> state.mode }.value ?: TabsTrayState.Mode.Normal
|
|
|
|
.observeAsComposableState { state -> state.mode }.value ?: TabsTrayState.Mode.Normal
|
|
|
|
val normalTabs = tabsTrayStore
|
|
|
|
val normalTabs = tabsTrayStore
|
|
|
|
.observeAsComposableState { state -> state.normalTabs }.value ?: emptyList()
|
|
|
|
.observeAsComposableState { state -> state.normalTabs }.value ?: emptyList()
|
|
|
|
|
|
|
|
val privateTabs = tabsTrayStore
|
|
|
|
|
|
|
|
.observeAsComposableState { state -> state.privateTabs }.value ?: emptyList()
|
|
|
|
val pagerState = rememberPagerState(initialPage = 0)
|
|
|
|
val pagerState = rememberPagerState(initialPage = 0)
|
|
|
|
val scope = rememberCoroutineScope()
|
|
|
|
val scope = rememberCoroutineScope()
|
|
|
|
val animateScrollToPage: ((Page) -> Unit) = { page ->
|
|
|
|
val animateScrollToPage: ((Page) -> Unit) = { page ->
|
|
|
@ -86,12 +88,15 @@ fun TabsTray(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Page.PrivateTabs -> {
|
|
|
|
Page.PrivateTabs -> {
|
|
|
|
Text(
|
|
|
|
if (displayTabsInGrid) {
|
|
|
|
text = "Private tabs",
|
|
|
|
TabGrid(
|
|
|
|
modifier = Modifier.padding(all = 16.dp),
|
|
|
|
tabs = privateTabs,
|
|
|
|
color = FirefoxTheme.colors.textPrimary,
|
|
|
|
)
|
|
|
|
style = FirefoxTheme.typography.body1,
|
|
|
|
} else {
|
|
|
|
)
|
|
|
|
TabList(
|
|
|
|
|
|
|
|
tabs = privateTabs,
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Page.SyncedTabs -> {
|
|
|
|
Page.SyncedTabs -> {
|
|
|
|
Text(
|
|
|
|
Text(
|
|
|
@ -113,6 +118,10 @@ private fun TabsTrayPreview() {
|
|
|
|
val store = TabsTrayStore(
|
|
|
|
val store = TabsTrayStore(
|
|
|
|
initialState = TabsTrayState(
|
|
|
|
initialState = TabsTrayState(
|
|
|
|
normalTabs = generateFakeTabsList(),
|
|
|
|
normalTabs = generateFakeTabsList(),
|
|
|
|
|
|
|
|
privateTabs = generateFakeTabsList(
|
|
|
|
|
|
|
|
tabCount = 7,
|
|
|
|
|
|
|
|
isPrivate = true,
|
|
|
|
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
@ -142,13 +151,13 @@ private fun TabsTrayMultiSelectPreview() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun generateFakeTabsList(tabCount: Int = 10): List<TabSessionState> {
|
|
|
|
private fun generateFakeTabsList(tabCount: Int = 10, isPrivate: Boolean = false): List<TabSessionState> =
|
|
|
|
val fakeTab = TabSessionState(
|
|
|
|
List(tabCount) { index ->
|
|
|
|
id = "tabId",
|
|
|
|
TabSessionState(
|
|
|
|
content = ContentState(
|
|
|
|
id = "tabId$index-$isPrivate",
|
|
|
|
url = "www.mozilla.com",
|
|
|
|
content = ContentState(
|
|
|
|
),
|
|
|
|
url = "www.mozilla.com",
|
|
|
|
)
|
|
|
|
private = isPrivate,
|
|
|
|
|
|
|
|
),
|
|
|
|
return List(tabCount) { fakeTab }
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|