Files
myeasycms-v2/packages/features/team-accounts/src/components/settings/update-team-account-name-form.tsx
giancarlo 041efb89fb Remove team account related services and actions
Removed services and actions related to team account deletion as well as updated paths within other dependent files, better reflecting their new locations. Also, added a new service titled 'AccountBillingService' for handling billing-related operations and restructured the form layout and handled translation in 'team-account-danger-zone' component.
2024-03-28 15:27:56 +08:00

94 lines
2.2 KiB
TypeScript

'use client';
import { useTransition } from 'react';
import { zodResolver } from '@hookform/resolvers/zod';
import { useForm } from 'react-hook-form';
import { z } from 'zod';
import { Button } from '@kit/ui/button';
import {
Form,
FormControl,
FormField,
FormItem,
FormLabel,
} from '@kit/ui/form';
import { Input } from '@kit/ui/input';
import { Trans } from '@kit/ui/trans';
import { updateTeamAccountName } from '../../server/actions/team-details-server-actions';
const Schema = z.object({
name: z.string().min(1).max(255),
});
export const UpdateTeamAccountNameForm = (props: {
account: {
name: string;
slug: string;
};
path: string;
}) => {
const [pending, startTransition] = useTransition();
const form = useForm({
resolver: zodResolver(Schema),
defaultValues: {
name: props.account.name,
},
});
return (
<div className={'space-y-8'}>
<Form {...form}>
<form
className={'flex flex-col space-y-4'}
onSubmit={form.handleSubmit((data) => {
startTransition(async () => {
await updateTeamAccountName({
slug: props.account.slug,
name: data.name,
path: props.path,
});
});
})}
>
<FormField
name={'name'}
render={({ field }) => {
return (
<FormItem>
<FormLabel>
<Trans i18nKey={'teams:teamNameInputLabel'} />
</FormLabel>
<FormControl>
<Input
data-test={'team-name-input'}
required
placeholder={''}
{...field}
/>
</FormControl>
</FormItem>
);
}}
/>
<div>
<Button
className={'w-full md:w-auto'}
data-test={'update-team-submit-button'}
disabled={pending}
>
<Trans i18nKey={'teams:updateTeamSubmitLabel'} />
</Button>
</div>
</form>
</Form>
</div>
);
};