From 7fdd85dda2139ded896690eb6de89eff2c49e04d Mon Sep 17 00:00:00 2001 From: Vanessa Date: Wed, 18 Jun 2025 11:50:33 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/10414 --- app/src/assets/scss/business/_av.scss | 29 ++++++ app/src/protyle/gutter/index.ts | 2 +- app/src/protyle/render/av/gallery/item.ts | 3 +- app/src/protyle/render/av/gallery/render.ts | 2 +- app/src/protyle/util/editorCommonEvent.ts | 107 ++++++++++++++++++-- 5 files changed, 133 insertions(+), 10 deletions(-) diff --git a/app/src/assets/scss/business/_av.scss b/app/src/assets/scss/business/_av.scss index b4f859ca7..b8ed1a558 100644 --- a/app/src/assets/scss/business/_av.scss +++ b/app/src/assets/scss/business/_av.scss @@ -28,6 +28,10 @@ cursor: auto; } + &[data-av-type="gallery"] > .av__container { + overflow: inherit; + } + &__pulse { width: 70%; height: 23px; @@ -289,6 +293,25 @@ &--select { background-color: var(--b3-theme-primary-lightest); } + + &.dragover__left::after, + &.dragover__right::after { + top: 0; + bottom: 0; + width: 4px; + content: ''; + position: absolute; + background-color: var(--b3-theme-primary-lighter); + z-index: 3; + } + + &.dragover__left::after { + left: -11px; + } + + &.dragover__right::after { + right: -11px; + } } &-cover { @@ -303,21 +326,27 @@ &--0 { aspect-ratio: 16/9; } + &--1 { aspect-ratio: 9/16; } + &--2 { aspect-ratio: 4/3; } + &--3 { aspect-ratio: 3/4; } + &--4 { aspect-ratio: 3/2; } + &--5 { aspect-ratio: 2/3; } + &--6 { aspect-ratio: 1; } diff --git a/app/src/protyle/gutter/index.ts b/app/src/protyle/gutter/index.ts index 8615c650d..19c99a848 100644 --- a/app/src/protyle/gutter/index.ts +++ b/app/src/protyle/gutter/index.ts @@ -89,7 +89,7 @@ export class Gutter { let avElement: Element; if (buttonElement.dataset.rowId) { avElement = Array.from(protyle.wysiwyg.element.querySelectorAll(`.av[data-node-id="${buttonElement.dataset.nodeId}"]`)).find((item: HTMLElement) => { - if (!isInEmbedBlock(item)) { + if (!isInEmbedBlock(item) && !isInAVBlock(item)) { return true; } }); diff --git a/app/src/protyle/render/av/gallery/item.ts b/app/src/protyle/render/av/gallery/item.ts index 4d00b0b36..0cf66617d 100644 --- a/app/src/protyle/render/av/gallery/item.ts +++ b/app/src/protyle/render/av/gallery/item.ts @@ -26,9 +26,10 @@ export const insertGalleryItemAnimation = (options: { !options.blockElement.querySelector('[data-type="av-load-more"]').classList.contains("fn__none")) { needUpdate = ' data-need-update="true"'; } + const coverClass = sideItemElement.querySelector(".av__gallery-cover").className; options.srcIDs.forEach((id) => { html += ``; }); diff --git a/app/src/protyle/render/av/gallery/render.ts b/app/src/protyle/render/av/gallery/render.ts index 084fae936..f60b1ad3d 100644 --- a/app/src/protyle/render/av/gallery/render.ts +++ b/app/src/protyle/render/av/gallery/render.ts @@ -59,7 +59,7 @@ export const renderGallery = (options: { let galleryHTML = ""; // body view.cards.forEach((item: IAVGalleryItem, rowIndex: number) => { - galleryHTML += `