diff --git a/net/server/internal/transcodeUtil.go b/net/server/internal/transcodeUtil.go index c47a3d7d..6e6e054a 100644 --- a/net/server/internal/transcodeUtil.go +++ b/net/server/internal/transcodeUtil.go @@ -144,7 +144,7 @@ func UpdateAsset(asset *store.Asset, status string, crc uint32, size int64) (err if res := tx.Model(store.Asset{}).Where("id = ?", asset.ID).Updates(asset).Error; res != nil { return res } - if res := tx.Preload("Account").Preload("TopicSlot").Preload("Channel.ChannelSlot").First(&topic, asset.Topic.ID).Error; res != nil { + if res := tx.Preload("Account").Preload("TopicSlot").Preload("Channel.Groups").Preload("Channel.Cards").Preload("Channel.ChannelSlot").First(&topic, asset.Topic.ID).Error; res != nil { return res; } if res := tx.Model(&topic).Update("detail_revision", topic.Account.ChannelRevision + 1).Error; res != nil { diff --git a/net/web/src/Carousel/Carousel.jsx b/net/web/src/Carousel/Carousel.jsx index 0d991a27..98cb8a2b 100644 --- a/net/web/src/Carousel/Carousel.jsx +++ b/net/web/src/Carousel/Carousel.jsx @@ -8,6 +8,7 @@ import test from '../test.png'; export function Carousel({ items, itemRenderer, itemRemove }) { const [slots, setSlots] = useState([]); + const [carouselRef, setCarouselRef] = useState(false); const [itemIndex, setItemIndex] = useState(0); const [scrollLeft, setScrollLeft] = useState('hidden'); const [scrollRight, setScrollRight] = useState('hidden'); @@ -17,10 +18,14 @@ export function Carousel({ items, itemRenderer, itemRemove }) { let itemWidth = useRef(new Map()); useEffect(() => { - setScroll(); + setScroll('smooth'); setArrows(); }, [itemIndex, items]); + useEffect(() => { + setScroll('auto'); + }, [carouselRef]); + const updateItemIndex = (val) => { setItemIndex((i) => { if (i + val < 0) { @@ -42,13 +47,13 @@ export function Carousel({ items, itemRenderer, itemRemove }) { } } - const setScroll = () => { - let pos = 0; + const setScroll = (behavior) => { + let pos = FUDGE; for (let i = 0; i < itemIndex; i++) { - pos += itemWidth.current.get(i) + 32 + FUDGE; + pos += itemWidth.current.get(i) + 32; } if (carousel.current) { - carousel.current.scrollTo({ top: 0, left: pos, behavior: 'smooth' }); + carousel.current.scrollTo({ top: 0, left: pos, behavior }); } } @@ -67,6 +72,13 @@ export function Carousel({ items, itemRenderer, itemRemove }) { } } + const RemoveItem = ({ index }) => { + if (itemRemove) { + return