@@ -19,6 +19,7 @@ import androidx.compose.foundation.layout.padding
1919import androidx.compose.foundation.layout.windowInsetsPadding
2020import androidx.compose.foundation.lazy.LazyColumn
2121import androidx.compose.runtime.Composable
22+ import androidx.compose.runtime.derivedStateOf
2223import androidx.compose.runtime.getValue
2324import androidx.compose.runtime.mutableStateOf
2425import androidx.compose.runtime.remember
@@ -38,6 +39,47 @@ import top.yukonga.miuix.kmp.basic.ScrollBehavior
3839import top.yukonga.miuix.kmp.basic.SearchBar
3940import top.yukonga.miuix.kmp.basic.SmallTitle
4041import top.yukonga.miuix.kmp.basic.Text
42+ import top.yukonga.miuix.kmp.icon.MiuixIcons
43+ import top.yukonga.miuix.kmp.icon.icons.useful.AddSecret
44+ import top.yukonga.miuix.kmp.icon.icons.useful.Back
45+ import top.yukonga.miuix.kmp.icon.icons.useful.Blocklist
46+ import top.yukonga.miuix.kmp.icon.icons.useful.Cancel
47+ import top.yukonga.miuix.kmp.icon.icons.useful.Confirm
48+ import top.yukonga.miuix.kmp.icon.icons.useful.Copy
49+ import top.yukonga.miuix.kmp.icon.icons.useful.Cut
50+ import top.yukonga.miuix.kmp.icon.icons.useful.Delete
51+ import top.yukonga.miuix.kmp.icon.icons.useful.Edit
52+ import top.yukonga.miuix.kmp.icon.icons.useful.ImmersionMore
53+ import top.yukonga.miuix.kmp.icon.icons.useful.Info
54+ import top.yukonga.miuix.kmp.icon.icons.useful.Like
55+ import top.yukonga.miuix.kmp.icon.icons.useful.More
56+ import top.yukonga.miuix.kmp.icon.icons.useful.Move
57+ import top.yukonga.miuix.kmp.icon.icons.useful.NavigatorSwitch
58+ import top.yukonga.miuix.kmp.icon.icons.useful.New
59+ import top.yukonga.miuix.kmp.icon.icons.useful.Order
60+ import top.yukonga.miuix.kmp.icon.icons.useful.Paste
61+ import top.yukonga.miuix.kmp.icon.icons.useful.Pause
62+ import top.yukonga.miuix.kmp.icon.icons.useful.Personal
63+ import top.yukonga.miuix.kmp.icon.icons.useful.Play
64+ import top.yukonga.miuix.kmp.icon.icons.useful.Reboot
65+ import top.yukonga.miuix.kmp.icon.icons.useful.Redo
66+ import top.yukonga.miuix.kmp.icon.icons.useful.Refresh
67+ import top.yukonga.miuix.kmp.icon.icons.useful.Remove
68+ import top.yukonga.miuix.kmp.icon.icons.useful.RemoveBlocklist
69+ import top.yukonga.miuix.kmp.icon.icons.useful.RemoveSecret
70+ import top.yukonga.miuix.kmp.icon.icons.useful.Rename
71+ import top.yukonga.miuix.kmp.icon.icons.useful.Restore
72+ import top.yukonga.miuix.kmp.icon.icons.useful.Save
73+ import top.yukonga.miuix.kmp.icon.icons.useful.Scan
74+ import top.yukonga.miuix.kmp.icon.icons.useful.Search
75+ import top.yukonga.miuix.kmp.icon.icons.useful.SelectAll
76+ import top.yukonga.miuix.kmp.icon.icons.useful.Settings
77+ import top.yukonga.miuix.kmp.icon.icons.useful.Share
78+ import top.yukonga.miuix.kmp.icon.icons.useful.Stick
79+ import top.yukonga.miuix.kmp.icon.icons.useful.Undo
80+ import top.yukonga.miuix.kmp.icon.icons.useful.Unlike
81+ import top.yukonga.miuix.kmp.icon.icons.useful.Unstick
82+ import top.yukonga.miuix.kmp.icon.icons.useful.Update
4183import top.yukonga.miuix.kmp.theme.MiuixTheme
4284import top.yukonga.miuix.kmp.utils.getWindowSize
4385import top.yukonga.miuix.kmp.utils.overScrollVertical
@@ -73,6 +115,8 @@ fun MainPage(
73115 val superSwitchState = remember { mutableStateOf(false ) }
74116 val superSwitchAnimState = remember { mutableStateOf(false ) }
75117
118+ val notExpanded by remember { derivedStateOf { ! expanded } }
119+
76120 val textComponent = @Composable {
77121 TextComponent (
78122 showDialog,
@@ -99,6 +143,52 @@ fun MainPage(
99143 )
100144 }
101145
146+ val miuixIcons = remember {
147+ listOf (
148+ MiuixIcons .Useful .AddSecret ,
149+ MiuixIcons .Useful .Back ,
150+ MiuixIcons .Useful .Blocklist ,
151+ MiuixIcons .Useful .Cancel ,
152+ MiuixIcons .Useful .Confirm ,
153+ MiuixIcons .Useful .Copy ,
154+ MiuixIcons .Useful .Cut ,
155+ MiuixIcons .Useful .Delete ,
156+ MiuixIcons .Useful .Edit ,
157+ MiuixIcons .Useful .ImmersionMore ,
158+ MiuixIcons .Useful .Info ,
159+ MiuixIcons .Useful .Like ,
160+ MiuixIcons .Useful .More ,
161+ MiuixIcons .Useful .Move ,
162+ MiuixIcons .Useful .NavigatorSwitch ,
163+ MiuixIcons .Useful .New ,
164+ MiuixIcons .Useful .Order ,
165+ MiuixIcons .Useful .Paste ,
166+ MiuixIcons .Useful .Pause ,
167+ MiuixIcons .Useful .Personal ,
168+ MiuixIcons .Useful .Play ,
169+ MiuixIcons .Useful .Reboot ,
170+ MiuixIcons .Useful .Redo ,
171+ MiuixIcons .Useful .Refresh ,
172+ MiuixIcons .Useful .Remove ,
173+ MiuixIcons .Useful .RemoveBlocklist ,
174+ MiuixIcons .Useful .RemoveSecret ,
175+ MiuixIcons .Useful .Rename ,
176+ MiuixIcons .Useful .Restore ,
177+ MiuixIcons .Useful .Save ,
178+ MiuixIcons .Useful .Scan ,
179+ MiuixIcons .Useful .Search ,
180+ MiuixIcons .Useful .SelectAll ,
181+ MiuixIcons .Useful .Settings ,
182+ MiuixIcons .Useful .Share ,
183+ MiuixIcons .Useful .Stick ,
184+ MiuixIcons .Useful .Undo ,
185+ MiuixIcons .Useful .Unlike ,
186+ MiuixIcons .Useful .Unstick ,
187+ MiuixIcons .Useful .Update
188+ )
189+ }
190+
191+
102192 BoxWithConstraints (
103193 modifier = Modifier .fillMaxSize()
104194 ) {
@@ -115,7 +205,7 @@ fun MainPage(
115205 contentPadding = PaddingValues (top = padding.calculateTopPadding()),
116206 overscrollEffect = null ,
117207 ) {
118- item {
208+ item(key = " searchbar " ) {
119209 SmallTitle (text = " SearchBar" )
120210 SearchBar (
121211 inputField = {
@@ -161,11 +251,11 @@ fun MainPage(
161251 }
162252 }
163253 }
164- if (! expanded ) {
165- item {
254+ if (notExpanded ) {
255+ item(key = " textComponent " ) {
166256 textComponent()
167257 }
168- otherComponent(focusManager, padding)
258+ otherComponent(miuixIcons, focusManager, padding)
169259 }
170260 }
171261 } else {
@@ -181,7 +271,7 @@ fun MainPage(
181271 .weight(0.5f ),
182272 contentPadding = PaddingValues (top = padding.calculateTopPadding())
183273 ) {
184- item {
274+ item(key = " searchbar-wide " ) {
185275 SmallTitle (text = " SearchBar" )
186276 SearchBar (
187277 inputField = {
@@ -229,9 +319,9 @@ fun MainPage(
229319 }
230320 }
231321 }
232- if (! expanded ) {
233- otherComponent(focusManager, padding)
234- item {
322+ if (notExpanded ) {
323+ otherComponent(miuixIcons, focusManager, padding)
324+ item(key = " spacer-wide " ) {
235325 Spacer (modifier = Modifier .height(6 .dp))
236326 }
237327 }
@@ -244,7 +334,7 @@ fun MainPage(
244334 .weight(0.5f ),
245335 contentPadding = PaddingValues (top = padding.calculateTopPadding())
246336 ) {
247- item {
337+ item(key = " textComponent-wide " ) {
248338 textComponent()
249339 Spacer (modifier = Modifier .height(padding.calculateBottomPadding()))
250340 }
0 commit comments