From 5db6d1af9a17dff9ee135b579ab32cecf8346c38 Mon Sep 17 00:00:00 2001 From: Luke Mino-Altherr Date: Fri, 5 Dec 2025 18:38:52 -0800 Subject: [PATCH] [feat] Add video help dialog to Upload Model flow (#7177) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Adds an interactive video tutorial dialog to help users find CivitAI model URLs during the Upload Model wizard. ## Changes - **New Component**: Created reusable `VideoHelpDialog.vue` component - Full-width video player with floating close button - Configurable props: `videoUrl`, `loop`, `showControls` - Custom ESC key handling to prevent parent dialog from closing - Click backdrop to dismiss - 70% dark backdrop for better video focus - **Upload Model Flow**: Integrated video help button in step 1 footer - "How do I find this?" button opens tutorial video - Video demonstrates finding model URLs on CivitAI - PostHog tracking attribute maintained (`upload-model-step1-help-link`) ## Review Focus - ESC key event handling uses capture phase to prevent propagation to parent dialogs - Component follows existing patterns from `MediaVideoTop.vue` and `BaseModalLayout.vue` - Video player accessibility (ARIA labels, keyboard navigation) 🤖 Generated with [Claude Code](https://claude.com/claude-code) ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7177-feat-Add-video-help-dialog-to-Upload-Model-flow-2c06d73d36508148963ad9ee60038ea3) by [Unito](https://www.unito.io) --------- Co-authored-by: Claude --- src/locales/en/main.json | 2 + .../assets/components/UploadModelFooter.vue | 32 +++++--- .../assets/components/VideoHelpDialog.vue | 75 +++++++++++++++++++ 3 files changed, 98 insertions(+), 11 deletions(-) create mode 100644 src/platform/assets/components/VideoHelpDialog.vue diff --git a/src/locales/en/main.json b/src/locales/en/main.json index b1378bc7e..2491075c3 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -2113,6 +2113,8 @@ "uploadingModel": "Importing model...", "uploadSuccess": "Model imported successfully!", "uploadFailed": "Import failed", + "uploadModelHelpVideo": "Upload Model Help Video", + "uploadModelHowDoIFindThis": "How do I find this?", "modelAssociatedWithLink": "The model associated with the link you provided:", "modelTypeSelectorLabel": "What type of model is this?", "modelTypeSelectorPlaceholder": "Select model type", diff --git a/src/platform/assets/components/UploadModelFooter.vue b/src/platform/assets/components/UploadModelFooter.vue index 7bb4cc966..82f597dd7 100644 --- a/src/platform/assets/components/UploadModelFooter.vue +++ b/src/platform/assets/components/UploadModelFooter.vue @@ -1,18 +1,18 @@