@@ -95,7 +95,6 @@ data class UIState(
9595 val showFloatingActionButton : Boolean = false ,
9696 val floatingActionButtonPosition : Int = 2 ,
9797 val enablePageUserScroll : Boolean = false ,
98- val isTopPopupExpanded : Boolean = false ,
9998 val scrollEndHaptic : Boolean = true
10099)
101100
@@ -146,9 +145,7 @@ fun UITest(
146145 hazeStyle = hazeStyle,
147146 currentScrollBehavior = currentScrollBehavior,
148147 items = navigationItem,
149- isTopPopupExpanded = uiState.isTopPopupExpanded,
150148 showTopPopup = showTopPopup,
151- onPopupExpandedChange = { uiState = uiState.copy(isTopPopupExpanded = it) },
152149 onPageSelected = { page ->
153150 selectedPage = page
154151 coroutineScope.launch {
@@ -351,13 +348,9 @@ private fun AppTopBar(
351348 hazeStyle : HazeStyle ,
352349 currentScrollBehavior : ScrollBehavior ,
353350 items : List <NavigationItem >,
354- isTopPopupExpanded : Boolean ,
355351 showTopPopup : MutableState <Boolean >,
356- onPopupExpandedChange : (Boolean ) -> Unit ,
357352 onPageSelected : (Int ) -> Unit
358353) {
359- LocalHapticFeedback .current
360-
361354 BoxWithConstraints {
362355 if (maxWidth > 840 .dp) {
363356 SmallTopAppBar (
@@ -373,9 +366,7 @@ private fun AppTopBar(
373366 TopAppBarActions (
374367 selectedPage = selectedPage,
375368 items = items,
376- isTopPopupExpanded = isTopPopupExpanded,
377369 showTopPopup = showTopPopup,
378- onPopupExpandedChange = onPopupExpandedChange,
379370 onPageSelected = onPageSelected
380371 )
381372 }
@@ -395,9 +386,7 @@ private fun AppTopBar(
395386 TopAppBarActions (
396387 selectedPage = selectedPage,
397388 items = items,
398- isTopPopupExpanded = isTopPopupExpanded,
399389 showTopPopup = showTopPopup,
400- onPopupExpandedChange = onPopupExpandedChange,
401390 onPageSelected = onPageSelected
402391 )
403392 }
@@ -410,50 +399,43 @@ private fun AppTopBar(
410399private fun TopAppBarActions (
411400 selectedPage : Int ,
412401 items : List <NavigationItem >,
413- isTopPopupExpanded : Boolean ,
414402 showTopPopup : MutableState <Boolean >,
415- onPopupExpandedChange : (Boolean ) -> Unit ,
416403 onPageSelected : (Int ) -> Unit
417404) {
418405 val hapticFeedback = LocalHapticFeedback .current
419406
420- if (isTopPopupExpanded) {
421- ListPopup (
422- show = showTopPopup,
423- popupPositionProvider = ListPopupDefaults .ContextMenuPositionProvider ,
424- alignment = PopupPositionProvider .Align .TopRight ,
425- onDismissRequest = {
426- showTopPopup.value = false
427- onPopupExpandedChange(false )
428- },
429- enableWindowDim = false
430- ) {
431- ListPopupColumn {
432- items.forEachIndexed { index, navigationItem ->
433- DropdownImpl (
434- text = navigationItem.label,
435- optionSize = items.size,
436- isSelected = index == selectedPage,
437- onSelectedIndexChange = {
438- onPageSelected(index)
439- hapticFeedback.performHapticFeedback(HapticFeedbackType .Confirm )
440- showTopPopup.value = false
441- onPopupExpandedChange(false )
442- },
443- index = index
444- )
445- }
407+ ListPopup (
408+ show = showTopPopup,
409+ popupPositionProvider = ListPopupDefaults .ContextMenuPositionProvider ,
410+ alignment = PopupPositionProvider .Align .TopRight ,
411+ onDismissRequest = {
412+ showTopPopup.value = false
413+ },
414+ enableWindowDim = false
415+ ) {
416+ ListPopupColumn {
417+ items.forEachIndexed { index, navigationItem ->
418+ DropdownImpl (
419+ text = navigationItem.label,
420+ optionSize = items.size,
421+ isSelected = index == selectedPage,
422+ onSelectedIndexChange = {
423+ onPageSelected(index)
424+ hapticFeedback.performHapticFeedback(HapticFeedbackType .Confirm )
425+ showTopPopup.value = false
426+ },
427+ index = index
428+ )
446429 }
447430 }
448- showTopPopup.value = true
449431 }
450432
451433 IconButton (
452434 modifier = Modifier .padding(end = 20 .dp),
453435 onClick = {
454- onPopupExpandedChange( true )
436+ showTopPopup.value = true
455437 },
456- holdDownState = isTopPopupExpanded
438+ holdDownState = showTopPopup.value
457439 ) {
458440 Icon (
459441 imageVector = MiuixIcons .Useful .ImmersionMore ,
0 commit comments