瀏覽代碼

feat: optimize variable selector provider (#760)

Yiwei Mao 4 月之前
父節點
當前提交
2cfba92ba9
共有 1 個文件被更改,包括 14 次插入2 次删除
  1. 14 2
      packages/materials/form-materials/src/components/variable-selector/context.tsx

+ 14 - 2
packages/materials/form-materials/src/components/variable-selector/context.tsx

@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: MIT
  */
 
-import { createContext, useContext } from 'react';
+import React, { createContext, useContext, useMemo } from 'react';
 
 import { BaseVariableField } from '@flowgram.ai/editor';
 
@@ -13,4 +13,16 @@ export const VariableSelectorContext = createContext<{
 
 export const useVariableSelectorContext = () => useContext(VariableSelectorContext);
 
-export const VariableSelectorProvider = VariableSelectorContext.Provider;
+export const VariableSelectorProvider = ({
+  children,
+  skipVariable,
+}: {
+  skipVariable?: (variable?: BaseVariableField) => boolean;
+  children: React.ReactNode;
+}) => {
+  const context = useMemo(() => ({ skipVariable }), [skipVariable]);
+
+  return (
+    <VariableSelectorContext.Provider value={context}>{children}</VariableSelectorContext.Provider>
+  );
+};