variable-selector.tsx 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /**
  2. * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
  3. * SPDX-License-Identifier: MIT
  4. */
  5. import React from 'react';
  6. import { Field } from '@flowgram.ai/fixed-layout-editor';
  7. import { FreeFormMetaStoryBuilder, FormHeader } from '../../free-form-meta-story-builder';
  8. const VariableSelector = React.lazy(() =>
  9. import('@flowgram.ai/form-materials').then((module) => ({
  10. default: module.VariableSelector,
  11. }))
  12. );
  13. const VariableSelectorProvider = React.lazy(() =>
  14. import('@flowgram.ai/form-materials').then((module) => ({
  15. default: module.VariableSelectorProvider,
  16. }))
  17. );
  18. export const BasicStory = () => (
  19. <FreeFormMetaStoryBuilder
  20. filterEndNode
  21. formMeta={{
  22. render: () => (
  23. <>
  24. <FormHeader />
  25. <Field<string[] | undefined> name="variable_selector">
  26. {({ field }) => (
  27. <VariableSelector value={field.value} onChange={(value) => field.onChange(value)} />
  28. )}
  29. </Field>
  30. </>
  31. ),
  32. }}
  33. />
  34. );
  35. export const FilterSchemaStory = () => (
  36. <FreeFormMetaStoryBuilder
  37. filterEndNode
  38. formMeta={{
  39. render: () => (
  40. <>
  41. <FormHeader />
  42. <Field<string[] | undefined> name="variable_selector">
  43. {({ field }) => (
  44. <VariableSelector
  45. value={field.value}
  46. onChange={(value) => field.onChange(value)}
  47. includeSchema={{ type: 'string' }}
  48. />
  49. )}
  50. </Field>
  51. </>
  52. ),
  53. }}
  54. />
  55. );
  56. export const CustomFilterStory = () => (
  57. <FreeFormMetaStoryBuilder
  58. filterEndNode
  59. formMeta={{
  60. render: () => (
  61. <VariableSelectorProvider skipVariable={(variable) => variable?.key === 'str'}>
  62. <FormHeader />
  63. <Field<string[] | undefined> name="variable_selector">
  64. {({ field }) => (
  65. <VariableSelector value={field.value} onChange={(value) => field.onChange(value)} />
  66. )}
  67. </Field>
  68. </VariableSelectorProvider>
  69. ),
  70. }}
  71. />
  72. );