MCPcopy
hub / github.com/wavetermdev/waveterm / BlockFrame_Default_Component

Function BlockFrame_Default_Component

frontend/app/block/blockframe.tsx:94–214  ·  view source on GitHub ↗
(props: BlockFrameProps)

Source from the content-addressed store, hash-verified

92});
93
94const BlockFrame_Default_Component = (props: BlockFrameProps) => {
95 const waveEnv = useWaveEnv<BlockEnv>();
96 const { nodeModel, viewModel, blockModel, preview, numBlocksInTab, children } = props;
97 const isFocused = jotai.useAtomValue(nodeModel.isFocused);
98 const aiPanelVisible = jotai.useAtomValue(WorkspaceLayoutModel.getInstance().panelVisibleAtom);
99 const metaView = jotai.useAtomValue(waveEnv.getBlockMetaKeyAtom(nodeModel.blockId, "view"));
100 const viewIconUnion = util.useAtomValueSafe(viewModel?.viewIcon) ?? blockViewToIcon(metaView);
101 const customBg = util.useAtomValueSafe(viewModel?.blockBg);
102 const manageConnection = util.useAtomValueSafe(viewModel?.manageConnection);
103 const changeConnModalAtom = useBlockAtom(nodeModel.blockId, "changeConn", () => {
104 return jotai.atom(false);
105 }) as jotai.PrimitiveAtom<boolean>;
106 const connModalOpen = jotai.useAtomValue(changeConnModalAtom);
107 const isMagnified = jotai.useAtomValue(nodeModel.isMagnified);
108 const isEphemeral = jotai.useAtomValue(nodeModel.isEphemeral);
109 const [magnifiedBlockBlurAtom] = React.useState(() =>
110 waveEnv.getSettingsKeyAtom("window:magnifiedblockblurprimarypx")
111 );
112 const magnifiedBlockBlur = jotai.useAtomValue(magnifiedBlockBlurAtom);
113 const [magnifiedBlockOpacityAtom] = React.useState(() =>
114 waveEnv.getSettingsKeyAtom("window:magnifiedblockopacity")
115 );
116 const magnifiedBlockOpacity = jotai.useAtomValue(magnifiedBlockOpacityAtom);
117 const connBtnRef = React.useRef<HTMLDivElement>(null);
118 const connName = jotai.useAtomValue(waveEnv.getBlockMetaKeyAtom(nodeModel.blockId, "connection"));
119 const iconColor = jotai.useAtomValue(waveEnv.getBlockMetaKeyAtom(nodeModel.blockId, "icon:color"));
120 const noHeader = util.useAtomValueSafe(viewModel?.noHeader);
121
122 React.useEffect(() => {
123 if (!manageConnection) {
124 return;
125 }
126 const bcm = getBlockComponentModel(nodeModel.blockId);
127 if (bcm != null) {
128 bcm.openSwitchConnection = () => {
129 globalStore.set(changeConnModalAtom, true);
130 };
131 }
132 return () => {
133 const bcm = getBlockComponentModel(nodeModel.blockId);
134 if (bcm != null) {
135 bcm.openSwitchConnection = null;
136 }
137 };
138 }, [manageConnection]);
139 React.useEffect(() => {
140 // on mount, if manageConnection, call ConnEnsure
141 if (!manageConnection || preview) {
142 return;
143 }
144 if (!util.isLocalConnName(connName)) {
145 console.log("ensure conn", nodeModel.blockId, connName);
146 waveEnv.rpc
147 .ConnEnsureCommand(
148 TabRpcClient,
149 { connname: connName, logblockid: nodeModel.blockId },
150 { timeout: 60000 }
151 )

Callers

nothing calls this directly

Calls 9

useWaveEnvFunction · 0.90
blockViewToIconFunction · 0.90
useBlockAtomFunction · 0.90
getBlockComponentModelFunction · 0.90
getViewIconElemFunction · 0.90
computeBgStyleFromMetaFunction · 0.90
setMethod · 0.80
ConnEnsureCommandMethod · 0.65
getInstanceMethod · 0.45

Tested by

no test coverage detected