Remove redirect domain from edit domain form

This commit is contained in:
Shreerang Kale 2025-01-30 14:59:12 +05:30
parent db56e19c54
commit 496ceff0fa
3 changed files with 59 additions and 52 deletions

View File

@ -1,11 +1,19 @@
import { useCallback, useEffect, useMemo } from 'react';
import { Controller, useForm, SubmitHandler } from 'react-hook-form';
import {
useCallback,
useEffect,
// useMemo
} from 'react';
import {
// Controller,
useForm,
SubmitHandler,
} from 'react-hook-form';
import { Domain } from 'gql-client';
import {
Typography,
Select,
Option,
// Select,
// Option,
} from '@snowballtools/material-tailwind-react-fork';
import { useGQLClient } from 'context/GQLClientContext';
@ -14,7 +22,7 @@ import { Button } from 'components/shared/Button';
import { Input } from 'components/shared/Input';
import { useToast } from 'components/shared/Toast';
const DEFAULT_REDIRECT_OPTIONS = ['none'];
// const DEFAULT_REDIRECT_OPTIONS = ['none'];
interface EditDomainDialogProp {
domains: Domain[];
@ -28,7 +36,7 @@ interface EditDomainDialogProp {
type EditDomainValues = {
name: string;
branch: string;
redirectedTo: string;
// redirectedTo: string;
};
const EditDomainDialog = ({
@ -42,58 +50,58 @@ const EditDomainDialog = ({
const client = useGQLClient();
const { toast, dismiss } = useToast();
const getRedirectUrl = (domain: Domain) => {
const redirectDomain = domain.redirectTo;
// const getRedirectUrl = (domain: Domain) => {
// const redirectDomain = domain.redirectTo;
if (redirectDomain !== null) {
return redirectDomain?.name;
} else {
return 'none';
}
};
// if (redirectDomain !== null) {
// return redirectDomain?.name;
// } else {
// return 'none';
// }
// };
const redirectOptions = useMemo(() => {
const domainNames = domains
.filter((domainData) => domainData.id !== domain.id)
.map((domain) => domain.name);
return ['none', ...domainNames];
}, [domain, domains]);
// const redirectOptions = useMemo(() => {
// const domainNames = domains
// .filter((domainData) => domainData.id !== domain.id)
// .map((domain) => domain.name);
// return ['none', ...domainNames];
// }, [domain, domains]);
const domainRedirectedFrom = useMemo(() => {
return domains.find(
(domainData) => domainData.redirectTo?.id === domain.id,
);
}, [domains, domain]);
// const domainRedirectedFrom = useMemo(() => {
// return domains.find(
// (domainData) => domainData.redirectTo?.id === domain.id,
// );
// }, [domains, domain]);
const isDisableDropdown = useMemo(() => {
return domainRedirectedFrom !== undefined;
}, [domain, domains]);
// const isDisableDropdown = useMemo(() => {
// return domainRedirectedFrom !== undefined;
// }, [domain, domains]);
const {
handleSubmit,
register,
control,
watch,
// control,
// watch,
reset,
formState: { isValid, isDirty },
} = useForm({
defaultValues: {
name: domain.name,
branch: domain.branch,
redirectedTo: getRedirectUrl(domain),
// redirectedTo: getRedirectUrl(domain),
},
});
const updateDomainHandler: SubmitHandler<EditDomainValues> = useCallback(
async (data) => {
const domainRedirectTo = domains.find(
(domainData) => data.redirectedTo === domainData.name,
);
// const domainRedirectTo = domains.find(
// (domainData) => data.redirectedTo === domainData.name,
// );
const updates = {
name: data.name ? data.name : domain.name,
branch: data.branch ? data.branch : domain.branch,
redirectToId: domainRedirectTo ? domainRedirectTo.id : null,
// redirectToId: domainRedirectTo ? domainRedirectTo.id : null,
};
const { updateDomain } = await client.updateDomain(domain.id, updates);
@ -125,7 +133,7 @@ const EditDomainDialog = ({
reset({
name: domain.name,
branch: domain.branch,
redirectedTo: getRedirectUrl(domain),
// redirectedTo: getRedirectUrl(domain),
});
}, [domain]);
@ -137,7 +145,7 @@ const EditDomainDialog = ({
<Modal.Body className="flex flex-col gap-2">
<Typography variant="small">Domain name</Typography>
<Input {...register('name')} />
<Typography variant="small">Redirect to</Typography>
{/* <Typography variant="small">Redirect to</Typography>
<Controller
name="redirectedTo"
control={control}
@ -161,7 +169,7 @@ const EditDomainDialog = ({
further.
</Typography>
</div>
)}
)} */}
<Typography variant="small">Git branch</Typography>
<Input
{...register('branch', {
@ -169,8 +177,9 @@ const EditDomainDialog = ({
Boolean(branches.length) ? branches.includes(value) : true,
})}
disabled={
!Boolean(branches.length) ||
watch('redirectedTo') !== DEFAULT_REDIRECT_OPTIONS[0]
!Boolean(branches.length)
// ||
// watch('redirectedTo') !== DEFAULT_REDIRECT_OPTIONS[0]
}
/>
{!isValid && (

View File

@ -65,7 +65,7 @@ const SetupDomain = () => {
Setup domain name
</Heading>
<p className="text-slate-500 text-sm font-normal leading-tight">
Add your domain and setup redirects
Add your domain {/* and setup redirects */}
</p>
</div>

View File

@ -62,17 +62,15 @@ const Domains = () => {
headingText="Domains"
button={
<>
{domains.length == 0 && (
<Button
as="a"
href="add"
variant="secondary"
leftIcon={<PlusIcon />}
size="md"
>
Add domain
</Button>
)}
<Button
as="a"
href="add"
variant="secondary"
leftIcon={<PlusIcon />}
size="md"
>
Add domain
</Button>
</>
}
>