dialog-variant.tsx 902 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { createMemo } from "solid-js"
  2. import { useLocal } from "@tui/context/local"
  3. import { DialogSelect } from "@tui/ui/dialog-select"
  4. import { useDialog } from "@tui/ui/dialog"
  5. export function DialogVariant() {
  6. const local = useLocal()
  7. const dialog = useDialog()
  8. const options = createMemo(() => {
  9. return [
  10. {
  11. value: "default",
  12. title: "Default",
  13. onSelect: () => {
  14. dialog.clear()
  15. local.model.variant.set(undefined)
  16. },
  17. },
  18. ...local.model.variant.list().map((variant) => ({
  19. value: variant,
  20. title: variant,
  21. onSelect: () => {
  22. dialog.clear()
  23. local.model.variant.set(variant)
  24. },
  25. })),
  26. ]
  27. })
  28. return (
  29. <DialogSelect<string>
  30. options={options()}
  31. title={"Select variant"}
  32. current={local.model.variant.selected()}
  33. flat={true}
  34. />
  35. )
  36. }