Skip to content

feat: Import dataset as new project - p2#5712

Merged
camiloHimura merged 6 commits intodevelopfrom
ccolora11/5395-import-new-project-p2
Mar 9, 2026
Merged

feat: Import dataset as new project - p2#5712
camiloHimura merged 6 commits intodevelopfrom
ccolora11/5395-import-new-project-p2

Conversation

@camiloHimura
Copy link
Copy Markdown
Contributor

Summary

Screenshot 2026-03-08 at 00 11 02

How to test

Checklist

  • The PR title and description are clear and descriptive
  • I have manually tested the changes
  • All changes are covered by automated tests
  • All related issues are linked to this PR (if applicable)
  • Documentation has been updated (if applicable)

@camiloHimura camiloHimura requested a review from a team as a code owner March 7, 2026 23:17
Copilot AI review requested due to automatic review settings March 7, 2026 23:17
@camiloHimura camiloHimura added the Geti UI Issues related to Geti application frontend label Mar 7, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds the next iteration of “import dataset as a new project” by introducing a dedicated dialog flow on the project list page, while refactoring common “job progress” UI/utilities and staged-dataset deletion handling to be reused across import/export surfaces.

Changes:

  • Introduce an ImportDatasetDialogProvider and a new multi-step “Import dataset as new project” dialog (with progress stepper and preparing step).
  • Extract a reusable ImportJobProcess component and centralize job helper utilities under hooks/api/util.
  • Refactor useDeleteStagedDataset to accept a caller-provided local cleanup callback (deleteEntry) and update import/export call sites accordingly.

Reviewed changes

Copilot reviewed 41 out of 42 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
application/ui/src/hooks/localStorage/use-import-dataset-as-new-project.hook.ts Updates localStorage state typing for “import as new project”.
application/ui/src/hooks/api/util.ts Adds shared job helper utilities (isJobDone, getJobProgress, etc.).
application/ui/src/hooks/api/use-delete-staged-dataset.hook.ts Refactors staged dataset deletion hook to use deleteEntry callback and allow nullable ids.
application/ui/src/hooks/api/use-delete-staged-dataset.hook.test.ts Updates tests for the refactored staged dataset deletion hook.
application/ui/src/hooks/api/jobs/use-import-job-status.test.tsx Fixes relative imports after jobs hook path changes.
application/ui/src/hooks/api/jobs/use-import-job-status.hook.tsx Adjusts imports and removes select/cast for job query.
application/ui/src/hooks/api/jobs/jobs.hook.ts Moves/normalizes jobs hook imports and exports (new path).
application/ui/src/hooks/api/jobs/jobs.hook.test.ts Fixes relative imports after jobs hook path changes.
application/ui/src/features/project/providers/import-dataset-dialog-provider.component.tsx Adds provider/context for controlling the “import as new project” dialog + step state.
application/ui/src/features/project/list/project-list.component.tsx Wraps project grid in the new dialog provider.
application/ui/src/features/project/list/new-project-menu.component.tsx Opens the new import dialog via provider state; updates import component path.
application/ui/src/features/project/list/import-dataset-as-new-projects/import-process/import-process.component.tsx Adds “preparing” step UI for “import as new project” using shared job process component.
application/ui/src/features/project/list/import-dataset-as-new-projects/import-process/import-job-process.module.scss Adds styles (currently appears unused).
application/ui/src/features/project/list/import-dataset-as-new-projects/import-dataset-buttons/import-dataset-buttons.component.tsx Adds dialog footer buttons for the new-project import flow.
application/ui/src/features/project/list/import-dataset-as-new-projects/import-dataset-as-new-projects.module.scss Adds layout styling for the new import dialog.
application/ui/src/features/project/list/import-dataset-as-new-projects/import-dataset-as-new-projects.component.tsx Adds the new multi-step import dialog component.
application/ui/src/features/project/list/import-dataset-as-new-projects/ProgressStepper/progress-stepper.test.tsx Adds tests for the new progress stepper.
application/ui/src/features/project/list/import-dataset-as-new-projects/ProgressStepper/progress-stepper.module.scss Adds styles for the new progress stepper.
application/ui/src/features/project/list/import-dataset-as-new-projects/ProgressStepper/progress-stepper.component.tsx Adds the new progress stepper component.
application/ui/src/features/project/list/Import-dataset-as-new-project/Import-dataset-as-new-project.component.tsx Removes the previous single-step import dialog component.
application/ui/src/features/models/model-listing/model-listing.container.tsx Updates jobs hook import path.
application/ui/src/features/models/model-listing/current-model-training/current-model-training.component.tsx Updates jobs hook import path.
application/ui/src/features/models/hooks/api/use-train-model-mutation.ts Updates jobs hook import path.
application/ui/src/features/dataset/import-export/util.ts Removes old dataset import/export job utility module (moved to hooks/api/util).
application/ui/src/features/dataset/import-export/import-jobs-list/prepare-import-dataset.component.tsx Switches to shared job utilities and the new import job status hook path.
application/ui/src/features/dataset/import-export/import-jobs-list/loading-import-dataset/loading-import-dataset.component.tsx Switches to shared job utilities and the new import job status hook path.
application/ui/src/features/dataset/import-export/import-jobs-list/import-job-done/import-job-done.component.tsx Updates staged dataset deletion hook usage to provide deleteEntry.
application/ui/src/features/dataset/import-export/import-jobs-list/import-failed-job/import-failed-job.component.tsx Updates staged dataset deletion hook usage to provide deleteEntry.
application/ui/src/features/dataset/import-export/import-jobs-list/import-active-job/import-active-job.component.tsx Uses shared job utilities and updates staged dataset deletion hook usage.
application/ui/src/features/dataset/import-export/import-dataset/label-mapping/label-mapping-buttons.component.tsx Updates staged dataset deletion hook usage to provide deleteEntry.
application/ui/src/features/dataset/import-export/import-dataset/import-process/import-process.component.tsx Refactors to use shared ImportJobProcess component.
application/ui/src/features/dataset/import-export/import-dataset/import-dataset-buttons/import-dataset-buttons.component.tsx Uses shared ImportProcessButtons and wires deleteEntry.
application/ui/src/features/dataset/import-export/export-jobs-list/hooks/use-export-status.hook.tsx Uses shared job utilities from hooks/api/util.
application/ui/src/features/dataset/import-export/export-jobs-list/export-job/export-job.component.tsx Uses shared job utilities from hooks/api/util.
application/ui/src/features/dataset/import-export/export-jobs-list/export-job/export-completed-job/export-completed-job.component.tsx Refactors to use useDeleteStagedDataset with deleteEntry callback.
application/ui/src/features/dataset/import-export/export-jobs-list/export-job/export-active-job.component.tsx Uses shared job utilities from hooks/api/util.
application/ui/src/features/dataset/import-export/delete-staged-file-confirmation/delete-staged-file-confirmation.component.tsx Updates staged dataset deletion hook usage to provide deleteEntry.
application/ui/src/features/dataset/import-export/cancel-job-confirmation/cancel-job-confirmation.component.tsx Uses shared isInvalidJob from hooks/api/util.
application/ui/src/components/import-upload-file/import-upload-file.component.tsx Adjusts empty-state illustration sizing.
application/ui/src/components/import-job-process/import-process-buttons.component.tsx Updates to new jobs hook import path and wires staged deletion via deleteEntry.
application/ui/src/components/import-job-process/import-job-process.module.scss Adds shared styling for the extracted job progress component.
application/ui/src/components/import-job-process/import-job-process.component.tsx Adds reusable “job progress” UI component used by import flows.
Comments suppressed due to low confidence (1)

application/ui/src/hooks/api/use-delete-staged-dataset.hook.ts:21

  • stagedDatasetId is allowed to be null | undefined, but it’s used directly to build the path params. If mutate() is called without a valid id, this will likely hit /api/staged_datasets/null (or similar) and won’t clean up correctly. Consider making stagedDatasetId required, or guard in mutate/mutateAsync (e.g., throw/return early) until an id is available.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 7, 2026

📊 Test coverage report

Metric Coverage
Lines 38.9%
Functions 76.4%
Branches 87.2%
Statements 38.9%

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 7, 2026

Docker Image Sizes

CPU

Image Size
geti-tune-cpu:pr-5712 983.31M
geti-tune-cpu:sha-6c0e7fc 983.31M

GPU

Image Size
geti-tune-gpu:pr-5712 5.52G
geti-tune-gpu:sha-6c0e7fc 5.52G

XPU

Image Size
geti-tune-xpu:pr-5712 3.32G
geti-tune-xpu:sha-6c0e7fc 3.32G

Comment thread application/ui/src/components/import-upload-file/import-upload-file.component.tsx Outdated
Comment thread application/ui/src/features/project/list/project-list.component.tsx
@camiloHimura camiloHimura force-pushed the ccolora11/5395-import-new-project-p2 branch from 032a28a to 36d1f10 Compare March 9, 2026 11:12
@camiloHimura camiloHimura added this pull request to the merge queue Mar 9, 2026
Merged via the queue into develop with commit 15e00e3 Mar 9, 2026
33 checks passed
@camiloHimura camiloHimura deleted the ccolora11/5395-import-new-project-p2 branch March 9, 2026 13:29
omkar-334 pushed a commit to omkar-334/otx that referenced this pull request Mar 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Geti UI Issues related to Geti application frontend

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants