From eaaa1c0049d98d1e4cd7b56ebce95ff73ef363d8 Mon Sep 17 00:00:00 2001 From: wyc <1104749580@qq.com> Date: Mon, 17 Aug 2026 23:55:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webapp_gallery/src/gallery/plot_card.tsx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/webapp_gallery/src/gallery/plot_card.tsx b/webapp_gallery/src/gallery/plot_card.tsx index 599e211..98158a7 100644 --- a/webapp_gallery/src/gallery/plot_card.tsx +++ b/webapp_gallery/src/gallery/plot_card.tsx @@ -1,7 +1,7 @@ import MoreHorizIcon from "@mui/icons-material/MoreHoriz"; import RefreshIcon from "@mui/icons-material/Refresh"; import {Box,Button,Card,CardActions,CardContent,CardHeader,Chip,Stack,Typography} from "@mui/material"; -import {useEffect,useRef,useState} from "react"; +import {useEffect} from "react"; import type {Gallery_Case,Gallery_Dashboard,Gallery_Frame_Mode} from "../protocol/gallery_types"; import {use_plot_session} from "../hooks/use_plot_session"; import type {Gallery_Plot_Session} from "../session/gallery_plot_session"; @@ -13,12 +13,9 @@ import {Kernel_Observer_Summary} from "../plot/kernel_observer_summary"; export interface Selected_Plot {session:Gallery_Plot_Session;} export function Plot_Card({gallery_case,frame_mode,frame_modes,dashboard,active,streams_paused,on_register,on_open_inspector}:{gallery_case:Gallery_Case;frame_mode:Gallery_Frame_Mode;frame_modes:Gallery_Frame_Mode[];dashboard:Gallery_Dashboard;active:boolean;streams_paused:boolean;on_register:(session:Gallery_Plot_Session,mount:boolean)=>void;on_open_inspector:(plot:Selected_Plot)=>void}) { const [session,snapshot]=use_plot_session(gallery_case,frame_mode,frame_modes); - const card_ref=useRef(null); - const [in_viewport,set_in_viewport]=useState(false); useEffect(()=>{on_register(session,true);return()=>on_register(session,false);},[session,on_register]); - useEffect(()=>{const element=card_ref.current;if(!element)return;const observer=new IntersectionObserver(entries=>set_in_viewport(Boolean(entries[0]?.isIntersecting)),{rootMargin:"320px 0px"});observer.observe(element);return()=>observer.disconnect();},[]); - useEffect(()=>session.set_activity(active&&in_viewport,streams_paused),[session,active,in_viewport,streams_paused]); - return {event.preventDefault();if(snapshot.ready)on_open_inspector({session});}}> + useEffect(()=>session.set_activity(active,streams_paused),[session,active,streams_paused]); + return {event.preventDefault();if(snapshot.ready)on_open_inspector({session});}}> } action={}/> {frame_mode.observer_visible&&}{gallery_case.description}{snapshot.notice&&{snapshot.notice}} {snapshot.controls.length} 属性{snapshot.actions.length} 动作{snapshot.frame_count} 像素帧{session.frame_mode.id==="manual"&&}