Skip to content

Commit 1fb088b

Browse files
committed
library: Refactor dialog/popup layout
* Remove `showDialog` / `showPopup` / `dismissDialog` / `dismissPopup` * Now use `DialogLayout` / `PopupLayout`
1 parent d557203 commit 1fb088b

File tree

28 files changed

+280
-372
lines changed

28 files changed

+280
-372
lines changed

docs/components/colorpicker.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ Scaffold {
186186
SuperDialog(
187187
title = "Select Color",
188188
show = showColorDialog,
189-
onDismissRequest = { dismissDialog(showColorDialog) }
189+
onDismissRequest = { showColorDialog.value = false }
190190
) {
191191
Column {
192192
ColorPicker(
@@ -201,14 +201,14 @@ Scaffold {
201201
TextButton(
202202
modifier = Modifier.weight(1f),
203203
text = "Cancel",
204-
onClick = { dismissDialog(showColorDialog) }
204+
onClick = { showColorDialog.value = false }
205205
)
206206
TextButton(
207207
modifier = Modifier.weight(1f),
208208
text = "Confirm",
209209
colors = ButtonDefaults.textButtonColorsPrimary(),
210210
onClick = {
211-
dismissDialog(showColorDialog)
211+
showColorDialog.value = false
212212
// Handle confirmation logic
213213
// For example: save the selected color
214214
})

docs/components/iconbutton.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Scaffold {
6060
SuperDialog(
6161
title = "Dialog",
6262
show = showDialog,
63-
onDismissRequest = { dismissDialog(showDialog) }
63+
onDismissRequest = { showDialog.value = false }
6464
) {
6565
// Dialog content
6666
}

docs/components/listpopup.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@
33
`ListPopup` is a popup list component in Miuix used to display a popup menu with multiple options. It provides a lightweight, floating temporary list suitable for various dropdown menus, context menus, and similar scenarios.
44

55
::: warning
6-
`ListPopup` must be used within a `Scaffold` component! Please use the `dismissPopup(show)` function to close the popup menu.
6+
`ListPopup` must be used within a `Scaffold` component!
77
:::
88

99
## Import
1010

1111
```kotlin
1212
import top.yukonga.miuix.kmp.basic.ListPopup
1313
import top.yukonga.miuix.kmp.basic.ListPopupColumn
14-
import top.yukonga.miuix.kmp.utils.MiuixPopupUtils.Companion.dismissPopup
1514
```
1615

1716
## Basic Usage
@@ -31,7 +30,7 @@ Scaffold {
3130
)
3231
ListPopup(
3332
show = showPopup,
34-
onDismissRequest = { dismissPopup(showPopup) } // Close the popup menu
33+
onDismissRequest = { showPopup.value = false } // Close the popup menu
3534
) {
3635
ListPopupColumn {
3736
items.forEachIndexed { index, string ->
@@ -41,7 +40,7 @@ Scaffold {
4140
isSelected = selectedIndex == index,
4241
onSelectedIndexChange = {
4342
selectedIndex = index
44-
dismissPopup(showPopup) // Close the popup menu
43+
showPopup.value = false // Close the popup menu
4544
},
4645
index = index
4746
)
@@ -63,7 +62,7 @@ var showPopup = remember { mutableStateOf(false) }
6362

6463
ListPopup(
6564
show = showPopup,
66-
onDismissRequest = { dismissPopup(showPopup) } // Close the popup menu
65+
onDismissRequest = { showPopup.value = false } // Close the popup menu
6766
alignment = PopupPositionProvider.Align.Left
6867
) {
6968
ListPopupColumn {
@@ -79,7 +78,7 @@ var showPopup = remember { mutableStateOf(false) }
7978

8079
ListPopup(
8180
show = showPopup,
82-
onDismissRequest = { dismissPopup(showPopup) } // Close the popup menu
81+
onDismissRequest = { showPopup.value = false } // Close the popup menu
8382
windowDimming = false
8483
) {
8584
ListPopupColumn {
@@ -148,7 +147,7 @@ Scaffold {
148147
show = showPopup,
149148
minWidth = 250.dp,
150149
maxHeight = 300.dp,
151-
onDismissRequest = { dismissPopup(showPopup) } // Close the popup menu
150+
onDismissRequest = { showPopup.value = false } // Close the popup menu
152151
alignment = PopupPositionProvider.Align.BottomRight,
153152
) {
154153
ListPopupColumn {
@@ -167,7 +166,7 @@ Scaffold {
167166
) {
168167
TextButton(
169168
text = "Confirm",
170-
onClick = { dismissPopup(showPopup) } // Close the popup menu
169+
onClick = { showPopup.value = false } // Close the popup menu
171170
)
172171
}
173172
}

docs/components/superarrow.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Scaffold {
6060
SuperDialog(
6161
title = "Dialog",
6262
show = showDialog,
63-
onDismissRequest = { dismissDialog(showDialog) }
63+
onDismissRequest = { showDialog.value = false }
6464
) {
6565
// Dialog content
6666
}
@@ -151,22 +151,22 @@ Scaffold {
151151
SuperDialog(
152152
title = "Select Language",
153153
show = showDialog,
154-
onDismissRequest = { dismissDialog(showDialog) }
154+
onDismissRequest = { showDialog.value = false }
155155
) {
156156
// Dialog content
157157
Card {
158158
SuperArrow(
159159
title = "Simplified Chinese",
160160
onClick = {
161161
language = "Simplified Chinese"
162-
dismissDialog(showDialog)
162+
showDialog.value = false
163163
}
164164
)
165165
SuperArrow(
166166
title = "English",
167167
onClick = {
168168
language = "English"
169-
dismissDialog(showDialog)
169+
showDialog.value = false
170170
}
171171
)
172172
}
@@ -175,7 +175,7 @@ Scaffold {
175175
) {
176176
TextButton(
177177
text = "Cancel",
178-
onClick = { dismissDialog(showDialog) },
178+
onClick = { showDialog.value = false },
179179
modifier = Modifier.weight(1f).padding(top = 8.dp)
180180
)
181181
}

docs/components/supercheckbox.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ Scaffold {
213213
SuperDialog(
214214
title = "Privacy Settings",
215215
show = showDialog,
216-
onDismissRequest = { dismissDialog(showDialog) } // Close dialog
216+
onDismissRequest = { showDialog.value = false } // Close dialog
217217
) {
218218
Card {
219219
SuperCheckbox(
@@ -237,13 +237,13 @@ Scaffold {
237237
) {
238238
TextButton(
239239
text = "Cancel",
240-
onClick = { dismissDialog(showDialog) }, // Close dialog
240+
onClick = { showDialog.value = false }, // Close dialog
241241
modifier = Modifier.weight(1f)
242242
)
243243
Spacer(Modifier.width(16.dp))
244244
TextButton(
245245
text = "Confirm",
246-
onClick = { dismissDialog(showDialog) }, // Close dialog
246+
onClick = { showDialog.value = false }, // Close dialog
247247
modifier = Modifier.weight(1f),
248248
colors = ButtonDefaults.textButtonColorsPrimary() // Use theme colors
249249
)

docs/components/superdialog.md

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@
33
`SuperDialog` is a dialog component in Miuix used to display important information, collect user input, or confirm user actions. The dialog appears above the current interface and supports custom styles and content layouts.
44

55
::: warning
6-
`SuperDialog` must be used within a `Scaffold` component! Please use the `dismissDialog(show)` function to close the dialog.
6+
`SuperDialog` must be used within a `Scaffold` component!
77
:::
88

99
## Import
1010

1111
```kotlin
1212
import top.yukonga.miuix.kmp.extra.SuperDialog
13-
import top.yukonga.miuix.kmp.utils.MiuixPopupUtils.Companion.dismissDialog
1413
```
1514

1615
## Basic Usage
@@ -30,11 +29,11 @@ Scaffold {
3029
title = "Dialog Title",
3130
summary = "This is a basic dialog example that can contain various content.",
3231
show = showDialog,
33-
onDismissRequest = { dismissDialog(showDialog) } // Close dialog
32+
onDismissRequest = { showDialog.value = false } // Close dialog
3433
) {
3534
TextButton(
3635
text = "Confirm",
37-
onClick = { dismissDialog(showDialog) }, // Close dialog
36+
onClick = { showDialog.value = false }, // Close dialog
3837
modifier = Modifier.fillMaxWidth()
3938
)
4039
}
@@ -96,7 +95,7 @@ Scaffold {
9695
title = "Custom Style",
9796
summary = "This dialog uses custom colors and margins",
9897
show = showDialog,
99-
onDismissRequest = { dismissDialog(showDialog) }, // Close dialog
98+
onDismissRequest = { showDialog.value = false }, // Close dialog
10099
titleColor = Color.Blue,
101100
summaryColor = Color.Gray,
102101
backgroundColor = Color(0xFFF5F5F5),
@@ -110,7 +109,7 @@ Scaffold {
110109

111110
TextButton(
112111
text = "Close",
113-
onClick = { dismissDialog(showDialog) }, // Close dialog
112+
onClick = { showDialog.value = false }, // Close dialog
114113
modifier = Modifier.fillMaxWidth()
115114
)
116115
}
@@ -137,7 +136,7 @@ Scaffold {
137136
title = "Confirm Action",
138137
summary = "This action is irreversible, do you want to proceed?",
139138
show = showConfirmDialog,
140-
onDismissRequest = { dismissDialog(showConfirmDialog) } // Close dialog
139+
onDismissRequest = { showConfirmDialog.value = false } // Close dialog
141140
) {
142141
Row(
143142
horizontalArrangement = Arrangement.SpaceBetween
@@ -146,7 +145,7 @@ Scaffold {
146145
text = "Cancel",
147146
onClick = {
148147
result = "User cancelled the action"
149-
dismissDialog(showConfirmDialog) // Close dialog
148+
showConfirmDialog.value = false // Close dialog
150149
},
151150
modifier = Modifier.weight(1f)
152151
)
@@ -155,7 +154,7 @@ Scaffold {
155154
text = "Confirm",
156155
onClick = {
157156
result = "User confirmed the action"
158-
dismissDialog(showConfirmDialog) // Close dialog
157+
showConfirmDialog.value = false // Close dialog
159158
},
160159
modifier = Modifier.weight(1f),
161160
colors = ButtonDefaults.textButtonColorsPrimary()
@@ -180,7 +179,7 @@ Scaffold {
180179
SuperDialog(
181180
title = "Please Enter Content",
182181
show = showDialog,
183-
onDismissRequest = { dismissDialog(showDialog) } // Close dialog
182+
onDismissRequest = { showDialog.value = false } // Close dialog
184183
) {
185184
TextField(
186185
modifier = Modifier.padding(bottom = 16.dp),
@@ -194,13 +193,13 @@ Scaffold {
194193
) {
195194
TextButton(
196195
text = "Cancel",
197-
onClick = { dismissDialog(showDialog) }, // Close dialog
196+
onClick = { showDialog.value = false }, // Close dialog
198197
modifier = Modifier.weight(1f)
199198
)
200199
Spacer(Modifier.width(20.dp))
201200
TextButton(
202201
text = "Confirm",
203-
onClick = { dismissDialog(showDialog) }, // Close dialog
202+
onClick = { showDialog.value = false }, // Close dialog
204203
modifier = Modifier.weight(1f),
205204
colors = ButtonDefaults.textButtonColorsPrimary() // Use theme color
206205
)
@@ -226,7 +225,7 @@ Scaffold {
226225
SuperDialog(
227226
title = "Form Dialog",
228227
show = showDialog,
229-
onDismissRequest = { dismissDialog(showDialog) } // Close dialog
228+
onDismissRequest = { showDialog.value = false } // Close dialog
230229
) {
231230
Card(
232231
color = MiuixTheme.colorScheme.secondaryContainer,
@@ -252,13 +251,13 @@ Scaffold {
252251
) {
253252
TextButton(
254253
text = "Cancel",
255-
onClick = { dismissDialog(showDialog) }, // Close dialog
254+
onClick = { showDialog.value = false }, // Close dialog
256255
modifier = Modifier.weight(1f)
257256
)
258257
Spacer(Modifier.width(20.dp))
259258
TextButton(
260259
text = "Confirm",
261-
onClick = { dismissDialog(showDialog) }, // Close dialog
260+
onClick = { showDialog.value = false }, // Close dialog
262261
modifier = Modifier.weight(1f),
263262
colors = ButtonDefaults.textButtonColorsPrimary() // Use theme color
264263
)
@@ -282,7 +281,7 @@ Scaffold {
282281
SuperDialog(
283282
title = "Select Color",
284283
show = showColorDialog,
285-
onDismissRequest = { dismissDialog(showColorDialog) } // Close dialog
284+
onDismissRequest = { showColorDialog.value = false } // Close dialog
286285
) {
287286
Column {
288287
ColorPicker(
@@ -297,14 +296,14 @@ Scaffold {
297296
TextButton(
298297
modifier = Modifier.weight(1f),
299298
text = "Cancel",
300-
onClick = { dismissDialog(showColorDialog) } // Close dialog
299+
onClick = { showColorDialog.value = false } // Close dialog
301300
)
302301
TextButton(
303302
modifier = Modifier.weight(1f),
304303
text = "Confirm",
305304
colors = ButtonDefaults.textButtonColorsPrimary(), // Use theme color
306305
onClick = {
307-
dismissDialog(showColorDialog) // Close dialog
306+
showColorDialog.value = false // Close dialog
308307
// Handle confirm logic
309308
}
310309
)

docs/components/superdropdown.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ Scaffold {
205205
SuperDialog(
206206
title = "Theme Settings",
207207
show = showDialog,
208-
onDismissRequest = { dismissDialog(showDialog) }
208+
onDismissRequest = { showDialog.value = false }
209209
) {
210210
Card {
211211
SuperDropdown(
@@ -223,13 +223,13 @@ Scaffold {
223223
) {
224224
TextButton(
225225
text = "Cancel",
226-
onClick = { dismissDialog(showDialog) },
226+
onClick = { showDialog.value = false },
227227
modifier = Modifier.weight(1f)
228228
)
229229
Spacer(Modifier.width(16.dp))
230230
TextButton(
231231
text = "Confirm",
232-
onClick = { dismissDialog(showDialog) },
232+
onClick = { showDialog.value = false },
233233
modifier = Modifier.weight(1f),
234234
colors = ButtonDefaults.textButtonColorsPrimary()
235235
)

docs/components/superspinner.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ Scaffold {
349349
SuperDialog(
350350
title = "Theme Color Settings",
351351
show = showDialog,
352-
onDismissRequest = { dismissDialog(showDialog) } // Close dialog
352+
onDismissRequest = { showDialog.value = false } // Close dialog
353353
) {
354354
Card {
355355
SuperSpinner(
@@ -367,13 +367,13 @@ Scaffold {
367367
) {
368368
TextButton(
369369
text = "Cancel",
370-
onClick = { dismissDialog(showDialog) }, // Close dialog
370+
onClick = { showDialog.value = false }, // Close dialog
371371
modifier = Modifier.weight(1f)
372372
)
373373
Spacer(Modifier.width(16.dp))
374374
TextButton(
375375
text = "Confirm",
376-
onClick = { dismissDialog(showDialog) }, // Close dialog
376+
onClick = { showDialog.value = false }, // Close dialog
377377
modifier = Modifier.weight(1f),
378378
colors = ButtonDefaults.textButtonColorsPrimary() // Use theme color
379379
)

0 commit comments

Comments
 (0)