{enabled && }
{
pgAdmin.Browser.docker.default_workspace = obj;
}}
defaultLayout={defaultLayout}
layoutId='Browser/Layout'
savedLayout={pgAdmin.Browser.utils.layout}
groups={{
'object-explorer': objectExplorerGroup,
'playground': getMorePanelGroup(defaultTabsData),
}}
noContextGroups={['object-explorer']}
resetToTabPanel={BROWSER_PANELS.MAIN}
enableToolEvents
isLayoutVisible={!enabled || currentWorkspace == WORKSPACES.DEFAULT}
/>
{enabled && config.map((item)=>(
{
pgAdmin.Browser.docker[item.docker] = obj;
obj.eventBus.fireEvent(LAYOUT_EVENTS.INIT);
}}
defaultLayout={item.layout}
layoutId={`Workspace/Layout-${item.workspace}`}
savedLayout={pgAdmin.Browser.utils.layout}
groups={{
'playground': item?.tabsData ? getMorePanelGroup(item?.tabsData) : {...getDefaultGroup()},
}}
resetToTabPanel={BROWSER_PANELS.MAIN}
isLayoutVisible={currentWorkspace == item.workspace}
/>
))}
);
}
Layouts.propTypes = {
browser: PropTypes.string,
};
export default function BrowserComponent({pgAdmin}) {
const {isLoading, failed, getPreferencesForModule} = usePreferences();
let { name: browser } = useMemo(()=>getBrowser(), []);
const [uiReady, setUiReady] = useState(false);
const confirmOnClose = getPreferencesForModule('browser').confirm_on_refresh_close;
useBeforeUnload({
enabled: confirmOnClose,
beforeClose: (forceClose)=>{
window.electronUI?.focus();
pgAdmin.Browser.notifier.confirm(
gettext('Quit pgAdmin 4'),
gettext('Are you sure you want to quit the application?'),
function() { forceClose(); },
function() { return true; },
gettext('Yes'),
gettext('No'),
'default',
'id-app-quit'
);
},
isNewTab: true,
});
useEffect(()=>{
if(uiReady) {
pgAdmin?.Browser?.uiloaded?.();
}
}, [uiReady]);
if(isLoading) {
return <>>;
}
if(failed) {
return <>Failed to load preferences>;
}
return (