snowballtools-base/packages/frontend/src/components/projects/project/SettingsTabPanel.tsx
Nabarun Gogoi 60235902a7
Implement layout for Domain tab in project settings (#25)
* Implement layout for Domains tab in settings

* Handle review changes

* Add json file for domains and take values from it

* Handle review changes

* Rename DomainsCard to DomainCard

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-26 12:47:42 +05:30

84 lines
1.8 KiB
TypeScript

import React, { createElement } from 'react';
import {
Tabs,
TabsHeader,
TabsBody,
Tab,
TabPanel,
} from '@material-tailwind/react';
import Domains from './settings/Domains';
import GeneralTabPanel from './settings/GeneralTabPanel';
const EnvironmentVariables = () => {
return <div>Environment Variables</div>;
};
const Members = () => {
return <div>Members</div>;
};
const tabsData = [
{
label: 'General',
icon: '^',
value: 'general',
component: GeneralTabPanel,
},
{
label: 'Domains',
icon: '^',
value: 'domains',
component: Domains,
},
{
label: 'Environment variables',
icon: '^',
value: 'environmentVariables',
component: EnvironmentVariables,
},
{
label: 'Members',
icon: '^',
value: 'members',
component: Members,
},
];
const SettingsTabPanel = () => {
return (
<>
<Tabs
value={'general'}
orientation="vertical"
className="grid grid-cols-4"
>
<TabsHeader
className="bg-transparent col-span-1"
indicatorProps={{
className: 'bg-gray-900/10 shadow-none !text-gray-900',
}}
>
{tabsData.map(({ label, value, icon }) => (
<Tab key={value} value={value} className="flex justify-start">
<div className="flex gap-2">
<div>{icon}</div>
<div>{label}</div>
</div>
</Tab>
))}
</TabsHeader>
<TabsBody className="col-span-2">
{tabsData.map(({ value, component }) => (
<TabPanel key={value} value={value} className="p-2">
{createElement(component)}
</TabPanel>
))}
</TabsBody>
</Tabs>
</>
);
};
export default SettingsTabPanel;