_map.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import dynamic from 'next/dynamic';
  2. import { coreFormFields } from 'app/components/registry';
  3. import { DynamicFallback } from 'app/lib/dynamic-fallback';
  4. // Each field type is its own chunk: fetched when a form renders it, and
  5. // preloaded in the HTML when it was rendered during SSR (see lib/dynamic-fallback.js).
  6. // Heavy ones (markdown editor, files, location, Stripe, phone codes, sliders)
  7. // no longer reach pages without such a field.
  8. const Captcha = dynamic(() => import('./captcha'), { loading: DynamicFallback });
  9. const Custom = dynamic(() => import('./custom'), { loading: DynamicFallback });
  10. const Hidden = dynamic(() => import('./hidden'), { loading: DynamicFallback });
  11. const Password = dynamic(() => import('./password'), { loading: DynamicFallback });
  12. const Submit = dynamic(() => import('./submit'), { loading: DynamicFallback });
  13. const Switcher = dynamic(() => import('./switcher'), { loading: DynamicFallback });
  14. const TextField = dynamic(() => import('./text'), { loading: DynamicFallback });
  15. const Value = dynamic(() => import('./value'), { loading: DynamicFallback });
  16. const Phone = dynamic(() => import('./phone'), { loading: DynamicFallback });
  17. const TextTranslatable = dynamic(() => import('./text-translatable'), { loading: DynamicFallback });
  18. const MarkdownTranslatable = dynamic(() => import('./markdown-translatable'), { loading: DynamicFallback });
  19. const Editor = dynamic(() => import('./editor'), { loading: DynamicFallback });
  20. const EditorMarkdown = dynamic(() => import('./editor-markdown'), { loading: DynamicFallback });
  21. const Select = dynamic(() => import('./select'), { loading: DynamicFallback });
  22. const Files = dynamic(() => import('./files'), { loading: DynamicFallback });
  23. const Location = dynamic(() => import('./location'), { loading: DynamicFallback });
  24. const Datetime = dynamic(() => import('./datetime'), { loading: DynamicFallback });
  25. const Selector = dynamic(() => import('./selector'), { loading: DynamicFallback });
  26. const BlockHeader = dynamic(() => import('./block-header'), { loading: DynamicFallback });
  27. const BlockEnd = dynamic(() => import('./block-end'), { loading: DynamicFallback });
  28. const Suggestion = dynamic(() => import('./suggestion'), { loading: DynamicFallback });
  29. const InitialMembers = dynamic(() => import('./initial-members'), { loading: DynamicFallback });
  30. const Labels = dynamic(() => import('./labels'), { loading: DynamicFallback });
  31. const InputSet = dynamic(() => import('./input-set'), { loading: DynamicFallback });
  32. const LocationRadius = dynamic(() => import('./location-radius'), { loading: DynamicFallback });
  33. const DoubleRange = dynamic(() => import('./doublerange'), { loading: DynamicFallback });
  34. const CheckboxSet = dynamic(() => import('./checkbox-set'), { loading: DynamicFallback });
  35. const Visibility = dynamic(() => import('./visibility'), { loading: DynamicFallback });
  36. const Stars = dynamic(() => import('./stars'), { loading: DynamicFallback });
  37. const MultiField = dynamic(() => import('./multi-field'), { loading: DynamicFallback });
  38. const Embed = dynamic(() => import('./embed'), { loading: DynamicFallback });
  39. const Polls = dynamic(() => import('./polls'), { loading: DynamicFallback });
  40. const StripeConnect = dynamic(() => import('./stripe-connect'), { loading: DynamicFallback });
  41. const List = dynamic(() => import('./list'), { loading: DynamicFallback });
  42. const Price = dynamic(() => import('./price'), { loading: DynamicFallback });
  43. export const componentsMapDefault = {
  44. input_set: InputSet,
  45. stripe_connect: StripeConnect,
  46. visibility: Visibility,
  47. multi_field: MultiField,
  48. embed: Embed,
  49. editor: Editor,
  50. polls: Polls,
  51. initial_members: InitialMembers,
  52. captcha: Captcha,
  53. custom: Custom,
  54. mood: Stars,
  55. hidden: Hidden,
  56. password: Password,
  57. submit: Submit,
  58. button: Submit,
  59. switcher: Switcher,
  60. checkbox: Switcher,
  61. text: TextField,
  62. text_translatable: TextTranslatable,
  63. markdown_translatable: MarkdownTranslatable,
  64. phone: Phone,
  65. value: Value,
  66. price: Price,
  67. textarea: Editor,
  68. textarea_markdown: EditorMarkdown,
  69. markdown: EditorMarkdown,
  70. select: Select,
  71. select_multiple: Selector,
  72. radio_set: Select,
  73. files: Files,
  74. location: Location,
  75. selector: Selector,
  76. location_radius: LocationRadius,
  77. datetime: Datetime,
  78. datepicker: Datetime,
  79. suggestion: Suggestion,
  80. block_header: BlockHeader,
  81. block_end: BlockEnd,
  82. labels: Labels,
  83. doublerange: DoubleRange,
  84. checkbox_set: CheckboxSet,
  85. list: List
  86. };
  87. Object.assign(coreFormFields, componentsMapDefault);