import { Component, ReactNode, FunctionComponent } from "react"; import { DirectionalHint, Icon, Spinner } from "@fluentui/react"; import { useSetting, IMixinSettingProps } from "@Context/Setting"; import { useStatusWithEvent, IMixinStatusProps } from "@Context/Status"; import { BackgroundLevel, Theme } from "@Component/Theme/Theme"; import { LocalizationTooltipHost } from "@Component/Localization/LocalizationTooltipHost"; import { AllI18nKeys } from "@Component/Localization/Localization"; import { SettingPopup } from "@Component/SettingPopup/SettingPopup"; import { BehaviorPopup } from "@Component/BehaviorPopup/BehaviorPopup"; import { MouseMod } from "@GLRender/ClassicRenderer"; import { ArchiveSave } from "@Context/Archive"; import { ActuatorModel } from "@Model/Actuator"; import "./CommandBar.scss"; const COMMAND_BAR_WIDTH = 45; interface IRenderButtonParameter { i18NKey: AllI18nKeys; iconName?: string; click?: () => void; active?: boolean; isLoading?: boolean; } interface ICommandBarState { isSaveRunning: boolean; } const CommandButton: FunctionComponent = (param) => { return
{param.isLoading ? : }
} @useSetting @useStatusWithEvent("mouseModChange", "actuatorStartChange") class CommandBar extends Component { public state: Readonly = { isSaveRunning: false }; private renderPlayActionButton(): ReactNode { let icon: string = "Play"; let handel: () => any = () => {}; // 播放模式 if (this.props.status?.focusClip) { // 暂停播放 if (this.props.status?.actuator.mod === ActuatorModel.Play) { icon = "Pause"; handel = () => { this.props.status?.actuator.pausePlay(); console.log("ClipRecorder: Pause play..."); }; } // 开始播放 else { icon = "Play"; handel = () => { this.props.status?.actuator.playing(); console.log("ClipRecorder: Play start..."); }; } } // 正在录制中 else if ( this.props.status?.actuator.mod === ActuatorModel.Record || this.props.status?.actuator.mod === ActuatorModel.Offline ) { // 暂停录制 icon = "Stop"; handel = () => { this.props.status?.actuator.endRecord(); console.log("ClipRecorder: Rec end..."); }; } // 正常控制主时钟 else { icon = this.props.status?.actuator.start() ? "Pause" : "Play"; handel = () => this.props.status?.actuator.start( !this.props.status?.actuator.start() ); } return ; } public render(): ReactNode { const mouseMod = this.props.status?.mouseMod ?? MouseMod.Drag; return { if (this.props.setting) { this.props.setting.layout.focus(""); } }} >
{ this.setState({ isSaveRunning: false }); }} /> { this.setState({ isSaveRunning: true }); }} /> {this.renderPlayActionButton()} this.props.status ? this.props.status.setMouseMod(MouseMod.Drag) : undefined} /> this.props.status ? this.props.status.setMouseMod(MouseMod.click) : undefined} /> { this.props.status ? this.props.status.newGroup() : undefined; }} /> { this.props.status ? this.props.status.newRange() : undefined; }} /> { this.props.status?.popup.showPopup(BehaviorPopup, {}); }} /> { this.props.status ? this.props.status.newLabel() : undefined; }} />
{ this.props.status?.popup.showPopup(SettingPopup, {}); }} />
} } export { CommandBar };