diff --git a/frontend/components/basic/Toggle.tsx b/frontend/components/basic/Toggle.tsx
new file mode 100644
index 000000000..c2cf3cb07
--- /dev/null
+++ b/frontend/components/basic/Toggle.tsx
@@ -0,0 +1,28 @@
+import React from "react";
+import { Switch } from "@headlessui/react";
+
+/**
+ * This is a typical 'iPhone' toggle (e.g., user for overriding secrets with personal values)
+ * @param obj
+ * @param {boolean} obj.enabled - whether the toggle is turned on or off
+ * @param {function} obj.setEnabled - change the state of the toggle
+ * @returns
+ */
+export default function Toggle ({ enabled, setEnabled }: { enabled: boolean; setEnabled: (value: boolean) => void; }): JSX.Element {
+ return (
+
+ Enable notifications
+
+
+ )
+}
diff --git a/frontend/components/basic/buttons/Button.tsx b/frontend/components/basic/buttons/Button.tsx
index 562a82a36..f8bd1941d 100644
--- a/frontend/components/basic/buttons/Button.tsx
+++ b/frontend/components/basic/buttons/Button.tsx
@@ -80,7 +80,7 @@ export default function Button(props: ButtonProps): JSX.Element {
);
const textStyle = classNames(
- "relative duration-200",
+ "relative duration-200 text-center w-full",
// Show the loading sign if the loading indicator is on
props.loading ? "opacity-0" : "opacity-100",
diff --git a/frontend/components/dashboard/GenerateSecretMenu.tsx b/frontend/components/dashboard/GenerateSecretMenu.tsx
new file mode 100644
index 000000000..1d71749e5
--- /dev/null
+++ b/frontend/components/dashboard/GenerateSecretMenu.tsx
@@ -0,0 +1,93 @@
+import { Fragment,useState } from 'react';
+import { faShuffle } from '@fortawesome/free-solid-svg-icons';
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
+import { Menu, Transition } from '@headlessui/react';
+
+
+/**
+ * This is the menu that is used to (re)generate secrets (currently we only have ranom hex, in future we will have more options)
+ * @returns the popup-menu for randomly generating secrets
+ */
+const GenerateSecretMenu = () => {
+ const [randomStringLength, setRandomStringLength] = useState(32);
+
+ return
+}
+
+export default GenerateSecretMenu;
diff --git a/frontend/components/dashboard/SideBar.tsx b/frontend/components/dashboard/SideBar.tsx
new file mode 100644
index 000000000..11f756ccb
--- /dev/null
+++ b/frontend/components/dashboard/SideBar.tsx
@@ -0,0 +1,84 @@
+import { useState } from 'react';
+import { faX } from '@fortawesome/free-solid-svg-icons';
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
+
+import Button from '../basic/buttons/Button';
+import Toggle from '../basic/Toggle';
+import DashboardInputField from './DashboardInputField';
+import GenerateSecretMenu from './GenerateSecretMenu';
+
+/**
+ * @returns the sidebar with 'secret's settings'
+ */
+const SideBar = () => {
+ const [overrideEnabled, setOverrideEnabled] = useState(false)
+
+ return