36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
export const INLINE_MAIL_SETTINGS_BLOCKED_MESSAGE = "i18n:govoplan-campaign.inline_smtp_imap_settings_are_blocked_by_the_eff.90c94538";
|
|
|
|
export type CampaignMailPolicy = {
|
|
allow_campaign_profiles?: boolean | null;
|
|
};
|
|
|
|
export type CampaignMailSettingsPolicyState = {
|
|
campaignProfilesAllowed: boolean;
|
|
usingMailProfile: boolean;
|
|
inlineMailSettingsBlocked: boolean;
|
|
inlineOptionDisabled: boolean;
|
|
canSelectInlineSettings: boolean;
|
|
inlineBlockedMessage: string;
|
|
};
|
|
|
|
export function campaignMailSettingsPolicyState({
|
|
effectivePolicy,
|
|
selectedProfileId,
|
|
locked = false
|
|
|
|
|
|
|
|
|
|
}: {effectivePolicy: CampaignMailPolicy | null | undefined;selectedProfileId: string | null | undefined;locked?: boolean;}): CampaignMailSettingsPolicyState {
|
|
const campaignProfilesAllowed = effectivePolicy?.allow_campaign_profiles === true;
|
|
const usingMailProfile = Boolean(selectedProfileId);
|
|
const inlineMailSettingsBlocked = !campaignProfilesAllowed && !usingMailProfile;
|
|
return {
|
|
campaignProfilesAllowed,
|
|
usingMailProfile,
|
|
inlineMailSettingsBlocked,
|
|
inlineOptionDisabled: !campaignProfilesAllowed,
|
|
canSelectInlineSettings: !locked && campaignProfilesAllowed,
|
|
inlineBlockedMessage: INLINE_MAIL_SETTINGS_BLOCKED_MESSAGE
|
|
};
|
|
} |