Files
myeasycms-v2/apps/web/config/feature-flags.config.ts
giancarlo f6d1b500da Update theme toggle functionality and UI components
Implemented a new ModeToggle feature for theme switching in personal account dropdown. The changes also made adjustments to several UI components, such as transforming Dialog to AlertDialog in transfer-ownership-dialog, and introducing invitation-submit-button in team-accounts. Some minor amendments include text changes and styling modifications.
2024-03-28 20:29:54 +08:00

50 lines
1.3 KiB
TypeScript

import { z } from 'zod';
const FeatureFlagsSchema = z.object({
enableThemeToggle: z.boolean(),
enableAccountDeletion: z.boolean(),
enableTeamDeletion: z.boolean(),
enableTeamAccounts: z.boolean(),
enableTeamCreation: z.boolean(),
enablePersonalAccountBilling: z.boolean(),
enableTeamAccountBilling: z.boolean(),
});
const featuresFlagConfig = FeatureFlagsSchema.parse({
enableThemeToggle: true,
enableAccountDeletion: getBoolean(
process.env.NEXT_PUBLIC_ENABLE_ACCOUNT_DELETION,
false,
),
enableTeamDeletion: getBoolean(
process.env.NEXT_PUBLIC_ENABLE_TEAM_DELETION,
false,
),
enableTeamAccounts: getBoolean(
process.env.NEXT_PUBLIC_ENABLE_TEAM_ACCOUNTS,
true,
),
enableTeamCreation: getBoolean(
process.env.NEXT_PUBLIC_ENABLE_TEAMS_CREATION,
true,
),
enablePersonalAccountBilling: getBoolean(
process.env.NEXT_PUBLIC_ENABLE_PERSONAL_ACCOUNT_BILLING,
false,
),
enableTeamAccountBilling: getBoolean(
process.env.NEXT_PUBLIC_ENABLE_ORGANIZATION_BILLING,
false,
),
} satisfies z.infer<typeof FeatureFlagsSchema>);
export default featuresFlagConfig;
function getBoolean(value: unknown, defaultValue: boolean) {
if (typeof value === 'string') {
return value === 'true';
}
return defaultValue;
}