mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-25 09:41:04 +01:00
fix(folders): surface bulk move failures
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
91a3d5c44e
commit
126a11eb03
2 files changed
+64
-30
No files matched your search
@@ -4343,13 +4343,22 @@ export function CompanySkills() {
|
||||
if (moveAfterCreateSkillIds.length > 0) {
|
||||
const ids = moveAfterCreateSkillIds;
|
||||
setMoveAfterCreateSkillIds([]);
|
||||
await Promise.all(ids.map((itemId) =>
|
||||
foldersApi.moveItem(selectedCompanyId!, { kind: "skill", itemId, folderId: folder.id })
|
||||
));
|
||||
await Promise.all([
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.companySkills.list(selectedCompanyId!) }),
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.folders.list(selectedCompanyId!, "skill") }),
|
||||
]);
|
||||
try {
|
||||
await Promise.all(ids.map((itemId) =>
|
||||
foldersApi.moveItem(selectedCompanyId!, { kind: "skill", itemId, folderId: folder.id })
|
||||
));
|
||||
await Promise.all([
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.companySkills.list(selectedCompanyId!) }),
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.folders.list(selectedCompanyId!, "skill") }),
|
||||
]);
|
||||
} catch (moveError) {
|
||||
pushToast({
|
||||
tone: "error",
|
||||
title: "Folder created, move failed",
|
||||
body: moveError instanceof Error ? moveError.message : "Failed to move the selected skills.",
|
||||
});
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
setFolderSelection(folder.id);
|
||||
}
|
||||
@@ -4419,14 +4428,22 @@ export function CompanySkills() {
|
||||
async function moveSelectedSkills(folderId: string | null) {
|
||||
const ids = selectedSkillIds;
|
||||
if (ids.length === 0) return;
|
||||
await Promise.all(ids.map((itemId) => foldersApi.moveItem(selectedCompanyId!, { kind: "skill", itemId, folderId })));
|
||||
setSelectedSkillIds([]);
|
||||
setSelectMode(false);
|
||||
await Promise.all([
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.companySkills.list(selectedCompanyId!) }),
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.folders.list(selectedCompanyId!, "skill") }),
|
||||
]);
|
||||
pushToast({ tone: "success", title: "Skills moved", body: `${ids.length} skill${ids.length === 1 ? "" : "s"} filed.` });
|
||||
try {
|
||||
await Promise.all(ids.map((itemId) => foldersApi.moveItem(selectedCompanyId!, { kind: "skill", itemId, folderId })));
|
||||
setSelectedSkillIds([]);
|
||||
setSelectMode(false);
|
||||
await Promise.all([
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.companySkills.list(selectedCompanyId!) }),
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.folders.list(selectedCompanyId!, "skill") }),
|
||||
]);
|
||||
pushToast({ tone: "success", title: "Skills moved", body: `${ids.length} skill${ids.length === 1 ? "" : "s"} filed.` });
|
||||
} catch (moveError) {
|
||||
pushToast({
|
||||
tone: "error",
|
||||
title: "Failed to move skills",
|
||||
body: moveError instanceof Error ? moveError.message : "Failed to move the selected skills.",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const eligibleAgentsForAttach = useMemo(() => {
|
||||
|
||||
+32
-15
@@ -438,13 +438,22 @@ export function Routines() {
|
||||
if (moveAfterCreateIds.length > 0) {
|
||||
const ids = moveAfterCreateIds;
|
||||
setMoveAfterCreateIds([]);
|
||||
await Promise.all(ids.map((itemId) =>
|
||||
foldersApi.moveItem(selectedCompanyId!, { kind: "routine", itemId, folderId: folder.id })
|
||||
));
|
||||
await Promise.all([
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.routines.list(selectedCompanyId!) }),
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.folders.list(selectedCompanyId!, "routine") }),
|
||||
]);
|
||||
try {
|
||||
await Promise.all(ids.map((itemId) =>
|
||||
foldersApi.moveItem(selectedCompanyId!, { kind: "routine", itemId, folderId: folder.id })
|
||||
));
|
||||
await Promise.all([
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.routines.list(selectedCompanyId!) }),
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.folders.list(selectedCompanyId!, "routine") }),
|
||||
]);
|
||||
} catch (moveError) {
|
||||
pushToast({
|
||||
title: "Folder created, move failed",
|
||||
body: moveError instanceof Error ? moveError.message : "Paperclip could not move the selected routines.",
|
||||
tone: "error",
|
||||
});
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
setFolderSelection(folder.id);
|
||||
}
|
||||
@@ -703,14 +712,22 @@ export function Routines() {
|
||||
async function moveSelectedRoutines(folderId: string | null) {
|
||||
const ids = selectedRoutineIds;
|
||||
if (ids.length === 0) return;
|
||||
await Promise.all(ids.map((itemId) => foldersApi.moveItem(selectedCompanyId!, { kind: "routine", itemId, folderId })));
|
||||
setSelectedRoutineIds([]);
|
||||
setSelectMode(false);
|
||||
await Promise.all([
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.routines.list(selectedCompanyId!) }),
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.folders.list(selectedCompanyId!, "routine") }),
|
||||
]);
|
||||
pushToast({ title: "Routines moved", body: `${ids.length} routine${ids.length === 1 ? "" : "s"} filed.`, tone: "success" });
|
||||
try {
|
||||
await Promise.all(ids.map((itemId) => foldersApi.moveItem(selectedCompanyId!, { kind: "routine", itemId, folderId })));
|
||||
setSelectedRoutineIds([]);
|
||||
setSelectMode(false);
|
||||
await Promise.all([
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.routines.list(selectedCompanyId!) }),
|
||||
queryClient.invalidateQueries({ queryKey: queryKeys.folders.list(selectedCompanyId!, "routine") }),
|
||||
]);
|
||||
pushToast({ title: "Routines moved", body: `${ids.length} routine${ids.length === 1 ? "" : "s"} filed.`, tone: "success" });
|
||||
} catch (moveError) {
|
||||
pushToast({
|
||||
title: "Failed to move routines",
|
||||
body: moveError instanceof Error ? moveError.message : "Paperclip could not move the selected routines.",
|
||||
tone: "error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function handleRunNow(routine: RoutineListItem) {
|
||||
|
||||
Reference in new issue
Block a user