Refactor model registry ImportArtifactZone component artifact upload
The following discussion from !154729 (merged) should be addressed:
-
@eduardobonet started a discussion: (+2 comments) Note, nb I feel there should be a way to use props here, as this is the kind of reactivity it was made for. But the import_artifact_zone is also mutating that value, and mutate a prop is not something we want to do. There are no other cases in the codebase of usage of 'onUploadProgress' or GlProgressBar to show upload progress, so it makes it harder to find past work. Given that this seems to be the simplest way, I think it's ok if using $refs is a bit of an anti-pattern (mostly used to open/close modals).
Yeah I tried a prop coupled with a data attribute nothing works. In particularly having a vue component, part of a parent component's flow is tricky and don't know a better way here.
Maintainer
It looks like everyone is on the same page, that the approach is not ideal. But I agree that it is the simplest solution to get this feature out.
How about creating a follow-up to iterate and refactor it?
I think that the problem is mixing internal with external state.
Roughly, I think we could move out the fetching-logic from import_artifact_zone.vue
and split out a dumb-component that displays the progress based on props, plus emits the required events.
We will need to create one additional component to handle the fetch that is currently embedded within import_artifact_zone.vue
, but I think that would be OK.