snowballtools-base/packages/frontend/src/components/projects/project/settings/Domains.tsx
prathamesh0 af021d3357 Refactor to fetch organization and deployment details in the parent component (#23)
* Refactor to fetch organization details in the parent component

* Fetch and use deployment details for a project

* Remove deployment field from ProjectDetails type

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-01 11:37:57 +05:30

53 lines
1.4 KiB
TypeScript

import React, { useMemo } from 'react';
import { useParams, Link, useOutletContext } from 'react-router-dom';
import { Button, Typography } from '@material-tailwind/react';
import DomainCard from './DomainCard';
import { DomainDetails } from '../../../../types/project';
import domainsData from '../../../../assets/domains.json';
import repositories from '../../../../assets/repositories.json';
const Domains = () => {
const { id } = useParams();
// @ts-expect-error create context type for projects
const { projects } = useOutletContext();
const currProject = useMemo(() => {
return projects.find((data: any) => Number(data.id) === Number(id));
}, [id]);
const linkedRepo = useMemo(() => {
return repositories.find(
(repo) => repo.id === Number(currProject?.repositoryId),
);
}, [currProject]);
return (
<>
<div className="flex justify-between p-2">
<Typography variant="h3">Domain</Typography>
<Link to="domain/add">
<Button color="blue" variant="outlined" className="rounded-full">
<i>^</i> Add domain
</Button>
</Link>
</div>
{(domainsData as DomainDetails[]).map((domain) => {
return (
<DomainCard
domain={domain}
key={domain.id}
repo={linkedRepo!}
project={currProject!}
/>
);
})}
</>
);
};
export default Domains;