视频复刻优化替换商品和替换角色
This commit is contained in:
@@ -962,8 +962,11 @@ export function VideoReplacePage({
|
||||
<div className="product-replace-options">
|
||||
<button
|
||||
type="button"
|
||||
className={`replace-product-method${source === "library" ? " active" : ""}${librarySelected ? " has-product-preview" : ""}`}
|
||||
className={`replace-product-method${source === "library" ? " active" : ""}${librarySelected ? " has-product-preview" : ""}${generating ? " is-disabled" : ""}`}
|
||||
disabled={generating}
|
||||
aria-disabled={generating}
|
||||
onClick={() => {
|
||||
if (generating) return;
|
||||
if (replaceMode === "character") setPendingModelId(selectedModel?.id || "");
|
||||
else setPendingProductId(selectedProduct?.id || "");
|
||||
setLibraryOpen(true);
|
||||
@@ -986,12 +989,17 @@ export function VideoReplacePage({
|
||||
</button>
|
||||
|
||||
<div
|
||||
className={`replace-product-method replace-temporary-method${source === "temporary" ? " active" : ""}${tempDisplay.length ? " has-images" : ""}${tempDrop.dragging ? " is-dragover" : ""}`}
|
||||
className={`replace-product-method replace-temporary-method${source === "temporary" ? " active" : ""}${tempDisplay.length ? " has-images" : ""}${tempDrop.dragging ? " is-dragover" : ""}${generating ? " is-disabled" : ""}`}
|
||||
role="button"
|
||||
tabIndex={0}
|
||||
{...tempDrop.dropProps}
|
||||
onClick={() => tempInputRef.current?.click()}
|
||||
tabIndex={generating ? -1 : 0}
|
||||
aria-disabled={generating}
|
||||
{...(!generating ? tempDrop.dropProps : {})}
|
||||
onClick={() => {
|
||||
if (generating) return;
|
||||
tempInputRef.current?.click();
|
||||
}}
|
||||
onKeyDown={(event) => {
|
||||
if (generating) return;
|
||||
if (event.key === "Enter" || event.key === " ") {
|
||||
event.preventDefault();
|
||||
tempInputRef.current?.click();
|
||||
@@ -1023,9 +1031,11 @@ export function VideoReplacePage({
|
||||
type="button"
|
||||
className="replace-temporary-remove"
|
||||
aria-label={`删除第${index + 1}张临时${copy.temporaryNoun}`}
|
||||
disabled={generating}
|
||||
onClick={(event) => {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
if (generating) return;
|
||||
if (tempFiles.length) {
|
||||
setTempFiles((current) => current.filter((_, itemIndex) => itemIndex !== index));
|
||||
} else {
|
||||
@@ -1049,9 +1059,11 @@ export function VideoReplacePage({
|
||||
<button
|
||||
type="button"
|
||||
className="replace-temporary-clear"
|
||||
disabled={generating}
|
||||
onClick={(event) => {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
if (generating) return;
|
||||
if (!tempFiles.length && !tempAssetRefs.length) return;
|
||||
setTempFiles([]);
|
||||
setTempAssetRefs([]);
|
||||
@@ -1072,8 +1084,10 @@ export function VideoReplacePage({
|
||||
accept="image/jpeg,image/png,image/webp"
|
||||
multiple
|
||||
hidden
|
||||
disabled={generating}
|
||||
onClick={(event) => event.stopPropagation()}
|
||||
onChange={(event) => {
|
||||
if (generating) return;
|
||||
addTempImages(event.target.files);
|
||||
event.target.value = "";
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user