MCPcopy Create free account
hub / github.com/pgadmin-org/pgadmin4 / ToolView

Function ToolView

web/pgadmin/static/js/ToolView.jsx:67–105  ·  view source on GitHub ↗
({dockerObj})

Source from the content-addressed store, hash-verified

65}
66
67export default function ToolView({dockerObj}) {
68 const pgAdmin = usePgAdmin();
69 const { deleteToolData } = useApplicationState();
70
71 useEffect(()=>{
72 pgAdmin.Browser.Events.on('pgadmin:tool:show', (panelId, toolUrl, formParams, tabParams, newTab)=>{
73 if(newTab) {
74 if(formParams) {
75 const newWin = window.open('', '_blank');
76 const div = newWin.document.createElement('div');
77 newWin.document.body.appendChild(div);
78 const root = ReactDOM.createRoot(div);
79 root.render(
80 <ToolForm actionUrl={window.location.origin+toolUrl} params={formParams}/>, div
81 );
82 } else {
83 window.open(toolUrl);
84 }
85 } else {
86 // Handler here will return which layout instance the tool should go in
87 // case of workspace layout.
88 let handler = pgAdmin.Browser.getDockerHandler?.(panelId, dockerObj);
89 const deregisterRemove = handler.docker.eventBus.registerListener(LAYOUT_EVENTS.REMOVE, (closePanelId)=>{
90 if(panelId == closePanelId){
91 deleteToolData(panelId);
92 deregisterRemove();
93 }
94 });
95
96 handler.focus();
97 handler.docker.openTab(
98 getToolTabParams(panelId, toolUrl, formParams, tabParams),
99 BROWSER_PANELS.MAIN, 'middle', true
100 );
101 }
102 });
103 }, []);
104 return <></>;
105}
106ToolView.propTypes = {
107 dockerObj: PropTypes.object
108};

Callers

nothing calls this directly

Calls 10

usePgAdminFunction · 0.90
useApplicationStateFunction · 0.90
deleteToolDataFunction · 0.85
getToolTabParamsFunction · 0.85
onMethod · 0.80
focusMethod · 0.80
openTabMethod · 0.80
openMethod · 0.45
renderMethod · 0.45
registerListenerMethod · 0.45

Tested by

no test coverage detected