Web: Common: Selectors: Fixed module wrapper, if dummy module comes from api.

This commit is contained in:
Ilya Oleshko 2021-01-27 13:57:04 +03:00
parent bd38b065cb
commit 5037c2210e

View File

@ -7,15 +7,41 @@ export function isMe(user, userName) {
);
}
const toModuleWrapper = (item, iconName) => {
return {
id: item.id,
title: item.title,
iconName: item.iconName || iconName || "PeopleIcon", //TODO: Change to URL
iconUrl: item.iconUrl,
notifications: 0,
url: item.link,
isolateMode: item.isolateMode,
const toModuleWrapper = (item, noAction = true, iconName = null) => {
switch (item.id) {
case "6743007c-6f95-4d20-8c88-a8601ce5e76d":
item.iconName = "CrmIcon";
item.iconUrl = "";
item.imageUrl = "/images/crm.svg";
break;
case "1e044602-43b5-4d79-82f3-fd6208a11960":
item.iconName = "ProjectsIcon";
item.iconUrl = "";
item.imageUrl = "/images/projects.svg";
break;
case "2A923037-8B2D-487b-9A22-5AC0918ACF3F":
item.iconName = "MailIcon";
item.iconUrl = "";
item.imageUrl = "/images/mail.svg";
break;
case "32D24CB5-7ECE-4606-9C94-19216BA42086":
item.iconName = "CalendarCheckedIcon";
item.iconUrl = "";
item.imageUrl = "/images/calendar.svg";
break;
case "BF88953E-3C43-4850-A3FB-B1E43AD53A3E":
item.iconName = "ChatIcon";
item.iconUrl = "";
item.imageUrl = "/images/talk.svg";
item.isolateMode = true;
break;
default:
break;
}
const actions = noAction
? null
: {
onClick: (e) => {
if (e) {
window.open(item.link, "_self");
@ -24,24 +50,46 @@ const toModuleWrapper = (item, iconName) => {
},
onBadgeClick: (e) => console.log(iconName + " Badge Clicked", e),
};
const description = noAction ? { description: item.description } : null;
return {
id: item.id,
title: item.title,
link: item.link,
iconName: item.iconName || iconName || "PeopleIcon", //TODO: Change to URL
iconUrl: item.iconUrl,
imageUrl: item.imageUrl,
notifications: 0,
url: item.link,
isolateMode: item.isolateMode,
isPrimary: item.isPrimary,
...description,
...actions,
};
};
const getCustomModules = (isAdmin) => {
if (!isAdmin) {
return [];
} // Temporarily hiding the settings module
/* const separator = getSeparator("nav-modules-separator");
}
const settingsModuleWrapper = toModuleWrapper(
{
id: "settings",
title: i18n.t('Settings'),
link: "/settings"
title: "Settings",
link: "/settings",
},
false,
"SettingsIcon"
);
return [separator, settingsModuleWrapper];*/ return [];
return [
{
separator: true,
id: "nav-products-separator-custom",
},
settingsModuleWrapper,
];
};
export const getCurrentUser = (state) => state.auth.user;
@ -55,53 +103,25 @@ export const getModules = (state) => {
const extendedModules = [
...modules,
{
id: "1e044602-43b5-4d79-82f3-fd6208a11960",
title: "Projects",
iconName: "ProjectsIcon",
iconUrl: "",
link: "/products/projects/",
imageUrl: "/images/projects.svg",
isPrimary: false,
},
{
id: "6743007C-6F95-4d20-8C88-A8601CE5E76D",
title: "CRM",
iconName: "CrmIcon",
iconUrl: "",
link: "/products/crm/",
imageUrl: "/images/crm.svg",
isPrimary: false,
},
{
id: "2A923037-8B2D-487b-9A22-5AC0918ACF3F",
title: "Mail",
iconName: "MailIcon",
iconUrl: "",
link: "/products/mail/",
imageUrl: "/images/mail.svg",
isPrimary: false,
},
{
id: "32D24CB5-7ECE-4606-9C94-19216BA42086",
title: "Calendar",
iconName: "CalendarCheckedIcon",
iconUrl: "",
link: "/products/calendar/",
imageUrl: "/images/calendar.svg",
isPrimary: false,
},
{
id: "BF88953E-3C43-4850-A3FB-B1E43AD53A3E",
title: "Talk",
iconName: "ChatIcon",
iconUrl: "",
link: "/products/talk/",
imageUrl: "/images/talk.svg",
isPrimary: false,
isolateMode: true,
},
];
].map((m) => toModuleWrapper(m));
return extendedModules;
};
@ -181,7 +201,7 @@ export const getAvailableModules = createSelector(
const isUserAdmin = user.isAdmin;
const customModules = getCustomModules(isUserAdmin);
const products = modules.map((m) => toModuleWrapper(m));
const products = modules.map((m) => toModuleWrapper(m, false));
return [
{