diff --git a/packages/core/src/index.js b/packages/core/src/index.js index 52ef988b..c141703b 100644 --- a/packages/core/src/index.js +++ b/packages/core/src/index.js @@ -9,8 +9,8 @@ export * from './types'; export * from './registry/Registry'; export * from './validation/schema-validator'; export * from './builder/schema-builder'; -export * from './adapters'; export * from './utils/filter-converter'; +export * from './evaluator'; +export * from './actions'; // export * from './data-scope'; // TODO -// export * from './evaluator'; // TODO // export * from './validators'; // TODO diff --git a/packages/layout/package.json b/packages/layout/package.json index 4f5dea7e..61e4c552 100644 --- a/packages/layout/package.json +++ b/packages/layout/package.json @@ -19,6 +19,7 @@ "dependencies": { "@object-ui/components": "workspace:*", "@object-ui/core": "workspace:*", + "@object-ui/react": "workspace:*", "@object-ui/types": "workspace:*", "clsx": "^2.1.0", "lucide-react": "^0.563.0", diff --git a/packages/react/src/hooks/useExpression.ts b/packages/react/src/hooks/useExpression.ts index 19f93a94..8119b947 100644 --- a/packages/react/src/hooks/useExpression.ts +++ b/packages/react/src/hooks/useExpression.ts @@ -22,14 +22,13 @@ export function useExpression( expression: string | boolean | number | null | undefined, context: Record = {} ): any { - const evaluator = useMemo( - () => new ExpressionEvaluator(context), - [JSON.stringify(context)] - ); - + // We evaluate directly without caching the evaluator to avoid issues with context changes return useMemo( - () => evaluator.evaluate(expression), - [evaluator, expression] + () => { + const evaluator = new ExpressionEvaluator(context); + return evaluator.evaluate(expression); + }, + [expression, context] ); } @@ -46,13 +45,12 @@ export function useCondition( condition: string | boolean | undefined, context: Record = {} ): boolean { - const evaluator = useMemo( - () => new ExpressionEvaluator(context), - [JSON.stringify(context)] - ); - + // We evaluate directly without caching the evaluator to avoid issues with context changes return useMemo( - () => evaluator.evaluateCondition(condition), - [evaluator, condition] + () => { + const evaluator = new ExpressionEvaluator(context); + return evaluator.evaluateCondition(condition); + }, + [condition, context] ); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b73f9a9f..cee67050 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -601,6 +601,9 @@ importers: '@object-ui/core': specifier: workspace:* version: link:../core + '@object-ui/react': + specifier: workspace:* + version: link:../react '@object-ui/types': specifier: workspace:* version: link:../types