mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-07-12 15:52:57 +02:00
Batch insert environments last, to handle folder case
This commit is contained in:
@@ -49,15 +49,7 @@ impl<'a> DbContext<'a> {
|
|||||||
info!("Upserted {} websocket_requests", imported_resources.websocket_requests.len());
|
info!("Upserted {} websocket_requests", imported_resources.websocket_requests.len());
|
||||||
}
|
}
|
||||||
|
|
||||||
if environments.len() > 0 {
|
// Do folders after their children so the UI doesn't render empty folders before populating
|
||||||
for x in environments {
|
|
||||||
let x = self.upsert_environment(&x, source)?;
|
|
||||||
imported_resources.environments.push(x.clone());
|
|
||||||
}
|
|
||||||
info!("Upserted {} environments", imported_resources.environments.len());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do folders last so it doesn't cause the UI to render empty folders before populating
|
|
||||||
// immediately after.
|
// immediately after.
|
||||||
if folders.len() > 0 {
|
if folders.len() > 0 {
|
||||||
for v in folders {
|
for v in folders {
|
||||||
@@ -67,6 +59,15 @@ impl<'a> DbContext<'a> {
|
|||||||
info!("Upserted {} folders", imported_resources.folders.len());
|
info!("Upserted {} folders", imported_resources.folders.len());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do environments last because they can depend on many models (requests, folders, etc)
|
||||||
|
if environments.len() > 0 {
|
||||||
|
for x in environments {
|
||||||
|
let x = self.upsert_environment(&x, source)?;
|
||||||
|
imported_resources.environments.push(x.clone());
|
||||||
|
}
|
||||||
|
info!("Upserted {} environments", imported_resources.environments.len());
|
||||||
|
}
|
||||||
|
|
||||||
Ok(imported_resources)
|
Ok(imported_resources)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { jotaiStore } from '../lib/jotai';
|
|||||||
import { showPrompt } from '../lib/prompt';
|
import { showPrompt } from '../lib/prompt';
|
||||||
import { setWorkspaceSearchParams } from '../lib/setWorkspaceSearchParams';
|
import { setWorkspaceSearchParams } from '../lib/setWorkspaceSearchParams';
|
||||||
|
|
||||||
export const createEnvironmentAndActivate = createFastMutation<
|
export const createSubEnvironmentAndActivate = createFastMutation<
|
||||||
string | null,
|
string | null,
|
||||||
unknown,
|
unknown,
|
||||||
Environment | null
|
Environment | null
|
||||||
@@ -46,7 +46,6 @@ export const createEnvironmentAndActivate = createFastMutation<
|
|||||||
return; // Was not created
|
return; // Was not created
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('NAVIGATING', jotaiStore.get(activeWorkspaceIdAtom), environmentId);
|
|
||||||
setWorkspaceSearchParams({ environment_id: environmentId });
|
setWorkspaceSearchParams({ environment_id: environmentId });
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { useAtomValue } from 'jotai';
|
|||||||
import type { KeyboardEvent, ReactNode } from 'react';
|
import type { KeyboardEvent, ReactNode } from 'react';
|
||||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
||||||
import { createFolder } from '../commands/commands';
|
import { createFolder } from '../commands/commands';
|
||||||
import { createEnvironmentAndActivate } from '../commands/createEnvironment';
|
import { createSubEnvironmentAndActivate } from '../commands/createEnvironment';
|
||||||
import { openSettings } from '../commands/openSettings';
|
import { openSettings } from '../commands/openSettings';
|
||||||
import { switchWorkspace } from '../commands/switchWorkspace';
|
import { switchWorkspace } from '../commands/switchWorkspace';
|
||||||
import { useActiveCookieJar } from '../hooks/useActiveCookieJar';
|
import { useActiveCookieJar } from '../hooks/useActiveCookieJar';
|
||||||
@@ -130,7 +130,7 @@ export function CommandPaletteDialog({ onClose }: { onClose: () => void }) {
|
|||||||
{
|
{
|
||||||
key: 'environment.create',
|
key: 'environment.create',
|
||||||
label: 'Create Environment',
|
label: 'Create Environment',
|
||||||
onSelect: () => createEnvironmentAndActivate.mutate(baseEnvironment),
|
onSelect: () => createSubEnvironmentAndActivate.mutate(baseEnvironment),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'sidebar.toggle',
|
key: 'sidebar.toggle',
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { duplicateModel, patchModel } from '@yaakapp-internal/models';
|
|||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import type { ReactNode } from 'react';
|
import type { ReactNode } from 'react';
|
||||||
import React, { useCallback, useState } from 'react';
|
import React, { useCallback, useState } from 'react';
|
||||||
import { createEnvironmentAndActivate } from '../commands/createEnvironment';
|
import { createSubEnvironmentAndActivate } from '../commands/createEnvironment';
|
||||||
import { useEnvironmentsBreakdown } from '../hooks/useEnvironmentsBreakdown';
|
import { useEnvironmentsBreakdown } from '../hooks/useEnvironmentsBreakdown';
|
||||||
import { deleteModelWithConfirm } from '../lib/deleteModelWithConfirm';
|
import { deleteModelWithConfirm } from '../lib/deleteModelWithConfirm';
|
||||||
import { isBaseEnvironment } from '../lib/model_util';
|
import { isBaseEnvironment } from '../lib/model_util';
|
||||||
@@ -42,7 +42,7 @@ export const EnvironmentEditDialog = function ({ initialEnvironment }: Props) {
|
|||||||
|
|
||||||
const handleCreateEnvironment = async () => {
|
const handleCreateEnvironment = async () => {
|
||||||
if (baseEnvironment == null) return;
|
if (baseEnvironment == null) return;
|
||||||
const id = await createEnvironmentAndActivate.mutateAsync(baseEnvironment);
|
const id = await createSubEnvironmentAndActivate.mutateAsync(baseEnvironment);
|
||||||
if (id != null) setSelectedEnvironmentId(id);
|
if (id != null) setSelectedEnvironmentId(id);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -48,10 +48,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.select-all * {
|
|
||||||
/*@apply select-all;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
a,
|
a,
|
||||||
a[href] * {
|
a[href] * {
|
||||||
@apply cursor-pointer !important;
|
@apply cursor-pointer !important;
|
||||||
|
|||||||
Reference in New Issue
Block a user