Add feature flag for team account deletion
Updated the team account settings page to support a new feature flag for enabling team deletion. Only the primary user can delete the account if this feature is enabled. Also, corrected the required error message in feature-flags.config.ts file for more clarity.
This commit is contained in:
@@ -4,6 +4,7 @@ import { TeamAccountSettingsContainer } from '@kit/team-accounts/components';
|
||||
import { PageBody } from '@kit/ui/page';
|
||||
import { Trans } from '@kit/ui/trans';
|
||||
|
||||
import featuresFlagConfig from '~/config/feature-flags.config';
|
||||
import pathsConfig from '~/config/paths.config';
|
||||
import { createI18nServerInstance } from '~/lib/i18n/i18n.server';
|
||||
|
||||
@@ -41,6 +42,10 @@ async function TeamAccountSettingsPage(props: Props) {
|
||||
primaryOwnerUserId: data.primary_owner_user_id,
|
||||
};
|
||||
|
||||
const features = {
|
||||
enableTeamDeletion: featuresFlagConfig.enableTeamDeletion,
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<TeamAccountLayoutPageHeader
|
||||
@@ -51,7 +56,11 @@ async function TeamAccountSettingsPage(props: Props) {
|
||||
|
||||
<PageBody>
|
||||
<div className={'flex max-w-2xl flex-1 flex-col'}>
|
||||
<TeamAccountSettingsContainer account={account} paths={paths} />
|
||||
<TeamAccountSettingsContainer
|
||||
account={account}
|
||||
paths={paths}
|
||||
features={features}
|
||||
/>
|
||||
</div>
|
||||
</PageBody>
|
||||
</>
|
||||
|
||||
@@ -14,7 +14,7 @@ const FeatureFlagsSchema = z.object({
|
||||
}),
|
||||
enableTeamDeletion: z.boolean({
|
||||
description: 'Enable team deletion.',
|
||||
required_error: 'Provide the variable NEXT_PUBLIC_ENABLE_TEAM_DELETION',
|
||||
required_error: 'Provide the variable NEXT_PUBLIC_ENABLE_TEAM_ACCOUNTS_DELETION',
|
||||
}),
|
||||
enableTeamAccounts: z.boolean({
|
||||
description: 'Enable team accounts.',
|
||||
|
||||
@@ -39,12 +39,17 @@ import { leaveTeamAccountAction } from '../../server/actions/leave-team-account-
|
||||
export function TeamAccountDangerZone({
|
||||
account,
|
||||
primaryOwnerUserId,
|
||||
features,
|
||||
}: React.PropsWithChildren<{
|
||||
account: {
|
||||
name: string;
|
||||
id: string;
|
||||
};
|
||||
|
||||
features: {
|
||||
enableTeamDeletion: boolean;
|
||||
};
|
||||
|
||||
primaryOwnerUserId: string;
|
||||
}>) {
|
||||
const { data: user } = useUser();
|
||||
@@ -56,7 +61,7 @@ export function TeamAccountDangerZone({
|
||||
// Only the primary owner can delete the team account
|
||||
const userIsPrimaryOwner = user.id === primaryOwnerUserId;
|
||||
|
||||
if (userIsPrimaryOwner) {
|
||||
if (userIsPrimaryOwner && features.enableTeamDeletion) {
|
||||
return <DeleteTeamContainer account={account} />;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,10 @@ export function TeamAccountSettingsContainer(props: {
|
||||
paths: {
|
||||
teamAccountSettings: string;
|
||||
};
|
||||
|
||||
features: {
|
||||
enableTeamDeletion: boolean;
|
||||
}
|
||||
}) {
|
||||
return (
|
||||
<div className={'flex w-full flex-col space-y-6'}>
|
||||
@@ -78,6 +82,7 @@ export function TeamAccountSettingsContainer(props: {
|
||||
<TeamAccountDangerZone
|
||||
primaryOwnerUserId={props.account.primaryOwnerUserId}
|
||||
account={props.account}
|
||||
features={props.features}
|
||||
/>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
Reference in New Issue
Block a user