warn about big projects

This commit is contained in:
Kurt Hutten Irev-Dev
2025-03-31 17:03:11 +11:00
parent 347cb07eb0
commit 5d28537c3b
3 changed files with 14 additions and 5 deletions

View File

@ -1760,6 +1760,7 @@ export const ModelingMachineProvider = ({
if (isDesktop() && context?.project?.children) {
basePath = context?.selectedDirectory?.path
const filePromises: Promise<FileMeta | null>[] = []
let uploadSize = 0
const recursivelyPushFilePromises = (files: FileEntry[]) => {
// mutates filePromises declared above, so this function definition should stay here
// if pulled out, it would need to be refactored.
@ -1774,6 +1775,7 @@ export const ModelingMachineProvider = ({
const filePromise = window.electron
.readFile(absPath)
.then((file): FileMeta => {
uploadSize += file.byteLength
const decoder = new TextDecoder('utf-8')
const fileType = window.electron.path.extname(absPath)
if (fileType === '.kcl') {
@ -1786,12 +1788,13 @@ export const ModelingMachineProvider = ({
execStateNameToIndexMap[absPath],
}
}
const blob = new Blob([file], {
type: 'application/octet-stream',
})
return {
type: 'other',
relPath,
data: new Blob([file], {
type: 'application/octet-stream',
}),
data: blob,
}
})
.catch((e) => {
@ -1806,6 +1809,12 @@ export const ModelingMachineProvider = ({
projectFiles = (await Promise.all(filePromises)).filter(
isNonNullable
)
const MB20 = 2 ** 20 * 20
if (uploadSize > MB20) {
toast.error(
"You're project exceeds 20Mb, this will slow down Text-to-CAD\nPlease remove any unnecessary files"
)
}
}
return await promptToEditFlow({
projectFiles,

View File

@ -196,6 +196,8 @@ const IMPORT_FILE_EXTENSIONS = [
'glb',
'fbxb',
'kcl',
'step',
'stl',
]
const isRelevantFile = (filename: string): boolean =>

View File

@ -359,7 +359,6 @@ export async function doPromptEdit({
console.error('textToCadComplete', e)
}
console.log('textToCadComplete', textToCadComplete)
return textToCadComplete
}
@ -446,7 +445,6 @@ export async function promptToEditFlow({
return
}
console.log('outputs', outputs)
if (isDesktop()) {
// write all of the outputs to disk
for (const [relativePath, fileContents] of Object.entries(outputs)) {