@@ -16,13 +16,14 @@ import { envConnectionAPI } from '../../services/ConnectAPI';
1616import { healthStatus } from '../../services/HealthStatus' ;
1717import { useAuth0 } from '@auth0/auth0-react' ;
1818import { showErrorToast } from '../../utils/Toasts' ;
19- import { APP_SOURCES , LOCAL_KEYS } from '../../utils/Constants' ;
19+ import { APP_SOURCES } from '../../utils/Constants' ;
2020import { createDefaultFormData } from '../../API/Index' ;
2121import LoadDBSchemaDialog from '../Popups/GraphEnhancementDialog/EnitityExtraction/LoadExistingSchema' ;
2222import PredefinedSchemaDialog from '../Popups/GraphEnhancementDialog/EnitityExtraction/PredefinedSchemaDialog' ;
2323import { SKIP_AUTH } from '../../utils/Constants' ;
2424import { useNavigate } from 'react-router' ;
2525import { deduplicateByFullPattern , deduplicateNodeByValue } from '../../utils/Utils' ;
26+ import DataImporterSchemaDialog from '../Popups/GraphEnhancementDialog/EnitityExtraction/DataImporter' ;
2627
2728const GCSModal = lazy ( ( ) => import ( '../DataSources/GCS/GCSModal' ) ) ;
2829const S3Modal = lazy ( ( ) => import ( '../DataSources/AWS/S3Modal' ) ) ;
@@ -186,13 +187,20 @@ const PageLayout: React.FC = () => {
186187 setSchemaValRels,
187188 setDbNodes,
188189 setDbRels,
189- setSchemaView,
190190 setPreDefinedNodes,
191191 setPreDefinedRels,
192192 setPreDefinedPattern,
193193 allPatterns,
194194 selectedNodes,
195195 selectedRels,
196+ dataImporterSchemaDialog,
197+ setDataImporterSchemaDialog,
198+ setImporterPattern,
199+ setImporterNodes,
200+ setImporterRels,
201+ setSourceOptions,
202+ setTargetOptions,
203+ setTypeOptions,
196204 } = useFileContext ( ) ;
197205 const navigate = useNavigate ( ) ;
198206 const { user, isAuthenticated } = useAuth0 ( ) ;
@@ -380,10 +388,9 @@ const PageLayout: React.FC = () => {
380388 const combined = [ ...rels , ...prevRels ] ;
381389 return deduplicateByFullPattern ( combined ) ;
382390 } ) ;
383- setSchemaView ( 'text' ) ;
384- localStorage . setItem ( LOCAL_KEYS . source , JSON . stringify ( updatedSource ) ) ;
385- localStorage . setItem ( LOCAL_KEYS . type , JSON . stringify ( updatedType ) ) ;
386- localStorage . setItem ( LOCAL_KEYS . target , JSON . stringify ( updatedTarget ) ) ;
391+ setSourceOptions ( ( prev ) => [ ...prev , ...updatedSource ] ) ;
392+ setTargetOptions ( ( prev ) => [ ...prev , ...updatedTarget ] ) ;
393+ setTypeOptions ( ( prev ) => [ ...prev , ...updatedType ] ) ;
387394 } ,
388395 [ ]
389396 ) ;
@@ -409,7 +416,6 @@ const PageLayout: React.FC = () => {
409416 triggeredFrom : 'loadExistingSchemaApply' ,
410417 show : true ,
411418 } ) ;
412- setSchemaView ( 'db' ) ;
413419 setDbNodes ( nodes ) ;
414420 setCombinedNodesVal ( ( prevNodes : OptionType [ ] ) => {
415421 const combined = [ ...nodes , ...prevNodes ] ;
@@ -420,9 +426,9 @@ const PageLayout: React.FC = () => {
420426 const combined = [ ...rels , ...prevRels ] ;
421427 return deduplicateByFullPattern ( combined ) ;
422428 } ) ;
423- localStorage . setItem ( LOCAL_KEYS . source , JSON . stringify ( updatedSource ) ) ;
424- localStorage . setItem ( LOCAL_KEYS . type , JSON . stringify ( updatedType ) ) ;
425- localStorage . setItem ( LOCAL_KEYS . target , JSON . stringify ( updatedTarget ) ) ;
429+ setSourceOptions ( ( prev ) => [ ... prev , ... updatedSource ] ) ;
430+ setTargetOptions ( ( prev ) => [ ... prev , ... updatedTarget ] ) ;
431+ setTypeOptions ( ( prev ) => [ ... prev , ... updatedType ] ) ;
426432 } ,
427433 [ ]
428434 ) ;
@@ -447,7 +453,6 @@ const PageLayout: React.FC = () => {
447453 triggeredFrom : 'predefinedSchemaApply' ,
448454 show : true ,
449455 } ) ;
450- setSchemaView ( 'preDefined' ) ;
451456 setPreDefinedNodes ( nodes ) ;
452457 setCombinedNodesVal ( ( prevNodes : OptionType [ ] ) => {
453458 const combined = [ ...nodes , ...prevNodes ] ;
@@ -458,9 +463,47 @@ const PageLayout: React.FC = () => {
458463 const combined = [ ...rels , ...prevRels ] ;
459464 return deduplicateByFullPattern ( combined ) ;
460465 } ) ;
461- localStorage . setItem ( LOCAL_KEYS . source , JSON . stringify ( updatedSource ) ) ;
462- localStorage . setItem ( LOCAL_KEYS . type , JSON . stringify ( updatedType ) ) ;
463- localStorage . setItem ( LOCAL_KEYS . target , JSON . stringify ( updatedTarget ) ) ;
466+ setSourceOptions ( ( prev ) => [ ...prev , ...updatedSource ] ) ;
467+ setTargetOptions ( ( prev ) => [ ...prev , ...updatedTarget ] ) ;
468+ setTypeOptions ( ( prev ) => [ ...prev , ...updatedType ] ) ;
469+ } ,
470+ [ ]
471+ ) ;
472+
473+ const handleImporterApply = useCallback (
474+ (
475+ newPatterns : string [ ] ,
476+ nodes : OptionType [ ] ,
477+ rels : OptionType [ ] ,
478+ updatedSource : OptionType [ ] ,
479+ updatedTarget : OptionType [ ] ,
480+ updatedType : OptionType [ ]
481+ ) => {
482+ setImporterPattern ( ( prevPatterns : string [ ] ) => {
483+ const uniquePatterns = Array . from ( new Set ( [ ...newPatterns , ...prevPatterns ] ) ) ;
484+ return uniquePatterns ;
485+ } ) ;
486+ setCombinedPatternsVal ( ( prevPatterns : string [ ] ) => {
487+ const uniquePatterns = Array . from ( new Set ( [ ...newPatterns , ...prevPatterns ] ) ) ;
488+ return uniquePatterns ;
489+ } ) ;
490+ setDataImporterSchemaDialog ( {
491+ triggeredFrom : 'importerSchemaApply' ,
492+ show : true ,
493+ } ) ;
494+ setImporterNodes ( nodes ) ;
495+ setCombinedNodesVal ( ( prevNodes : OptionType [ ] ) => {
496+ const combined = [ ...nodes , ...prevNodes ] ;
497+ return deduplicateNodeByValue ( combined ) ;
498+ } ) ;
499+ setImporterRels ( rels ) ;
500+ setCombinedRelsVal ( ( prevRels : OptionType [ ] ) => {
501+ const combined = [ ...rels , ...prevRels ] ;
502+ return deduplicateByFullPattern ( combined ) ;
503+ } ) ;
504+ setSourceOptions ( ( prev ) => [ ...prev , ...updatedSource ] ) ;
505+ setTargetOptions ( ( prev ) => [ ...prev , ...updatedTarget ] ) ;
506+ setTypeOptions ( ( prev ) => [ ...prev , ...updatedType ] ) ;
464507 } ,
465508 [ ]
466509 ) ;
@@ -477,6 +520,10 @@ const PageLayout: React.FC = () => {
477520 setShowTextFromSchemaDialog ( { triggeredFrom : 'schemadialog' , show : true } ) ;
478521 } , [ ] ) ;
479522
523+ const openDataImporterSchema = useCallback ( ( ) => {
524+ setDataImporterSchemaDialog ( { triggeredFrom : 'schemadialog' , show : true } ) ;
525+ } , [ ] ) ;
526+
480527 const openChatBot = useCallback ( ( ) => setShowChatBot ( true ) , [ ] ) ;
481528
482529 return (
@@ -565,6 +612,20 @@ const PageLayout: React.FC = () => {
565612 } }
566613 onApply = { handlePredinedApply }
567614 > </ PredefinedSchemaDialog >
615+ < DataImporterSchemaDialog
616+ open = { dataImporterSchemaDialog . show }
617+ onClose = { ( ) => {
618+ setDataImporterSchemaDialog ( { triggeredFrom : '' , show : false } ) ;
619+ switch ( dataImporterSchemaDialog . triggeredFrom ) {
620+ case 'enhancementtab' :
621+ toggleEnhancementDialog ( ) ;
622+ break ;
623+ default :
624+ break ;
625+ }
626+ } }
627+ onApply = { handleImporterApply }
628+ > </ DataImporterSchemaDialog >
568629 { isLargeDesktop ? (
569630 < div
570631 className = { `layout-wrapper ${ ! isLeftExpanded ? 'drawerdropzoneclosed' : '' } ${
@@ -596,6 +657,7 @@ const PageLayout: React.FC = () => {
596657 openTextSchema = { openTextSchema }
597658 openLoadSchema = { openLoadSchema }
598659 openPredefinedSchema = { openPredefinedSchema }
660+ openDataImporterSchema = { openDataImporterSchema }
599661 showEnhancementDialog = { showEnhancementDialog }
600662 toggleEnhancementDialog = { toggleEnhancementDialog }
601663 setOpenConnection = { setOpenConnection }
@@ -670,6 +732,7 @@ const PageLayout: React.FC = () => {
670732 openTextSchema = { openTextSchema }
671733 openLoadSchema = { openLoadSchema }
672734 openPredefinedSchema = { openPredefinedSchema }
735+ openDataImporterSchema = { openDataImporterSchema }
673736 showEnhancementDialog = { showEnhancementDialog }
674737 toggleEnhancementDialog = { toggleEnhancementDialog }
675738 setOpenConnection = { setOpenConnection }
0 commit comments