From 76088cca720553deb5f1f8935d5901c1f3815007 Mon Sep 17 00:00:00 2001 From: Jakob Schwehn Date: Sun, 23 Jun 2024 15:15:41 +0200 Subject: [PATCH 01/53] add settings constants --- src/constants/settings.ts | 51 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/constants/settings.ts diff --git a/src/constants/settings.ts b/src/constants/settings.ts new file mode 100644 index 0000000000..cff5df9ee3 --- /dev/null +++ b/src/constants/settings.ts @@ -0,0 +1,51 @@ +import {ComponentType, SVGProps} from "react"; +import {GeneralSettings, Participants, SettingsAppearance, SettingsFeedback, Share} from "components/Icon"; +import {Color} from "./colors"; + +type LocalizationKey = "BoardSettings" | "Participants" | "Appearance" | "ShareSession" | "Feedback"; + +export type MenuItem = { + localizationKey: LocalizationKey; + location: string; + isModeratorOnly: boolean; + color: Color; + icon: ComponentType>; +}; + +export const MENU_ITEMS: Record = { + board: { + localizationKey: "BoardSettings", + location: "board", + isModeratorOnly: true, + color: "backlog-blue", + icon: GeneralSettings, + }, + participants: { + localizationKey: "Participants", + location: "participants", + isModeratorOnly: false, + color: "poker-purple", + icon: Participants, + }, + appearance: { + localizationKey: "Appearance", + location: "appearance", + isModeratorOnly: false, + color: "lean-lilac", + icon: SettingsAppearance, + }, + share: { + localizationKey: "ShareSession", + location: "share", + isModeratorOnly: false, + color: "planning-pink", + icon: Share, + }, + feedback: { + localizationKey: "Feedback", + location: "feedback", + isModeratorOnly: false, + color: "poker-purple", + icon: SettingsFeedback, + }, +}; From b4cd75e8dfa8e76d78f1a69f7ba0e1b3888c0540 Mon Sep 17 00:00:00 2001 From: Jakob Schwehn Date: Mon, 24 Jun 2024 14:26:03 +0200 Subject: [PATCH 02/53] add render function --- .../SettingsDialog/SettingsDialog.tsx | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/components/SettingsDialog/SettingsDialog.tsx b/src/components/SettingsDialog/SettingsDialog.tsx index 5f5313f5aa..67cb773b55 100644 --- a/src/components/SettingsDialog/SettingsDialog.tsx +++ b/src/components/SettingsDialog/SettingsDialog.tsx @@ -10,8 +10,10 @@ import {useAppSelector} from "store"; import {dialogTransitionConfig} from "utils/transitionConfig"; import {ReactComponent as ScrumlrLogo} from "assets/scrumlr-logo-light.svg"; import ScrumlrLogoDark from "assets/scrumlr-logo-dark.png"; -import {Close, ArrowLeft, GeneralSettings, Share, Participants, SettingsAppearance, FileDefault, SettingsFeedback} from "components/Icon"; +import {ArrowLeft, Close} from "components/Icon"; +import {MENU_ITEMS, MenuItem} from "constants/settings"; import "./SettingsDialog.scss"; +import {getColorClassName} from "../../constants/colors"; export const SettingsDialog: FC = () => { const {t} = useTranslation(); @@ -27,6 +29,33 @@ export const SettingsDialog: FC = () => { items: true, }; + const renderMenuItem = (menuItem: MenuItem) => { + if (menuItem.isModeratorOnly && !isBoardModerator) { + return null; + } + + const Icon = menuItem.icon; + + return ( + + +
+

{t(`SettingsDialog.${menuItem.localizationKey}`)}

+

{t(`SettingsDialog.${menuItem.localizationKey}Description`)}

+
+ + ); + }; + useEffect(() => { // If user is not a moderator of the board, he shouldn't see the board settings if (!isBoardModerator && window.location.pathname.endsWith("/settings/board")) { From 1348e3ebbe8d0698d3e7217fe306ce3c2d1eee40 Mon Sep 17 00:00:00 2001 From: Jakob Schwehn Date: Mon, 24 Jun 2024 14:27:27 +0200 Subject: [PATCH 03/53] render menu items (except profile) --- .../SettingsDialog/SettingsDialog.tsx | 68 +------------------ 1 file changed, 2 insertions(+), 66 deletions(-) diff --git a/src/components/SettingsDialog/SettingsDialog.tsx b/src/components/SettingsDialog/SettingsDialog.tsx index 67cb773b55..094573cfae 100644 --- a/src/components/SettingsDialog/SettingsDialog.tsx +++ b/src/components/SettingsDialog/SettingsDialog.tsx @@ -85,72 +85,8 @@ export const SettingsDialog: FC = () => { Scrumlr Logo