Skip to content
Prev Previous commit
Next Next commit
fix(tables): direct imports for downloadFile/sanitizePathSegment, fix…
… greptile comments
  • Loading branch information
waleedlatif1 committed Apr 5, 2026
commit 4f7459250cc2c77bb6504224ed212b6b1f4fb5da
3 changes: 2 additions & 1 deletion apps/sim/app/api/v1/admin/folders/[id]/export/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ import { workflow, workflowFolder } from '@sim/db/schema'
import { createLogger } from '@sim/logger'
import { eq } from 'drizzle-orm'
import { NextResponse } from 'next/server'
import { exportFolderToZip, sanitizePathSegment } from '@/lib/workflows/operations/import-export'
import { sanitizePathSegment } from '@/lib/core/utils/file-download'
import { exportFolderToZip } from '@/lib/workflows/operations/import-export'
import { loadWorkflowFromNormalizedTables } from '@/lib/workflows/persistence/utils'
import { withAdminAuthParams } from '@/app/api/v1/admin/middleware'
import {
Expand Down
2 changes: 1 addition & 1 deletion apps/sim/app/api/v1/admin/workflows/export/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import { createLogger } from '@sim/logger'
import { inArray } from 'drizzle-orm'
import JSZip from 'jszip'
import { NextResponse } from 'next/server'
import { sanitizePathSegment } from '@/lib/workflows/operations/import-export'
import { sanitizePathSegment } from '@/lib/core/utils/file-download'
import { loadWorkflowFromNormalizedTables } from '@/lib/workflows/persistence/utils'
import { withAdminAuth } from '@/app/api/v1/admin/middleware'
import {
Expand Down
3 changes: 2 additions & 1 deletion apps/sim/app/api/v1/admin/workspaces/[id]/export/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ import { workflow, workflowFolder, workspace } from '@sim/db/schema'
import { createLogger } from '@sim/logger'
import { eq } from 'drizzle-orm'
import { NextResponse } from 'next/server'
import { exportWorkspaceToZip, sanitizePathSegment } from '@/lib/workflows/operations/import-export'
import { sanitizePathSegment } from '@/lib/core/utils/file-download'
import { exportWorkspaceToZip } from '@/lib/workflows/operations/import-export'
import { loadWorkflowFromNormalizedTables } from '@/lib/workflows/persistence/utils'
import { withAdminAuthParams } from '@/app/api/v1/admin/middleware'
import {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,18 @@ export function useExportTable({
const posthog = usePostHog()
const [isExporting, setIsExporting] = useState(false)
const isExportingRef = useRef(false)
const abortControllerRef = useRef<AbortController | null>(null)

useEffect(() => {
return () => {
abortControllerRef.current?.abort()
}
}, [])

const handleExportTable = useCallback(async () => {
if (!canExport || !workspaceId || !tableId || isExportingRef.current) return

abortControllerRef.current = new AbortController()
isExportingRef.current = true
setIsExporting(true)

Expand All @@ -43,6 +51,7 @@ export function useExportTable({
tableId,
filter: queryOptions.filter,
sort: queryOptions.sort,
signal: abortControllerRef.current.signal,
})

const filename = `${sanitizePathSegment(tableName?.trim() || 'table')}.csv`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import { useCallback, useMemo, useState } from 'react'
import { createLogger } from '@sim/logger'
import { useParams } from 'next/navigation'
import { downloadFile, sanitizePathSegment } from '@/lib/core/utils/file-download'
import { getFolderById } from '@/lib/folders/tree'
import {
downloadFile,
exportFolderToZip,
type FolderExportData,
fetchWorkflowForExport,
sanitizePathSegment,
type WorkflowExportData,
} from '@/lib/workflows/operations/import-export'
import { useFolderMap } from '@/hooks/queries/folders'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { useCallback, useRef, useState } from 'react'
import { createLogger } from '@sim/logger'
import { useParams } from 'next/navigation'
import { downloadFile } from '@/lib/core/utils/file-download'
import {
downloadFile,
exportWorkflowsToZip,
type FolderExportData,
fetchWorkflowForExport,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@ import { useCallback, useRef, useState } from 'react'
import { createLogger } from '@sim/logger'
import { useParams } from 'next/navigation'
import { usePostHog } from 'posthog-js/react'
import { downloadFile, sanitizePathSegment } from '@/lib/core/utils/file-download'
import { captureEvent } from '@/lib/posthog/client'
import {
downloadFile,
exportWorkflowsToZip,
exportWorkflowToJson,
fetchWorkflowForExport,
sanitizePathSegment,
} from '@/lib/workflows/operations/import-export'
import { getWorkflows } from '@/hooks/queries/utils/workflow-cache'
import { useFolderStore } from '@/stores/folders/store'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import { useCallback, useState } from 'react'
import { createLogger } from '@sim/logger'
import { downloadFile, sanitizePathSegment } from '@/lib/core/utils/file-download'
import {
downloadFile,
exportWorkspaceToZip,
type FolderExportData,
fetchWorkflowForExport,
sanitizePathSegment,
type WorkflowExportData,
} from '@/lib/workflows/operations/import-export'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ import { createLogger } from '@sim/logger'
import { useQueryClient } from '@tanstack/react-query'
import { useRouter } from 'next/navigation'
import { usePostHog } from 'posthog-js/react'
import { sanitizePathSegment } from '@/lib/core/utils/file-download'
import { captureEvent } from '@/lib/posthog/client'
import {
extractWorkflowsFromFiles,
extractWorkflowsFromZip,
persistImportedWorkflow,
sanitizePathSegment,
} from '@/lib/workflows/operations/import-export'
import { useCreateFolder } from '@/hooks/queries/folders'
import { folderKeys } from '@/hooks/queries/utils/folder-keys'
Expand Down
2 changes: 0 additions & 2 deletions apps/sim/lib/workflows/operations/import-export.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ import type { Variable, WorkflowState } from '@/stores/workflows/workflow/types'

const logger = createLogger('WorkflowImportExport')

export { downloadFile, sanitizePathSegment } from '@/lib/core/utils/file-download'

async function getJSZip() {
const { default: JSZip } = await import('jszip')
return JSZip
Expand Down