diff --git a/package.json b/package.json
index 8c9ea08..40f9efd 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "dynatrace-desktop-application",
- "version": "1.0.5",
+ "version": "1.0.6",
"description": "dynatrace desktop application's site addon to support local files and folders",
"main": "dist/index.js",
"scripts": {
diff --git a/src/webapp/src/App.js b/src/webapp/src/App.js
index 9862b65..7404e92 100644
--- a/src/webapp/src/App.js
+++ b/src/webapp/src/App.js
@@ -5,6 +5,7 @@ import './Fonts.css'
import { Header } from './components/Header'
import Footer from './components/Footer'
import { EmptyState } from './components/EmptyState'
+import {ReposAddHandler} from "./components/ReposAddHandler";
export const App = () => {
@@ -28,6 +29,7 @@ export const App = () => {
+
)
diff --git a/src/webapp/src/components/ReposAddHandler.js b/src/webapp/src/components/ReposAddHandler.js
new file mode 100644
index 0000000..999c538
--- /dev/null
+++ b/src/webapp/src/components/ReposAddHandler.js
@@ -0,0 +1,53 @@
+import { useEffect } from 'react'
+import { ipcRenderer } from 'electron'
+import path from 'path'
+import { app, dialog, getCurrentWindow } from '@electron/remote'
+
+
+
+
+
+export const ReposAddHandler = () => {
+
+
+ useEffect(() => {
+ ipcRenderer.on('pop-choose-repository', () => {
+ onPopDialogRequested()
+ })
+ ipcRenderer.sendTo(window.indexWorkerId, 'repos-request')
+ }, [])
+
+ const onPopDialogRequested = async () => {
+ const win = getCurrentWindow()
+ let reHide = false
+ if (!win.isVisible()) {
+ win.show()
+ reHide = true
+ }
+ await onAddClicked()
+ if (!reHide) return
+ if (window.process.platform.match('darwin')) {
+ app.dock.hide()
+ }
+ win.hide()
+ }
+
+
+ const onAddClicked = async () => {
+ const win = getCurrentWindow()
+ const { filePaths } = await dialog.showOpenDialog(win, {
+ properties: ['openDirectory', 'multiSelections'],
+ })
+
+ if (!filePaths) return // user closed dialog without choosing
+
+ for (let i = 0; i < filePaths.length; i++) {
+ const folder = filePaths[i]
+ const repoName = path.basename(folder)
+ const newRepo = { repoName, fullpath: folder }
+ ipcRenderer.sendTo(window.indexWorkerId, 'add-repo', newRepo)
+ }
+ }
+
+ return null;
+}