74 lines
2.4 KiB
TypeScript
74 lines
2.4 KiB
TypeScript
import type { CampaignWorkspaceSection } from "../types";
|
|
import { ModuleSubnav, type ModuleSubnavGroup } from "@govoplan/core-webui";
|
|
|
|
export type CampaignWorkspaceNavigationSection = CampaignWorkspaceSection | "activity" | "work";
|
|
|
|
const campaignSubnav: ModuleSubnavGroup<CampaignWorkspaceNavigationSection>[] = [
|
|
{
|
|
items: [{ id: "overview", label: "i18n:govoplan-campaign.overview.0efc2e6b", primary: true }]
|
|
},
|
|
{
|
|
title: "i18n:govoplan-campaign.campaign.9e28fcfc",
|
|
items: [
|
|
{ id: "fields", label: "i18n:govoplan-campaign.fields.e8b68527" },
|
|
{ id: "files", label: "i18n:govoplan-campaign.attachments.6771ade6" },
|
|
{ id: "recipients", label: "i18n:govoplan-campaign.sender_recipients.922c6d24" },
|
|
{ id: "template", label: "i18n:govoplan-campaign.template.3ec1ae06" }]
|
|
|
|
},
|
|
{
|
|
title: "i18n:govoplan-campaign.settings.c4b92432",
|
|
items: [
|
|
{ id: "mail-settings", label: "i18n:govoplan-campaign.mail_settings.19e07f55" },
|
|
{ id: "global-settings", label: "i18n:govoplan-campaign.campaign_settings.efffec26" }]
|
|
|
|
},
|
|
{
|
|
title: "i18n:govoplan-campaign.policies.f03ff937",
|
|
items: [
|
|
{ id: "mail-policy", label: "i18n:govoplan-campaign.mail_policy.3eb5d32a" },
|
|
{ id: "policies", label: "i18n:govoplan-campaign.campaign_policies.0b5de1f5" }]
|
|
|
|
},
|
|
{
|
|
title: "i18n:govoplan-campaign.send.a2469c47",
|
|
items: [
|
|
{ id: "review", label: "i18n:govoplan-campaign.review_send.1627617d" }]
|
|
|
|
},
|
|
{
|
|
title: "i18n:govoplan-campaign.report.7b8ddb90",
|
|
items: [
|
|
{ id: "report", label: "i18n:govoplan-campaign.report.ee45c303" },
|
|
{ id: "work", label: "Campaign work" },
|
|
{ id: "activity", label: "i18n:govoplan-campaign.collaboration" },
|
|
{ id: "audit", label: "i18n:govoplan-campaign.audit_log.3cfc5f1c" }]
|
|
|
|
},
|
|
{
|
|
title: "i18n:govoplan-campaign.advanced.6052c880",
|
|
items: [{ id: "json", label: "i18n:govoplan-campaign.json.031a4e76", subtle: true }]
|
|
}];
|
|
|
|
|
|
export default function SectionSidebar({
|
|
active,
|
|
onSelect,
|
|
canReadActivity,
|
|
canReadWork
|
|
}: {
|
|
active: CampaignWorkspaceNavigationSection;
|
|
onSelect: (section: CampaignWorkspaceNavigationSection) => void;
|
|
canReadActivity: boolean;
|
|
canReadWork: boolean;
|
|
}) {
|
|
const groups = campaignSubnav.map((group) => ({
|
|
...group,
|
|
items: group.items.filter((item) =>
|
|
(item.id !== "activity" || canReadActivity)
|
|
&& (item.id !== "work" || canReadWork)
|
|
)
|
|
}));
|
|
return <ModuleSubnav active={active} groups={groups} onSelect={onSelect} />;
|
|
}
|