@quillsql/admin 1.6.3 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Admin.d.ts +14 -8
- package/dist/cjs/Admin.d.ts.map +1 -1
- package/dist/cjs/Admin.js +134 -25
- package/dist/cjs/AdminProvider.d.ts +26 -5
- package/dist/cjs/AdminProvider.d.ts.map +1 -1
- package/dist/cjs/AdminProvider.js +174 -85
- package/dist/cjs/api/ConnectionClient.d.ts +26 -12
- package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
- package/dist/cjs/api/ConnectionClient.js +198 -31
- package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
- package/dist/cjs/assets/XIcon.d.ts.map +1 -1
- package/dist/cjs/components/CardSection.d.ts.map +1 -1
- package/dist/cjs/components/CardSection.js +4 -2
- package/dist/cjs/components/ClipboardButton.d.ts.map +1 -1
- package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
- package/dist/cjs/components/DashboardSelectPopover.js +46 -7
- package/dist/cjs/components/DatabaseSelector.d.ts +3 -1
- package/dist/cjs/components/DatabaseSelector.d.ts.map +1 -1
- package/dist/cjs/components/DatabaseSelector.js +3 -2
- package/dist/cjs/components/DateRangePicker/SingleDatePicker.d.ts.map +1 -1
- package/dist/cjs/components/DateRangePicker/SingleDatePicker.js +31 -7
- package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.d.ts.map +1 -1
- package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.js +31 -7
- package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
- package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
- package/dist/cjs/components/DropDownMenuWithLabel.js +8 -1
- package/dist/cjs/components/DynamicBanner.d.ts +3 -2
- package/dist/cjs/components/DynamicBanner.d.ts.map +1 -1
- package/dist/cjs/components/DynamicBanner.js +7 -2
- package/dist/cjs/components/EmptyDashboardComponent/index.d.ts.map +1 -1
- package/dist/cjs/components/EmptyDashboardComponent/index.js +3 -2
- package/dist/cjs/components/EmptyVirtualTablesComponent.d.ts.map +1 -1
- package/dist/cjs/components/EmptyVirtualTablesComponent.js +4 -1
- package/dist/cjs/components/FormTooltip.d.ts.map +1 -1
- package/dist/cjs/components/FormTooltip.js +4 -1
- package/dist/cjs/components/InputLabel.d.ts.map +1 -1
- package/dist/cjs/components/InputLabel.js +4 -2
- package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts +1 -1
- package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
- package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +33 -14
- package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
- package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
- package/dist/cjs/components/InternalDashboard/InternalDashboard.js +128 -35
- package/dist/cjs/components/OrgSelect.d.ts +0 -6
- package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
- package/dist/cjs/components/OrgSelect.js +79 -47
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +8 -2
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +351 -167
- package/dist/cjs/components/QuillPopover.d.ts.map +1 -1
- package/dist/cjs/components/QuillPopover.js +4 -5
- package/dist/cjs/components/QuillSelect.js +9 -9
- package/dist/cjs/components/QuillSelectWithCombo.d.ts +4 -3
- package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelectWithCombo.js +47 -21
- package/dist/cjs/components/QuillToolTipPortal.d.ts.map +1 -1
- package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
- package/dist/cjs/components/SqlTextEditor.js +15 -2
- package/dist/cjs/components/Tenants/EditTenant.d.ts.map +1 -1
- package/dist/cjs/components/Tenants/EditTenant.js +51 -8
- package/dist/cjs/components/UiComponents.d.ts +16 -43
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +162 -33
- package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
- package/dist/cjs/forms/client_onboard/ConnectDatabase.js +163 -51
- package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
- package/dist/cjs/forms/client_onboard/ConnectSchema.js +36 -2
- package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts +2 -1
- package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
- package/dist/cjs/forms/client_onboard/CreateVirtualTables.js +60 -22
- package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.js +2 -1
- package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.js +2 -1
- package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
- package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.js +101 -15
- package/dist/cjs/hooks/useDatabaseSchema.d.ts.map +1 -1
- package/dist/cjs/hooks/useDatabaseSchema.js +18 -2
- package/dist/cjs/hooks/useLongLoading.d.ts +13 -0
- package/dist/cjs/hooks/useLongLoading.d.ts.map +1 -0
- package/dist/cjs/hooks/useLongLoading.js +67 -0
- package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
- package/dist/cjs/hooks/useThrottle.d.ts.map +1 -1
- package/dist/cjs/icons/ArrowDownHeadIcon.d.ts.map +1 -1
- package/dist/cjs/icons/CheckCircleIcon.d.ts.map +1 -1
- package/dist/cjs/icons/ExclamationFilledIcon.d.ts.map +1 -1
- package/dist/cjs/icons/ExteriorLinkIcon.d.ts.map +1 -1
- package/dist/cjs/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
- package/dist/cjs/modals/CodePreview.d.ts.map +1 -1
- package/dist/cjs/modals/CodePreview.js +7 -2
- package/dist/cjs/modals/CreateEnvironmentModal.d.ts +5 -0
- package/dist/cjs/modals/CreateEnvironmentModal.d.ts.map +1 -0
- package/dist/cjs/modals/CreateEnvironmentModal.js +21 -0
- package/dist/cjs/modals/EditEnvironmentModal.d.ts.map +1 -1
- package/dist/cjs/modals/EditEnvironmentModal.js +74 -17
- package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -1
- package/dist/cjs/modals/EditFiltersModal.js +19 -15
- package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
- package/dist/cjs/modals/NewDashboardModal.js +54 -28
- package/dist/cjs/modals/PromoteReportModal.d.ts.map +1 -1
- package/dist/cjs/modals/PromoteReportModal.js +15 -4
- package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
- package/dist/cjs/modals/PromoteViewModal.js +13 -2
- package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +1 -1
- package/dist/cjs/primitives/ButtonPrimitive.js +10 -6
- package/dist/cjs/primitives/CheckboxPrimitive.d.ts.map +1 -1
- package/dist/cjs/primitives/CheckboxPrimitive.js +2 -0
- package/dist/cjs/primitives/HeaderPrimitive.d.ts.map +1 -1
- package/dist/cjs/primitives/HeaderPrimitive.js +11 -7
- package/dist/cjs/primitives/PopoverPrimitive.d.ts.map +1 -1
- package/dist/cjs/primitives/PopoverPrimitive.js +19 -6
- package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
- package/dist/cjs/primitives/SecondaryButtonPrimitive.js +5 -3
- package/dist/cjs/primitives/TogglePrimitive.d.ts.map +1 -1
- package/dist/cjs/public_components/ChartQueryBuilder.d.ts.map +1 -1
- package/dist/cjs/public_components/ChartQueryBuilder.js +17 -7
- package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
- package/dist/cjs/public_components/CreateEnvironment.js +68 -30
- package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
- package/dist/cjs/public_components/DashboardManager.js +71 -4
- package/dist/cjs/public_components/EnvSelectPopover.d.ts +2 -1
- package/dist/cjs/public_components/EnvSelectPopover.d.ts.map +1 -1
- package/dist/cjs/public_components/EnvSelectPopover.js +48 -8
- package/dist/cjs/public_components/VirtualTableManager.d.ts.map +1 -1
- package/dist/cjs/public_components/VirtualTableManager.js +124 -10
- package/dist/cjs/public_components/__tests__/CreateEnvironment.test.js +41 -2
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/columnProcessing.d.ts +1 -0
- package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/columnProcessing.js +7 -1
- package/dist/cjs/utils/constants.d.ts +1 -0
- package/dist/cjs/utils/constants.d.ts.map +1 -1
- package/dist/cjs/utils/constants.js +5 -1
- package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +0 -1
- package/dist/cjs/utils/databases.d.ts +6 -1
- package/dist/cjs/utils/databases.d.ts.map +1 -1
- package/dist/cjs/utils/databases.js +23 -5
- package/dist/cjs/utils/delay.d.ts.map +1 -1
- package/dist/cjs/utils/filter.d.ts +17 -21
- package/dist/cjs/utils/filter.d.ts.map +1 -1
- package/dist/cjs/utils/filter.js +6 -6
- package/dist/cjs/utils/report.d.ts +5 -5
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/schema.d.ts +6 -3
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +42 -3
- package/dist/cjs/utils/table.d.ts.map +1 -1
- package/dist/cjs/utils/tenants.d.ts.map +1 -1
- package/dist/cjs/utils/ui.d.ts.map +1 -1
- package/dist/esm/Admin.d.ts +14 -8
- package/dist/esm/Admin.d.ts.map +1 -1
- package/dist/esm/Admin.js +135 -26
- package/dist/esm/AdminProvider.d.ts +26 -5
- package/dist/esm/AdminProvider.d.ts.map +1 -1
- package/dist/esm/AdminProvider.js +177 -88
- package/dist/esm/api/ConnectionClient.d.ts +26 -12
- package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
- package/dist/esm/api/ConnectionClient.js +196 -31
- package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
- package/dist/esm/assets/XIcon.d.ts.map +1 -1
- package/dist/esm/components/CardSection.d.ts.map +1 -1
- package/dist/esm/components/CardSection.js +4 -2
- package/dist/esm/components/ClipboardButton.d.ts.map +1 -1
- package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
- package/dist/esm/components/DashboardSelectPopover.js +47 -8
- package/dist/esm/components/DatabaseSelector.d.ts +3 -1
- package/dist/esm/components/DatabaseSelector.d.ts.map +1 -1
- package/dist/esm/components/DatabaseSelector.js +3 -2
- package/dist/esm/components/DateRangePicker/SingleDatePicker.d.ts.map +1 -1
- package/dist/esm/components/DateRangePicker/SingleDatePicker.js +31 -7
- package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.d.ts.map +1 -1
- package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.js +31 -7
- package/dist/esm/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
- package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
- package/dist/esm/components/DropDownMenuWithLabel.js +9 -2
- package/dist/esm/components/DynamicBanner.d.ts +3 -2
- package/dist/esm/components/DynamicBanner.d.ts.map +1 -1
- package/dist/esm/components/DynamicBanner.js +7 -2
- package/dist/esm/components/EmptyDashboardComponent/index.d.ts.map +1 -1
- package/dist/esm/components/EmptyDashboardComponent/index.js +3 -2
- package/dist/esm/components/EmptyVirtualTablesComponent.d.ts.map +1 -1
- package/dist/esm/components/EmptyVirtualTablesComponent.js +4 -1
- package/dist/esm/components/FormTooltip.d.ts.map +1 -1
- package/dist/esm/components/FormTooltip.js +4 -1
- package/dist/esm/components/InputLabel.d.ts.map +1 -1
- package/dist/esm/components/InputLabel.js +4 -2
- package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts +1 -1
- package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/InternalDashboard/DashboardFilter.js +1 -1
- package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
- package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +33 -11
- package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
- package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
- package/dist/esm/components/InternalDashboard/InternalDashboard.js +129 -36
- package/dist/esm/components/OrgSelect.d.ts +0 -6
- package/dist/esm/components/OrgSelect.d.ts.map +1 -1
- package/dist/esm/components/OrgSelect.js +79 -45
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +8 -2
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +351 -167
- package/dist/esm/components/QuillPopover.d.ts.map +1 -1
- package/dist/esm/components/QuillPopover.js +4 -5
- package/dist/esm/components/QuillSelect.js +9 -9
- package/dist/esm/components/QuillSelectWithCombo.d.ts +4 -3
- package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillSelectWithCombo.js +47 -21
- package/dist/esm/components/QuillToolTipPortal.d.ts.map +1 -1
- package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
- package/dist/esm/components/SqlTextEditor.js +15 -2
- package/dist/esm/components/Tenants/EditTenant.d.ts.map +1 -1
- package/dist/esm/components/Tenants/EditTenant.js +51 -8
- package/dist/esm/components/UiComponents.d.ts +16 -43
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +127 -29
- package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
- package/dist/esm/forms/client_onboard/ConnectDatabase.js +163 -51
- package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
- package/dist/esm/forms/client_onboard/ConnectSchema.js +36 -2
- package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts +2 -1
- package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
- package/dist/esm/forms/client_onboard/CreateVirtualTables.js +61 -23
- package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.js +2 -1
- package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.js +2 -1
- package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
- package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.js +103 -17
- package/dist/esm/hooks/useDatabaseSchema.d.ts.map +1 -1
- package/dist/esm/hooks/useDatabaseSchema.js +19 -3
- package/dist/esm/hooks/useLongLoading.d.ts +13 -0
- package/dist/esm/hooks/useLongLoading.d.ts.map +1 -0
- package/dist/esm/hooks/useLongLoading.js +64 -0
- package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
- package/dist/esm/hooks/useThrottle.d.ts.map +1 -1
- package/dist/esm/icons/ArrowDownHeadIcon.d.ts.map +1 -1
- package/dist/esm/icons/CheckCircleIcon.d.ts.map +1 -1
- package/dist/esm/icons/ExclamationFilledIcon.d.ts.map +1 -1
- package/dist/esm/icons/ExteriorLinkIcon.d.ts.map +1 -1
- package/dist/esm/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
- package/dist/esm/modals/CodePreview.d.ts.map +1 -1
- package/dist/esm/modals/CodePreview.js +7 -2
- package/dist/esm/modals/CreateEnvironmentModal.d.ts +5 -0
- package/dist/esm/modals/CreateEnvironmentModal.d.ts.map +1 -0
- package/dist/esm/modals/CreateEnvironmentModal.js +15 -0
- package/dist/esm/modals/EditEnvironmentModal.d.ts.map +1 -1
- package/dist/esm/modals/EditEnvironmentModal.js +74 -17
- package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -1
- package/dist/esm/modals/EditFiltersModal.js +21 -17
- package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
- package/dist/esm/modals/NewDashboardModal.js +55 -29
- package/dist/esm/modals/PromoteReportModal.d.ts.map +1 -1
- package/dist/esm/modals/PromoteReportModal.js +15 -4
- package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
- package/dist/esm/modals/PromoteViewModal.js +13 -2
- package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
- package/dist/esm/primitives/ButtonPrimitive.js +10 -6
- package/dist/esm/primitives/CheckboxPrimitive.d.ts.map +1 -1
- package/dist/esm/primitives/CheckboxPrimitive.js +2 -0
- package/dist/esm/primitives/HeaderPrimitive.d.ts.map +1 -1
- package/dist/esm/primitives/HeaderPrimitive.js +11 -7
- package/dist/esm/primitives/PopoverPrimitive.d.ts.map +1 -1
- package/dist/esm/primitives/PopoverPrimitive.js +19 -6
- package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
- package/dist/esm/primitives/SecondaryButtonPrimitive.js +5 -3
- package/dist/esm/primitives/TogglePrimitive.d.ts.map +1 -1
- package/dist/esm/public_components/ChartQueryBuilder.d.ts.map +1 -1
- package/dist/esm/public_components/ChartQueryBuilder.js +18 -8
- package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
- package/dist/esm/public_components/CreateEnvironment.js +68 -30
- package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
- package/dist/esm/public_components/DashboardManager.js +72 -5
- package/dist/esm/public_components/EnvSelectPopover.d.ts +2 -1
- package/dist/esm/public_components/EnvSelectPopover.d.ts.map +1 -1
- package/dist/esm/public_components/EnvSelectPopover.js +49 -9
- package/dist/esm/public_components/VirtualTableManager.d.ts.map +1 -1
- package/dist/esm/public_components/VirtualTableManager.js +125 -11
- package/dist/esm/public_components/__tests__/CreateEnvironment.test.js +41 -2
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/columnProcessing.d.ts +1 -0
- package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
- package/dist/esm/utils/columnProcessing.js +7 -2
- package/dist/esm/utils/constants.d.ts +1 -0
- package/dist/esm/utils/constants.d.ts.map +1 -1
- package/dist/esm/utils/constants.js +4 -0
- package/dist/esm/utils/dataEditor.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +0 -1
- package/dist/esm/utils/databases.d.ts +6 -1
- package/dist/esm/utils/databases.d.ts.map +1 -1
- package/dist/esm/utils/databases.js +23 -5
- package/dist/esm/utils/delay.d.ts.map +1 -1
- package/dist/esm/utils/filter.d.ts +17 -21
- package/dist/esm/utils/filter.d.ts.map +1 -1
- package/dist/esm/utils/filter.js +5 -5
- package/dist/esm/utils/report.d.ts +5 -5
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/schema.d.ts +6 -3
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +42 -3
- package/dist/esm/utils/table.d.ts.map +1 -1
- package/dist/esm/utils/tenants.d.ts.map +1 -1
- package/dist/esm/utils/ui.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -17,10 +17,16 @@ const QuillMultiSelectWithCombo_1 = require("../../components/QuillMultiSelectWi
|
|
|
17
17
|
const CardSection_1 = __importDefault(require("../../components/CardSection"));
|
|
18
18
|
// import InputLabel from '../../components/InputLabel';
|
|
19
19
|
const AdminProvider_1 = require("../../AdminProvider");
|
|
20
|
+
const dataFetcher_1 = require("../../utils/dataFetcher");
|
|
21
|
+
const useLongLoading_1 = require("../../hooks/useLongLoading");
|
|
20
22
|
function ConnectDatabase({ containerStyle, header1Style, header2Style, environmentDetails, setEnvironmentDetails, fetchSchemasLoading, onConnectDatabase, }) {
|
|
21
|
-
const { state, getToken } = (0, AdminProvider_1.useAdmin)();
|
|
23
|
+
const { state, getToken, eventTracking } = (0, AdminProvider_1.useAdmin)();
|
|
22
24
|
const [error, setError] = (0, react_1.useState)(undefined);
|
|
23
25
|
const [isConnecting, setIsConnecting] = (0, react_1.useState)(false);
|
|
26
|
+
(0, useLongLoading_1.useLongLoading)(isConnecting, {
|
|
27
|
+
origin: 'ConnectDatabase',
|
|
28
|
+
loadDescription: 'Connecting to database',
|
|
29
|
+
});
|
|
24
30
|
const [clientId, setClientId] = (0, react_1.useState)(environmentDetails.client.clientId);
|
|
25
31
|
const [fileLabel, setFileLabel] = (0, react_1.useState)('No file chosen');
|
|
26
32
|
const [allSchemas, setAllSchemas] = (0, react_1.useState)([]);
|
|
@@ -54,7 +60,12 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
|
|
|
54
60
|
// Redact sensitive information
|
|
55
61
|
const savedConnectionDetails = { ...databaseConnectionDetails };
|
|
56
62
|
savedConnectionDetails.connectionString = '';
|
|
57
|
-
|
|
63
|
+
if (databaseConnectionDetails.type === 'Databricks') {
|
|
64
|
+
savedConnectionDetails.token = '';
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
savedConnectionDetails.password = '';
|
|
68
|
+
}
|
|
58
69
|
sessionStorage.setItem('connectionDetails', JSON.stringify(savedConnectionDetails));
|
|
59
70
|
}, [databaseConnectionDetails]);
|
|
60
71
|
const handleFileChange = (e) => {
|
|
@@ -76,6 +87,17 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
|
|
|
76
87
|
}
|
|
77
88
|
catch (err) {
|
|
78
89
|
console.log('Error parsing JSON file', err);
|
|
90
|
+
eventTracking?.logError?.({
|
|
91
|
+
type: 'bug', // TODO: determine type
|
|
92
|
+
severity: 'high',
|
|
93
|
+
message: 'Error parsing JSON file',
|
|
94
|
+
errorMessage: err.message,
|
|
95
|
+
errorStack: err.stack,
|
|
96
|
+
errorData: {
|
|
97
|
+
caller: 'ConnectDatabase',
|
|
98
|
+
function: 'handleFileChange',
|
|
99
|
+
},
|
|
100
|
+
});
|
|
79
101
|
setFileLabel('Error parsing JSON file');
|
|
80
102
|
}
|
|
81
103
|
};
|
|
@@ -86,6 +108,7 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
|
|
|
86
108
|
return false;
|
|
87
109
|
}
|
|
88
110
|
const typedDetails = databaseConnectionDetails;
|
|
111
|
+
const databricksDetails = databaseConnectionDetails;
|
|
89
112
|
switch (databaseConnectionDetails.type) {
|
|
90
113
|
case 'PostgreSQL':
|
|
91
114
|
case 'MySQL':
|
|
@@ -100,6 +123,10 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
|
|
|
100
123
|
!(typedDetails.port ||
|
|
101
124
|
(typedDetails.warehouse &&
|
|
102
125
|
typedDetails.type === 'Snowflake')));
|
|
126
|
+
case 'Databricks':
|
|
127
|
+
return (!databricksDetails.host ||
|
|
128
|
+
!databricksDetails.path ||
|
|
129
|
+
!databricksDetails.token);
|
|
103
130
|
case 'BigQuery':
|
|
104
131
|
return !databaseConnectionDetails.jsonString;
|
|
105
132
|
default:
|
|
@@ -126,11 +153,22 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
|
|
|
126
153
|
}
|
|
127
154
|
try {
|
|
128
155
|
setIsConnecting(true);
|
|
129
|
-
await (0, ConnectionClient_1.setSchemaNames)(state.queryEndpoint, clientId, selectedSchemas, getToken);
|
|
130
|
-
const databaseSchema = await (0, ConnectionClient_1.getTableColumnsBySchema)(state.queryEndpoint, clientId, getToken, selectedSchemas).then((res) => res.columnsByTable);
|
|
156
|
+
await (0, ConnectionClient_1.setSchemaNames)(state.queryEndpoint, clientId, selectedSchemas, getToken, state.queryHeaders);
|
|
157
|
+
const databaseSchema = await (0, ConnectionClient_1.getTableColumnsBySchema)(state.isSelfHosted, state.queryEndpoint, clientId, databaseConnectionDetails.type, getToken, selectedSchemas, state.queryHeaders).then((res) => res.columnsByTable);
|
|
131
158
|
setEnvironmentDetails(databaseConnectionDetails, databaseSchema, selectedSchemas, clientId);
|
|
132
159
|
}
|
|
133
160
|
catch (e) {
|
|
161
|
+
eventTracking?.logError?.({
|
|
162
|
+
type: 'bug', // TODO: determine type
|
|
163
|
+
severity: 'high',
|
|
164
|
+
message: 'Error setting up database',
|
|
165
|
+
errorMessage: e.message,
|
|
166
|
+
errorStack: e.stack,
|
|
167
|
+
errorData: {
|
|
168
|
+
caller: 'ConnectDatabase',
|
|
169
|
+
function: 'nextStep',
|
|
170
|
+
},
|
|
171
|
+
});
|
|
134
172
|
setError(e.message);
|
|
135
173
|
}
|
|
136
174
|
finally {
|
|
@@ -139,11 +177,38 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
|
|
|
139
177
|
}, 1000);
|
|
140
178
|
}
|
|
141
179
|
};
|
|
180
|
+
const getSchemaNames = async () => {
|
|
181
|
+
setIsConnecting(true);
|
|
182
|
+
const tempClientId = clientId ?? state.client?.clientId;
|
|
183
|
+
const { data, status, queries } = await (0, dataFetcher_1.quillFetch)({
|
|
184
|
+
client: {
|
|
185
|
+
queryEndpoint: state.queryEndpoint,
|
|
186
|
+
queryHeaders: state.queryHeaders,
|
|
187
|
+
withCredentials: !!state.withCredentials,
|
|
188
|
+
clientId: tempClientId,
|
|
189
|
+
},
|
|
190
|
+
task: 'get-schema-names',
|
|
191
|
+
metadata: {
|
|
192
|
+
databaseType: databaseConnectionDetails.type,
|
|
193
|
+
newClientId: clientId,
|
|
194
|
+
},
|
|
195
|
+
getToken: getToken,
|
|
196
|
+
});
|
|
197
|
+
if (status !== 'success') {
|
|
198
|
+
setIsConnecting(false);
|
|
199
|
+
setError('Error fetching schemas');
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const schemas = queries?.queryResults?.[0]?.rows?.map((row) => row['schema_name'] || row['SCHEMA_NAME']);
|
|
203
|
+
setClientId(data?.clientId);
|
|
204
|
+
setAllSchemas(schemas);
|
|
205
|
+
setIsConnecting(false);
|
|
206
|
+
};
|
|
142
207
|
const testConnectionAndFormClient = async () => {
|
|
143
208
|
setError(undefined);
|
|
144
209
|
const connectionString = (0, databases_1.formConnectionString)(databaseConnectionDetails);
|
|
145
210
|
setIsConnecting(true);
|
|
146
|
-
const result = await (0, ConnectionClient_1.testConnectionString)(state.queryEndpoint, connectionString, databaseConnectionDetails.type, getToken, clientId);
|
|
211
|
+
const result = await (0, ConnectionClient_1.testConnectionString)(state.queryEndpoint, connectionString, databaseConnectionDetails.type, getToken, clientId, state.queryHeaders);
|
|
147
212
|
if (result.success) {
|
|
148
213
|
try {
|
|
149
214
|
setConnectionDetails({
|
|
@@ -161,6 +226,17 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
|
|
|
161
226
|
onConnectDatabase?.(result.clientId);
|
|
162
227
|
}
|
|
163
228
|
catch (e) {
|
|
229
|
+
eventTracking?.logError?.({
|
|
230
|
+
type: 'bug', // TODO: determine type
|
|
231
|
+
severity: 'high',
|
|
232
|
+
message: 'Error connecting to database',
|
|
233
|
+
errorMessage: e.message,
|
|
234
|
+
errorStack: e.stack,
|
|
235
|
+
errorData: {
|
|
236
|
+
caller: 'ConnectDatabase',
|
|
237
|
+
function: 'testConnectionAndFormClient',
|
|
238
|
+
},
|
|
239
|
+
});
|
|
164
240
|
setError("Couldn't connect to database");
|
|
165
241
|
}
|
|
166
242
|
finally {
|
|
@@ -176,50 +252,75 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
|
|
|
176
252
|
display: 'flex',
|
|
177
253
|
flexDirection: 'row',
|
|
178
254
|
justifyContent: 'space-between',
|
|
179
|
-
}, children: [(0, jsx_runtime_1.jsx)("h1", { style: header1Style, children: "Connect Database" }), clientId && !!selectedSchemas?.length && ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", width: "24px", height: "24px", children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm3.857-9.809a.75.75 0 0 0-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 1 0-1.06 1.061l2.5 2.5a.75.75 0 0 0 1.137-.089l4-5.5Z", clipRule: "evenodd" }) }))] }), (0, jsx_runtime_1.jsxs)("div", { style: { marginTop: 12 }, children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600
|
|
180
|
-
return ((0, jsx_runtime_1.jsx)(DatabaseSelector_1.default, { onDatabaseSelect: onDatabaseSelect, databaseType: databaseConnectionDetails?.type || '', containerStyle: {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
255
|
+
}, children: [(0, jsx_runtime_1.jsx)("h1", { style: header1Style, children: "Connect Database" }), clientId && !!selectedSchemas?.length && ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", width: "24px", height: "24px", children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm3.857-9.809a.75.75 0 0 0-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 1 0-1.06 1.061l2.5 2.5a.75.75 0 0 0 1.137-.089l4-5.5Z", clipRule: "evenodd" }) }))] }), !state.isSelfHosted && ((0, jsx_runtime_1.jsxs)("div", { style: { marginTop: 12 }, children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600 }, children: "Database type" }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 10, userSelect: 'none' }, children: databases_1.DATABASE_DEFAULT_INFO.map((database) => {
|
|
256
|
+
return ((0, jsx_runtime_1.jsx)(DatabaseSelector_1.default, { onDatabaseSelect: onDatabaseSelect, databaseType: databaseConnectionDetails?.type || '', containerStyle: {
|
|
257
|
+
marginBottom: '12px',
|
|
258
|
+
...(state.isSelfHosted && {
|
|
259
|
+
cursor: 'not-allowed',
|
|
260
|
+
pointerEvents: 'none',
|
|
261
|
+
}),
|
|
262
|
+
...(state.isSelfHosted &&
|
|
263
|
+
database.value.toLowerCase() !==
|
|
264
|
+
environmentDetails.connection.type.toLowerCase() && {
|
|
265
|
+
backgroundColor: '#f5f5f5',
|
|
266
|
+
}),
|
|
267
|
+
}, label: database.label, value: database.value, imageUrl: database.imageUrl, theme: state.theme }, database.label));
|
|
268
|
+
}) })] })), databaseConnectionDetails && ((0, jsx_runtime_1.jsxs)("div", { children: [!state.isSelfHosted && ((0, jsx_runtime_1.jsx)("div", { children: databaseConnectionDetails.type !== 'BigQuery' ? ((0, jsx_runtime_1.jsxs)("div", { children: [['MySQL', 'PostgreSQL'].includes(databaseConnectionDetails.type) && ((0, jsx_runtime_1.jsxs)("div", { style: { marginTop: 16, marginBottom: 24 }, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
|
|
269
|
+
...header2Style,
|
|
270
|
+
fontWeight: 600,
|
|
271
|
+
marginBottom: 8,
|
|
272
|
+
}, children: "Connection Method" }), (0, jsx_runtime_1.jsx)(QuillTab_1.default, { width: "486px", modeToggleOptions: credentialTabOptions, toggleMode: credentialTab, setToggleMode: setCredentialTab })] })), credentialTab === 'Database Credentials' ? ((0, jsx_runtime_1.jsx)("div", { id: "database-details-form", children: (0, jsx_runtime_1.jsx)("div", { style: {
|
|
273
|
+
display: 'grid',
|
|
274
|
+
gridTemplateColumns: 'repeat(3, 1fr)',
|
|
275
|
+
gap: '20px',
|
|
276
|
+
justifyContent: 'space-between',
|
|
277
|
+
marginTop: '16px',
|
|
278
|
+
}, children:
|
|
279
|
+
// get a list of types in the databaseConnectionDetails object and create a form for each
|
|
280
|
+
Object.entries(databaseConnectionDetails).map(([key, value]) => {
|
|
281
|
+
if (key !== 'connectionString' && key !== 'type')
|
|
282
|
+
return ((0, jsx_runtime_1.jsxs)("div", { "data-testid": `quill-input-${key}`, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
|
|
283
|
+
...header2Style,
|
|
284
|
+
fontWeight: '600',
|
|
285
|
+
}, children: key
|
|
286
|
+
.split(/(?=[A-Z])/)
|
|
287
|
+
.map((word) => word.charAt(0).toUpperCase() +
|
|
288
|
+
word.slice(1))
|
|
289
|
+
.join(' ') }), (0, jsx_runtime_1.jsx)(primitives_1.TextInputPrimitive, { onChange: (e) => {
|
|
290
|
+
setConnectionDetails({
|
|
291
|
+
...databaseConnectionDetails,
|
|
292
|
+
[key]: e.target.value,
|
|
293
|
+
connectionString: '',
|
|
294
|
+
});
|
|
295
|
+
}, value: value, disabled: key === 'type', password: key === 'password' ? true : false })] }, key));
|
|
296
|
+
}) }) })) : ((0, jsx_runtime_1.jsxs)("div", { "data-testid": "quill-input-connectionString", children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600 }, children: "Connection String" }), (0, jsx_runtime_1.jsx)(primitives_1.TextInputPrimitive, { onChange: (e) => {
|
|
297
|
+
updateConnectionString(e.target.value);
|
|
298
|
+
}, value: databaseConnectionDetails.connectionString })] }))] })) : ((0, jsx_runtime_1.jsx)("div", { style: { minWidth: 790 }, children: (0, jsx_runtime_1.jsx)("div", { id: "database-details-form-bq", style: {
|
|
299
|
+
display: 'grid',
|
|
300
|
+
gridTemplateColumns: 'repeat(1, 1fr)',
|
|
301
|
+
gap: '20px',
|
|
302
|
+
justifyContent: 'space-between',
|
|
303
|
+
marginTop: '16px',
|
|
304
|
+
}, children: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: '600' }, children: "Service Account Json" }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("input", { title: "Upload JSON", type: "file", accept: ".json", onChange: handleFileChange, style: { display: 'none' }, id: "fileInput", "data-testid": "quill-input-fileInput", ref: myInputRef }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
305
|
+
display: 'flex',
|
|
306
|
+
flexDirection: 'row',
|
|
307
|
+
gap: 12,
|
|
308
|
+
alignItems: 'center',
|
|
309
|
+
}, children: [(0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { onClick: handleButtonClick, label: 'Upload JSON' }), (0, jsx_runtime_1.jsx)("span", { "data-testid": "quill-file-label", style: { ...header2Style, fontWeight: '600' }, children: fileLabel })] })] })] }) }) })) })), state.isSelfHosted ? ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
310
|
+
borderRadius: 6,
|
|
311
|
+
padding: 12,
|
|
312
|
+
background: '#f5f5f5',
|
|
313
|
+
marginBottom: 18,
|
|
314
|
+
marginTop: 18,
|
|
315
|
+
fontSize: 14,
|
|
316
|
+
}, children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600 }, children: "Self-hosted Database Connection" }), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
317
|
+
display: 'flex',
|
|
318
|
+
flexDirection: 'row',
|
|
319
|
+
alignItems: 'center',
|
|
320
|
+
gap: 4,
|
|
321
|
+
color: state.theme?.secondaryTextColor,
|
|
322
|
+
fontFamily: state.theme?.fontFamily,
|
|
323
|
+
}, children: `Using the database credentials passed into the Quill Server SDK at this endpoint: ${state.queryEndpoint}.` })] })) : ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
223
324
|
borderRadius: 6,
|
|
224
325
|
padding: 12,
|
|
225
326
|
background: '#f5f5f5',
|
|
@@ -231,6 +332,8 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
|
|
|
231
332
|
flexDirection: 'row',
|
|
232
333
|
alignItems: 'center',
|
|
233
334
|
gap: 4,
|
|
335
|
+
color: state.theme?.secondaryTextColor,
|
|
336
|
+
fontFamily: state.theme?.fontFamily,
|
|
234
337
|
}, children: ["Ensure Quill's IP is allowed to connect to your database", ' ', (0, jsx_runtime_1.jsx)(ExternalLink_1.default, { href: databaseConnectionDetails.type.toLowerCase() === 'bigquery'
|
|
235
338
|
? 'https://cloud.google.com/access-context-manager/docs/overview#ip-address'
|
|
236
339
|
: databaseConnectionDetails.type.toLowerCase() === 'mysql'
|
|
@@ -246,18 +349,26 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
|
|
|
246
349
|
? 'https://clickhouse.com/docs/cloud/security/setting-ip-filters/'
|
|
247
350
|
: 'https://www.postgresql.org/docs/current/auth-pg-hba-conf.html' })] }), (0, jsx_runtime_1.jsx)(ClipboardButton_1.default, { text: "34.133.137.225", containerStyle: {
|
|
248
351
|
marginTop: 12,
|
|
249
|
-
} })] }), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
352
|
+
} })] })), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
250
353
|
width: '100%',
|
|
251
354
|
display: 'flex',
|
|
252
355
|
justifyContent: 'space-between',
|
|
253
356
|
alignItems: 'center',
|
|
254
357
|
marginTop: '24px',
|
|
255
|
-
}, "data-testid": "quill-connect-button", children: (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: 'Connect', onClick:
|
|
358
|
+
}, "data-testid": "quill-connect-button", children: (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: 'Connect', onClick: () => {
|
|
359
|
+
if (state.isSelfHosted) {
|
|
360
|
+
getSchemaNames();
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
testConnectionAndFormClient();
|
|
364
|
+
}
|
|
365
|
+
}, disabled: isButtonDisabled && !state.isSelfHosted, isLoading: isConnecting }) })] })), (0, jsx_runtime_1.jsx)(primitives_1.ModalPrimitive, { isOpen: !!error, onClose: () => setError(undefined), style: {
|
|
256
366
|
width: 420,
|
|
257
367
|
}, children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
258
368
|
display: 'flex',
|
|
259
369
|
flexDirection: 'column',
|
|
260
370
|
gap: 20,
|
|
371
|
+
fontFamily: state.theme?.fontFamily,
|
|
261
372
|
width: '100%',
|
|
262
373
|
}, children: [(0, jsx_runtime_1.jsx)(CardSection_1.default, { children: "Failed to Connect" }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 5 }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
263
374
|
color: 'red',
|
|
@@ -286,6 +397,7 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
|
|
|
286
397
|
flexDirection: 'column',
|
|
287
398
|
gap: 20,
|
|
288
399
|
width: '100%',
|
|
400
|
+
fontFamily: state.theme?.fontFamily,
|
|
289
401
|
}, children: [(0, jsx_runtime_1.jsx)(CardSection_1.default, { children: "Connection Successful" }), (0, jsx_runtime_1.jsx)("h2", { style: {
|
|
290
402
|
fontSize: 15,
|
|
291
403
|
fontWeight: 500,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectSchema.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/ConnectSchema.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,OAAO,CAAC;AAOpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAY,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ConnectSchema.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/ConnectSchema.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,OAAO,CAAC;AAOpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAY,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,cAAc,EACd,YAAY,EAEZ,cAAc,EACd,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,KAAK,EACL,KAAK,EACL,uBAAuB,GACxB,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,IAAI,CAAC;CACrC,2CA6UA"}
|
|
@@ -12,15 +12,20 @@ const EditTenant_1 = require("../../components/Tenants/EditTenant");
|
|
|
12
12
|
const CardSection_1 = __importDefault(require("../../components/CardSection"));
|
|
13
13
|
const useDatabaseSchema_1 = require("../../hooks/useDatabaseSchema");
|
|
14
14
|
const UiComponents_1 = require("../../components/UiComponents");
|
|
15
|
+
const useLongLoading_1 = require("../../hooks/useLongLoading");
|
|
15
16
|
function ConnectSchema({ containerStyle, header1Style,
|
|
16
17
|
// header2Style,
|
|
17
18
|
databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSchemas, state, label, returnToConnectDatabase, }) {
|
|
18
19
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
19
20
|
const [formError, setFormError] = (0, react_1.useState)(undefined);
|
|
20
21
|
const [isSubmitTenantLoading, setSubmitTenantLoading] = (0, react_1.useState)(false);
|
|
22
|
+
(0, useLongLoading_1.useLongLoading)(isSubmitTenantLoading, {
|
|
23
|
+
origin: 'ConnectSchema',
|
|
24
|
+
loadDescription: 'Submitting tenant',
|
|
25
|
+
});
|
|
21
26
|
const [tenantToEdit, setTenantToEdit] = (0, react_1.useState)(tenantInit?.ownerTenant);
|
|
22
27
|
const { schema, isLoading } = (0, useDatabaseSchema_1.useDatabaseSchema)();
|
|
23
|
-
const { quillFetchWithToken } = (0, AdminProvider_1.useAdmin)();
|
|
28
|
+
const { quillFetchWithToken, eventTracking } = (0, AdminProvider_1.useAdmin)();
|
|
24
29
|
const tenantRequest = async (tenant, mode, isOnboarding) => {
|
|
25
30
|
return await quillFetchWithToken({
|
|
26
31
|
client: {
|
|
@@ -76,6 +81,17 @@ databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSche
|
|
|
76
81
|
}
|
|
77
82
|
catch (e) {
|
|
78
83
|
console.log('error', e);
|
|
84
|
+
eventTracking?.logError?.({
|
|
85
|
+
type: 'bug', // TODO: determine type
|
|
86
|
+
severity: 'high',
|
|
87
|
+
message: 'Error updating tenant',
|
|
88
|
+
errorMessage: e.message,
|
|
89
|
+
errorStack: e.stack,
|
|
90
|
+
errorData: {
|
|
91
|
+
caller: 'ConnectSchema',
|
|
92
|
+
function: 'onSubmitEditTenant',
|
|
93
|
+
},
|
|
94
|
+
});
|
|
79
95
|
setFormError('Error updating tenant');
|
|
80
96
|
}
|
|
81
97
|
finally {
|
|
@@ -105,11 +121,27 @@ databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSche
|
|
|
105
121
|
if (!results?.length) {
|
|
106
122
|
setFormError(`No rows were returned from this ${tenant.tenantTableQuery ? 'query' : 'table'}`);
|
|
107
123
|
}
|
|
124
|
+
const uniqueIds = new Set(results?.map((r) => r.id));
|
|
125
|
+
if (uniqueIds.size < results?.length) {
|
|
126
|
+
setFormError('Duplicate tenant IDs found in results. Each tenant must have a unique ID.');
|
|
127
|
+
return [];
|
|
128
|
+
}
|
|
108
129
|
return results;
|
|
109
130
|
}
|
|
110
131
|
}
|
|
111
132
|
catch (e) {
|
|
112
133
|
console.log('error', e);
|
|
134
|
+
eventTracking?.logError?.({
|
|
135
|
+
type: 'bug', // TODO: determine type
|
|
136
|
+
severity: 'high',
|
|
137
|
+
message: 'Error validating tenant',
|
|
138
|
+
errorMessage: e.message,
|
|
139
|
+
errorStack: e.stack,
|
|
140
|
+
errorData: {
|
|
141
|
+
caller: 'ConnectSchema',
|
|
142
|
+
function: 'onValidateEditTenant',
|
|
143
|
+
},
|
|
144
|
+
});
|
|
113
145
|
setFormError('Error validating tenant');
|
|
114
146
|
return [];
|
|
115
147
|
}
|
|
@@ -129,7 +161,8 @@ databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSche
|
|
|
129
161
|
}, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
|
|
130
162
|
fontSize: 15,
|
|
131
163
|
fontWeight: 500,
|
|
132
|
-
color:
|
|
164
|
+
color: state.theme?.secondaryTextColor,
|
|
165
|
+
fontFamily: state.theme?.fontFamily,
|
|
133
166
|
paddingBottom: 20,
|
|
134
167
|
}, children: `How do you represent your customers in your database?` }), (0, jsx_runtime_1.jsx)(EditTenant_1.EditTenant, { tenant: tenantToEdit, setTenant: (tenant) => setTenantToEdit(tenant), setCreateNewTenant: () => { }, onSubmitEditTenant: onSubmitEditTenant, onValidateEditTenant: onValidateEditTenant, SecondaryButtonComponent: primitives_1.SecondaryButtonPrimitive, TextInputComponent: primitives_1.TextInputPrimitive, ButtonComponent: UiComponents_1.MemoizedButton, isSubmitTenantLoading: isSubmitTenantLoading, client: {
|
|
135
168
|
id: clientId,
|
|
@@ -144,6 +177,7 @@ databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSche
|
|
|
144
177
|
display: 'flex',
|
|
145
178
|
flexDirection: 'column',
|
|
146
179
|
gap: 20,
|
|
180
|
+
fontFamily: state.theme?.fontFamily,
|
|
147
181
|
width: '100%',
|
|
148
182
|
}, children: [(0, jsx_runtime_1.jsx)(CardSection_1.default, { children: noTables ? 'Schema Issue' : 'Tenant Issue' }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 5 }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
149
183
|
color: 'red',
|
|
@@ -38,10 +38,11 @@ export declare function VirtualTableModal({ isOpen, setIsOpen, queryInfo, setQue
|
|
|
38
38
|
}) => void;
|
|
39
39
|
addVirtualTable: (e: boolean) => Promise<void>;
|
|
40
40
|
}): import("react/jsx-runtime").JSX.Element;
|
|
41
|
-
export declare function TenantFieldModal({ isOpen, setClosed, tenant, onOverride, }: {
|
|
41
|
+
export declare function TenantFieldModal({ isOpen, setClosed, tenant, onOverride, errorType, }: {
|
|
42
42
|
isOpen: boolean;
|
|
43
43
|
setClosed: () => void;
|
|
44
44
|
tenant?: QuillTenant;
|
|
45
45
|
onOverride?: () => void;
|
|
46
|
+
errorType?: 'missing' | 'type_mismatch';
|
|
46
47
|
}): import("react/jsx-runtime").JSX.Element;
|
|
47
48
|
//# sourceMappingURL=CreateVirtualTables.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateVirtualTables.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/CreateVirtualTables.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"CreateVirtualTables.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/CreateVirtualTables.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AACnE,OAAO,EAAkB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOvD,OAAO,EAAE,KAAK,EAAY,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,GACb,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;CAClE,2CA2jBA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,SAAS,EACT,SAAS,EACT,YAAY,EACZ,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3D,eAAe,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD,2CA2HA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,SAAS,EACT,MAAM,EACN,UAAU,EACV,SAAqB,GACtB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,GAAG,eAAe,CAAC;CACzC,2CAwHA"}
|