Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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