40 lines
1.5 KiB
TypeScript
40 lines
1.5 KiB
TypeScript
import { Color, Group, layoutConfig, list, listItem, modal, Panel, slider, stack, text } from "doric";
|
|
|
|
@Entry
|
|
class ListInSlider extends Panel {
|
|
build(root: Group) {
|
|
slider({
|
|
layoutConfig: layoutConfig().most(),
|
|
itemCount: 2,
|
|
renderPage: (idx) => {
|
|
if (idx === 0) {
|
|
return listItem(
|
|
list({
|
|
itemCount: 100,
|
|
layoutConfig: layoutConfig().most(),
|
|
renderItem: (idx) => {
|
|
return listItem(
|
|
text({
|
|
text: `Item ${idx}`,
|
|
onClick: () => {
|
|
modal(context).alert(`Clicked ${idx}`)
|
|
}
|
|
}))
|
|
}
|
|
}),
|
|
{
|
|
layoutConfig: layoutConfig().most(),
|
|
})
|
|
}
|
|
return listItem(
|
|
stack([], {
|
|
layoutConfig: layoutConfig().most(),
|
|
backgroundColor: idx === 0 ? Color.BLUE : Color.GREEN,
|
|
}),
|
|
{
|
|
layoutConfig: layoutConfig().most(),
|
|
})
|
|
}
|
|
}).in(root)
|
|
}
|
|
} |