@@ -20,26 +20,46 @@ import { useValidator } from '@hooks/useValidator';
2020import { VarItemWrapper } from '../editor/VarItemWrapper' ;
2121import { InformationIcon } from '@assets/icons/Information.icon' ;
2222import { TooltipLink } from '@components/guide-point' ;
23+ import { useMemo } from 'react' ;
24+ import { useEditor } from '@hooks/useEditor' ;
25+ import { DestinationsEnum } from '@impler/shared' ;
2326
2427interface ValidatorProps {
2528 templateId : string ;
2629}
2730
2831export function Validator ( { templateId } : ValidatorProps ) {
29- const systemVariables = [
32+ const { destination } = useEditor ( { templateId } ) ;
33+
34+ // Existing system variables
35+ const baseSystemVariables = [
3036 'params.uploadId' ,
3137 'params.fileName' ,
3238 'params.data' ,
3339 'params.extra' ,
3440 'params.totalRecords' ,
3541 'params.chunkSize' ,
3642 ] ;
43+
44+ // Bubble.io specific system variables
45+ const bubbleIoSystemVariables = [ 'extra.uploadId' , 'extra.userId' ] ;
46+
3747 const { colorScheme } = useMantineColorScheme ( ) ;
3848 const { control, editorVariables, onSave, isUpdateValidationsLoading, isValidationsLoading, testCodeResult } =
3949 useValidator ( {
4050 templateId,
4151 } ) ;
4252
53+ // Combine all variables: base system variables + editor variables + Bubble.io variables (if applicable)
54+ const allVariables = useMemo ( ( ) => {
55+ const variables = [ ...baseSystemVariables , ...editorVariables ] ;
56+ if ( destination ?. destination === DestinationsEnum . BUBBLEIO ) {
57+ variables . push ( ...bubbleIoSystemVariables ) ;
58+ }
59+
60+ return variables ;
61+ } , [ destination ?. destination , editorVariables ] ) ;
62+
4363 return (
4464 < div style = { { position : 'relative' } } >
4565 < LoadingOverlay visible = { isValidationsLoading } />
@@ -124,7 +144,7 @@ export function Validator({ templateId }: ValidatorProps) {
124144 mode = "javascript"
125145 value = { field . value }
126146 onChange = { field . onChange }
127- variables = { [ ... systemVariables ] }
147+ variables = { allVariables }
128148 />
129149 ) }
130150 />
@@ -134,15 +154,10 @@ export function Validator({ templateId }: ValidatorProps) {
134154 </ div >
135155 < div style = { { width : '20%' , display : 'flex' , flexDirection : 'column' , gap : '5' } } >
136156 < VarLabel label = "System Variables" >
137- { systemVariables . map ( ( variable ) => (
157+ { allVariables . map ( ( variable ) => (
138158 < VarItemWrapper key = { variable } name = { variable } copyText = { variable } />
139159 ) ) }
140160 </ VarLabel >
141- < VarLabel label = "Schema Variables" >
142- { editorVariables . map ( ( variable ) => (
143- < VarItemWrapper key = { variable } name = { variable } copyText = { '"' + variable + '"' } />
144- ) ) }
145- </ VarLabel >
146161 </ div >
147162 </ Flex >
148163 </ Stack >
0 commit comments