forked from cerc-io/snowballtools-base
temp (?) fix build
revert this if needed
This commit is contained in:
parent
0dfecd024d
commit
042aff2f87
@ -126,7 +126,8 @@ const DatePicker = ({
|
|||||||
crossOrigin={undefined}
|
crossOrigin={undefined}
|
||||||
/>
|
/>
|
||||||
</PopoverHandler>
|
</PopoverHandler>
|
||||||
<PopoverContent>
|
{/* TODO: Figure out what placeholder is for */}
|
||||||
|
<PopoverContent placeholder={''}>
|
||||||
{mode === 'single' && (
|
{mode === 'single' && (
|
||||||
<DayPicker
|
<DayPicker
|
||||||
mode="single"
|
mode="single"
|
||||||
@ -145,19 +146,23 @@ const DatePicker = ({
|
|||||||
/>
|
/>
|
||||||
<HorizontalLine />
|
<HorizontalLine />
|
||||||
<div className="flex justify-end">
|
<div className="flex justify-end">
|
||||||
|
{/* TODO: Figure out what placeholder is for */}
|
||||||
<Button
|
<Button
|
||||||
size="sm"
|
size="sm"
|
||||||
className="rounded-full mr-2"
|
className="rounded-full mr-2"
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
onClick={() => setIsOpen(false)}
|
onClick={() => setIsOpen(false)}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</Button>
|
</Button>
|
||||||
|
{/* TODO: Figure out what placeholder is for */}
|
||||||
<Button
|
<Button
|
||||||
size="sm"
|
size="sm"
|
||||||
className="rounded-full"
|
className="rounded-full"
|
||||||
color="gray"
|
color="gray"
|
||||||
onClick={() => handleRangeSelect()}
|
onClick={() => handleRangeSelect()}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
Select
|
Select
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -52,7 +52,7 @@ const Sidebar = () => {
|
|||||||
<div>^</div>
|
<div>^</div>
|
||||||
<div>
|
<div>
|
||||||
<span>{organizations[index!]?.name}</span>
|
<span>{organizations[index!]?.name}</span>
|
||||||
<Typography>Organization</Typography>
|
<Typography placeholder={''}>Organization</Typography>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
@ -70,7 +70,7 @@ const Sidebar = () => {
|
|||||||
to={`/${orgSlug}`}
|
to={`/${orgSlug}`}
|
||||||
className={({ isActive }) => (isActive ? 'text-blue-500' : '')}
|
className={({ isActive }) => (isActive ? 'text-blue-500' : '')}
|
||||||
>
|
>
|
||||||
<Typography>Projects</Typography>
|
<Typography placeholder={''}>Projects</Typography>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@ -78,7 +78,7 @@ const Sidebar = () => {
|
|||||||
to={`/${orgSlug}/settings`}
|
to={`/${orgSlug}/settings`}
|
||||||
className={({ isActive }) => (isActive ? 'text-blue-500' : '')}
|
className={({ isActive }) => (isActive ? 'text-blue-500' : '')}
|
||||||
>
|
>
|
||||||
<Typography>Settings</Typography>
|
<Typography placeholder={''}>Settings</Typography>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -21,11 +21,15 @@ const ProjectCard: React.FC<ProjectCardProps> = ({ project }) => {
|
|||||||
return (
|
return (
|
||||||
<div className="bg-white border border-gray-200 rounded-lg shadow">
|
<div className="bg-white border border-gray-200 rounded-lg shadow">
|
||||||
<div className="flex gap-2 p-2 items-center">
|
<div className="flex gap-2 p-2 items-center">
|
||||||
<Avatar variant="rounded" src={project.icon || '/gray.png'} />
|
<Avatar
|
||||||
|
variant="rounded"
|
||||||
|
src={project.icon || '/gray.png'}
|
||||||
|
placeholder={''}
|
||||||
|
/>
|
||||||
<div className="grow">
|
<div className="grow">
|
||||||
<Link to={`projects/${project.id}`}>
|
<Link to={`projects/${project.id}`}>
|
||||||
<Typography>{project.name}</Typography>
|
<Typography placeholder={''}>{project.name}</Typography>
|
||||||
<Typography color="gray" variant="small">
|
<Typography color="gray" variant="small" placeholder={''}>
|
||||||
{project.deployments[0]?.domain?.name ??
|
{project.deployments[0]?.domain?.name ??
|
||||||
'No Production Deployment'}
|
'No Production Deployment'}
|
||||||
</Typography>
|
</Typography>
|
||||||
@ -35,25 +39,27 @@ const ProjectCard: React.FC<ProjectCardProps> = ({ project }) => {
|
|||||||
<MenuHandler>
|
<MenuHandler>
|
||||||
<button>...</button>
|
<button>...</button>
|
||||||
</MenuHandler>
|
</MenuHandler>
|
||||||
<MenuList>
|
<MenuList placeholder={''}>
|
||||||
<MenuItem>^ Project settings</MenuItem>
|
<MenuItem placeholder={''}>^ Project settings</MenuItem>
|
||||||
<MenuItem className="text-red-500">^ Delete project</MenuItem>
|
<MenuItem className="text-red-500" placeholder={''}>
|
||||||
|
^ Delete project
|
||||||
|
</MenuItem>
|
||||||
</MenuList>
|
</MenuList>
|
||||||
</Menu>
|
</Menu>
|
||||||
</div>
|
</div>
|
||||||
<div className="border-t-2 border-solid p-4 bg-gray-50">
|
<div className="border-t-2 border-solid p-4 bg-gray-50">
|
||||||
{project.deployments.length > 0 ? (
|
{project.deployments.length > 0 ? (
|
||||||
<>
|
<>
|
||||||
<Typography variant="small" color="gray">
|
<Typography variant="small" color="gray" placeholder={''}>
|
||||||
^ {project.deployments[0].commitMessage}
|
^ {project.deployments[0].commitMessage}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="small" color="gray">
|
<Typography variant="small" color="gray" placeholder={''}>
|
||||||
{relativeTimeMs(project.deployments[0].createdAt)} on ^
|
{relativeTimeMs(project.deployments[0].createdAt)} on ^
|
||||||
{project.deployments[0].branch}
|
{project.deployments[0].branch}
|
||||||
</Typography>
|
</Typography>
|
||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
<Typography variant="small" color="gray">
|
<Typography variant="small" color="gray" placeholder={''}>
|
||||||
No Production deployment
|
No Production deployment
|
||||||
</Typography>
|
</Typography>
|
||||||
)}
|
)}
|
||||||
|
@ -71,12 +71,13 @@ const ProjectSearchBar = ({ onChange }: ProjectsSearchProps) => {
|
|||||||
className={`absolute w-1/2 max-h-52 -mt-1 overflow-y-auto ${
|
className={`absolute w-1/2 max-h-52 -mt-1 overflow-y-auto ${
|
||||||
(!inputValue || !isOpen) && 'hidden'
|
(!inputValue || !isOpen) && 'hidden'
|
||||||
}`}
|
}`}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
<List {...getMenuProps()}>
|
<List {...getMenuProps()}>
|
||||||
{items.length ? (
|
{items.length ? (
|
||||||
<>
|
<>
|
||||||
<div className="p-3">
|
<div className="p-3">
|
||||||
<Typography variant="small" color="gray">
|
<Typography variant="small" color="gray" placeholder={''}>
|
||||||
Suggestions
|
Suggestions
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
@ -84,19 +85,25 @@ const ProjectSearchBar = ({ onChange }: ProjectsSearchProps) => {
|
|||||||
<ListItem
|
<ListItem
|
||||||
selected={highlightedIndex === index || selectedItem === item}
|
selected={highlightedIndex === index || selectedItem === item}
|
||||||
key={item.id}
|
key={item.id}
|
||||||
|
placeholder={''}
|
||||||
{...getItemProps({ item, index })}
|
{...getItemProps({ item, index })}
|
||||||
>
|
>
|
||||||
<ListItemPrefix>
|
<ListItemPrefix placeholder={''}>
|
||||||
<Avatar src={item.icon || '/gray.png'} variant="rounded" />
|
<Avatar
|
||||||
|
src={item.icon || '/gray.png'}
|
||||||
|
variant="rounded"
|
||||||
|
placeholder={''}
|
||||||
|
/>
|
||||||
</ListItemPrefix>
|
</ListItemPrefix>
|
||||||
<div>
|
<div>
|
||||||
<Typography variant="h6" color="blue-gray">
|
<Typography variant="h6" color="blue-gray" placeholder={''}>
|
||||||
{item.name}
|
{item.name}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography
|
<Typography
|
||||||
variant="small"
|
variant="small"
|
||||||
color="gray"
|
color="gray"
|
||||||
className="font-normal"
|
className="font-normal"
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
{item.organization.name}
|
{item.organization.name}
|
||||||
</Typography>
|
</Typography>
|
||||||
@ -106,7 +113,9 @@ const ProjectSearchBar = ({ onChange }: ProjectsSearchProps) => {
|
|||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
<div className="p-3">
|
<div className="p-3">
|
||||||
<Typography>^ No projects matching this name</Typography>
|
<Typography placeholder={''}>
|
||||||
|
^ No projects matching this name
|
||||||
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</List>
|
</List>
|
||||||
|
@ -46,9 +46,15 @@ const ConnectAccount = ({ onAuth: onToken }: ConnectAccountInterface) => {
|
|||||||
width={1000}
|
width={1000}
|
||||||
height={1000}
|
height={1000}
|
||||||
>
|
>
|
||||||
<Button className="rounded-full mx-2">Connect to Github</Button>
|
{/* TODO: figure out what placeholder is for */}
|
||||||
|
<Button className="rounded-full mx-2" placeholder={''}>
|
||||||
|
Connect to Github
|
||||||
|
</Button>
|
||||||
</OauthPopup>
|
</OauthPopup>
|
||||||
<Button className="rounded-full mx-2">Connect to Gitea</Button>
|
{/* TODO: figure out what placeholder is for */}
|
||||||
|
<Button className="rounded-full mx-2" placeholder={''}>
|
||||||
|
Connect to Gitea
|
||||||
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<ConnectAccountTabPanel />
|
<ConnectAccountTabPanel />
|
||||||
</div>
|
</div>
|
||||||
|
@ -5,11 +5,11 @@ import { Tabs, TabsHeader, Tab } from '@material-tailwind/react';
|
|||||||
const ConnectAccountTabPanel = () => {
|
const ConnectAccountTabPanel = () => {
|
||||||
return (
|
return (
|
||||||
<Tabs className="grid bg-white h-32 p-2 m-4 rounded-md" value="import">
|
<Tabs className="grid bg-white h-32 p-2 m-4 rounded-md" value="import">
|
||||||
<TabsHeader className="grid grid-cols-2">
|
<TabsHeader className="grid grid-cols-2" placeholder={''}>
|
||||||
<Tab className="row-span-1" value="import">
|
<Tab className="row-span-1" value="import" placeholder={''}>
|
||||||
Import a repository
|
Import a repository
|
||||||
</Tab>
|
</Tab>
|
||||||
<Tab className="row-span-2" value="template">
|
<Tab className="row-span-2" value="template" placeholder={''}>
|
||||||
Start with a template
|
Start with a template
|
||||||
</Tab>
|
</Tab>
|
||||||
</TabsHeader>
|
</TabsHeader>
|
||||||
|
@ -43,7 +43,12 @@ const Deploy = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Button onClick={handleOpen} variant="outlined" size="sm">
|
<Button
|
||||||
|
onClick={handleOpen}
|
||||||
|
variant="outlined"
|
||||||
|
size="sm"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
^ Cancel
|
^ Cancel
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
@ -55,7 +60,7 @@ const Deploy = () => {
|
|||||||
handleConfirm={handleCancel}
|
handleConfirm={handleCancel}
|
||||||
color="red"
|
color="red"
|
||||||
>
|
>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
This will halt the deployment and you will have to start the process
|
This will halt the deployment and you will have to start the process
|
||||||
from scratch.
|
from scratch.
|
||||||
</Typography>
|
</Typography>
|
||||||
|
@ -62,7 +62,12 @@ const DeployStep = ({
|
|||||||
<div className="p-2 text-sm text-gray-500 h-36 overflow-y-scroll">
|
<div className="p-2 text-sm text-gray-500 h-36 overflow-y-scroll">
|
||||||
{processLogs.map((log, key) => {
|
{processLogs.map((log, key) => {
|
||||||
return (
|
return (
|
||||||
<Typography variant="small" color="gray" key={key}>
|
<Typography
|
||||||
|
variant="small"
|
||||||
|
color="gray"
|
||||||
|
key={key}
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
{log}
|
{log}
|
||||||
</Typography>
|
</Typography>
|
||||||
);
|
);
|
||||||
@ -75,6 +80,7 @@ const DeployStep = ({
|
|||||||
toast.success('Logs copied');
|
toast.success('Logs copied');
|
||||||
}}
|
}}
|
||||||
color="blue"
|
color="blue"
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
^ Copy log
|
^ Copy log
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -66,7 +66,9 @@ const ProjectRepoCard: React.FC<ProjectRepoCardProps> = ({ repository }) => {
|
|||||||
<Spinner className="h-4 w-4" />
|
<Spinner className="h-4 w-4" />
|
||||||
) : (
|
) : (
|
||||||
<div className="hidden group-hover:block">
|
<div className="hidden group-hover:block">
|
||||||
<IconButton size="sm">{'>'}</IconButton>
|
<IconButton size="sm" placeholder={''}>
|
||||||
|
{'>'}
|
||||||
|
</IconButton>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
@ -136,11 +136,12 @@ const RepositoryList = ({ octokit }: RepositoryListProps) => {
|
|||||||
) : (
|
) : (
|
||||||
<div className="mt-4 p-6 flex items-center justify-center">
|
<div className="mt-4 p-6 flex items-center justify-center">
|
||||||
<div className="text-center">
|
<div className="text-center">
|
||||||
<Typography>No repository found</Typography>
|
<Typography placeholder={''}>No repository found</Typography>
|
||||||
<Button
|
<Button
|
||||||
className="rounded-full mt-5"
|
className="rounded-full mt-5"
|
||||||
size="sm"
|
size="sm"
|
||||||
onClick={handleResetFilters}
|
onClick={handleResetFilters}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
^ Reset filters
|
^ Reset filters
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -18,11 +18,15 @@ interface TemplateCardProps {
|
|||||||
const CardDetails = ({ template }: { template: TemplateDetails }) => {
|
const CardDetails = ({ template }: { template: TemplateDetails }) => {
|
||||||
return (
|
return (
|
||||||
<div className="h-14 group bg-gray-200 border-gray-200 rounded-lg shadow p-4 flex items-center justify-between">
|
<div className="h-14 group bg-gray-200 border-gray-200 rounded-lg shadow p-4 flex items-center justify-between">
|
||||||
<Typography className="grow">
|
<Typography className="grow" placeholder={''}>
|
||||||
{template.icon} {template.name}
|
{template.icon} {template.name}
|
||||||
</Typography>
|
</Typography>
|
||||||
<div>
|
<div>
|
||||||
<IconButton size="sm" className="rounded-full hidden group-hover:block">
|
<IconButton
|
||||||
|
size="sm"
|
||||||
|
className="rounded-full hidden group-hover:block"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
{'>'}
|
{'>'}
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,20 +13,29 @@ const ActivityCard = ({ activity }: ActivityCardProps) => {
|
|||||||
return (
|
return (
|
||||||
<div className="group flex gap-2 hover:bg-gray-200 rounded mt-1">
|
<div className="group flex gap-2 hover:bg-gray-200 rounded mt-1">
|
||||||
<div className="w-8">
|
<div className="w-8">
|
||||||
<Avatar src={activity.author?.avatar_url} variant="rounded" size="sm" />
|
<Avatar
|
||||||
|
src={activity.author?.avatar_url}
|
||||||
|
variant="rounded"
|
||||||
|
size="sm"
|
||||||
|
placeholder={''}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="grow">
|
<div className="grow">
|
||||||
<Typography>{activity.commit.author?.name}</Typography>
|
<Typography placeholder={''}>{activity.commit.author?.name}</Typography>
|
||||||
<Typography variant="small" color="gray">
|
<Typography variant="small" color="gray" placeholder={''}>
|
||||||
{relativeTimeISO(activity.commit.author!.date!)} ^{' '}
|
{relativeTimeISO(activity.commit.author!.date!)} ^{' '}
|
||||||
{activity.branch.name}
|
{activity.branch.name}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="small" color="gray">
|
<Typography variant="small" color="gray" placeholder={''}>
|
||||||
{activity.commit.message}
|
{activity.commit.message}
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
<div className="mr-2 self-center hidden group-hover:block">
|
<div className="mr-2 self-center hidden group-hover:block">
|
||||||
<IconButton size="sm" className="rounded-full bg-gray-600">
|
<IconButton
|
||||||
|
size="sm"
|
||||||
|
className="rounded-full bg-gray-600"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
{'>'}
|
{'>'}
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</div>
|
</div>
|
||||||
|
@ -17,9 +17,9 @@ interface AssignDomainProps {
|
|||||||
|
|
||||||
const AssignDomainDialog = ({ open, handleOpen }: AssignDomainProps) => {
|
const AssignDomainDialog = ({ open, handleOpen }: AssignDomainProps) => {
|
||||||
return (
|
return (
|
||||||
<Dialog open={open} handler={handleOpen}>
|
<Dialog open={open} handler={handleOpen} placeholder={''}>
|
||||||
<DialogHeader>Assign Domain</DialogHeader>
|
<DialogHeader placeholder={''}>Assign Domain</DialogHeader>
|
||||||
<DialogBody>
|
<DialogBody placeholder={''}>
|
||||||
In order to assign a domain to your production deployments, configure it
|
In order to assign a domain to your production deployments, configure it
|
||||||
in the{' '}
|
in the{' '}
|
||||||
{/* TODO: Fix selection of project settings tab on navigation to domains */}
|
{/* TODO: Fix selection of project settings tab on navigation to domains */}
|
||||||
@ -36,12 +36,13 @@ const AssignDomainDialog = ({ open, handleOpen }: AssignDomainProps) => {
|
|||||||
theme={atomOneLight}
|
theme={atomOneLight}
|
||||||
/>
|
/>
|
||||||
</DialogBody>
|
</DialogBody>
|
||||||
<DialogFooter className="flex justify-start">
|
<DialogFooter className="flex justify-start" placeholder={''}>
|
||||||
<Button
|
<Button
|
||||||
className="rounded-3xl"
|
className="rounded-3xl"
|
||||||
variant="gradient"
|
variant="gradient"
|
||||||
color="blue"
|
color="blue"
|
||||||
onClick={handleOpen}
|
onClick={handleOpen}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
<span>Okay</span>
|
<span>Okay</span>
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -93,10 +93,12 @@ const DeploymentDetailsCard = ({
|
|||||||
<div className="col-span-3">
|
<div className="col-span-3">
|
||||||
<div className="flex">
|
<div className="flex">
|
||||||
{deployment.url && (
|
{deployment.url && (
|
||||||
<Typography className=" basis-3/4">{deployment.url}</Typography>
|
<Typography className="basis-3/4" placeholder={''}>
|
||||||
|
{deployment.url}
|
||||||
|
</Typography>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<Typography color="gray">
|
<Typography color="gray" placeholder={''}>
|
||||||
{deployment.environment === Environment.Production
|
{deployment.environment === Environment.Production
|
||||||
? `Production ${deployment.isCurrent ? '(Current)' : ''}`
|
? `Production ${deployment.isCurrent ? '(Current)' : ''}`
|
||||||
: 'Preview'}
|
: 'Preview'}
|
||||||
@ -111,14 +113,16 @@ const DeploymentDetailsCard = ({
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="col-span-2">
|
<div className="col-span-2">
|
||||||
<Typography color="gray">^ {deployment.branch}</Typography>
|
<Typography color="gray" placeholder={''}>
|
||||||
<Typography color="gray">
|
^ {deployment.branch}
|
||||||
|
</Typography>
|
||||||
|
<Typography color="gray" placeholder={''}>
|
||||||
^ {deployment.commitHash.substring(0, SHORT_COMMIT_HASH_LENGTH)}{' '}
|
^ {deployment.commitHash.substring(0, SHORT_COMMIT_HASH_LENGTH)}{' '}
|
||||||
{deployment.commitMessage}
|
{deployment.commitMessage}
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
<div className="col-span-2 flex items-center">
|
<div className="col-span-2 flex items-center">
|
||||||
<Typography color="gray" className="grow">
|
<Typography color="gray" className="grow" placeholder={''}>
|
||||||
^ {relativeTimeMs(deployment.createdAt)} ^{' '}
|
^ {relativeTimeMs(deployment.createdAt)} ^{' '}
|
||||||
<Tooltip content={deployment.createdBy.name}>
|
<Tooltip content={deployment.createdBy.name}>
|
||||||
{formatAddress(deployment.createdBy.name ?? '')}
|
{formatAddress(deployment.createdBy.name ?? '')}
|
||||||
@ -128,18 +132,22 @@ const DeploymentDetailsCard = ({
|
|||||||
<MenuHandler>
|
<MenuHandler>
|
||||||
<button className="self-start">...</button>
|
<button className="self-start">...</button>
|
||||||
</MenuHandler>
|
</MenuHandler>
|
||||||
<MenuList>
|
<MenuList placeholder={''}>
|
||||||
<a href={deployment.url} target="_blank" rel="noreferrer">
|
<a href={deployment.url} target="_blank" rel="noreferrer">
|
||||||
<MenuItem disabled={!Boolean(deployment.url)}>^ Visit</MenuItem>
|
<MenuItem disabled={!Boolean(deployment.url)} placeholder={''}>
|
||||||
|
^ Visit
|
||||||
|
</MenuItem>
|
||||||
</a>
|
</a>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
onClick={() => setAssignDomainDialog(!assignDomainDialog)}
|
onClick={() => setAssignDomainDialog(!assignDomainDialog)}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
^ Assign domain
|
^ Assign domain
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
onClick={() => setChangeToProduction(!changeToProduction)}
|
onClick={() => setChangeToProduction(!changeToProduction)}
|
||||||
disabled={!(deployment.environment !== Environment.Production)}
|
disabled={!(deployment.environment !== Environment.Production)}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
^ Change to production
|
^ Change to production
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
@ -152,6 +160,7 @@ const DeploymentDetailsCard = ({
|
|||||||
deployment.isCurrent
|
deployment.isCurrent
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
^ Redeploy to production
|
^ Redeploy to production
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
@ -162,6 +171,7 @@ const DeploymentDetailsCard = ({
|
|||||||
deployment.environment !== Environment.Production ||
|
deployment.environment !== Environment.Production ||
|
||||||
!Boolean(currentDeployment)
|
!Boolean(currentDeployment)
|
||||||
}
|
}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
^ Rollback to this version
|
^ Rollback to this version
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
@ -180,17 +190,22 @@ const DeploymentDetailsCard = ({
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div className="flex flex-col gap-2">
|
<div className="flex flex-col gap-2">
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
Upon confirmation, this deployment will be changed to production.
|
Upon confirmation, this deployment will be changed to production.
|
||||||
</Typography>
|
</Typography>
|
||||||
<DeploymentDialogBodyCard deployment={deployment} />
|
<DeploymentDialogBodyCard deployment={deployment} />
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
The new deployment will be associated with these domains:
|
The new deployment will be associated with these domains:
|
||||||
</Typography>
|
</Typography>
|
||||||
{prodBranchDomains.length > 0 &&
|
{prodBranchDomains.length > 0 &&
|
||||||
prodBranchDomains.map((value) => {
|
prodBranchDomains.map((value) => {
|
||||||
return (
|
return (
|
||||||
<Typography variant="small" color="blue" key={value.id}>
|
<Typography
|
||||||
|
variant="small"
|
||||||
|
color="blue"
|
||||||
|
key={value.id}
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
^ {value.name}
|
^ {value.name}
|
||||||
</Typography>
|
</Typography>
|
||||||
);
|
);
|
||||||
@ -209,16 +224,16 @@ const DeploymentDetailsCard = ({
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div className="flex flex-col gap-2">
|
<div className="flex flex-col gap-2">
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
Upon confirmation, new deployment will be created with the same
|
Upon confirmation, new deployment will be created with the same
|
||||||
source code as current deployment.
|
source code as current deployment.
|
||||||
</Typography>
|
</Typography>
|
||||||
<DeploymentDialogBodyCard deployment={deployment} />
|
<DeploymentDialogBodyCard deployment={deployment} />
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
These domains will point to your new deployment:
|
These domains will point to your new deployment:
|
||||||
</Typography>
|
</Typography>
|
||||||
{deployment.domain?.name && (
|
{deployment.domain?.name && (
|
||||||
<Typography variant="small" color="blue">
|
<Typography variant="small" color="blue" placeholder={''}>
|
||||||
{deployment.domain?.name}
|
{deployment.domain?.name}
|
||||||
</Typography>
|
</Typography>
|
||||||
)}
|
)}
|
||||||
@ -237,7 +252,7 @@ const DeploymentDetailsCard = ({
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div className="flex flex-col gap-2">
|
<div className="flex flex-col gap-2">
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
Upon confirmation, this deployment will replace your current
|
Upon confirmation, this deployment will replace your current
|
||||||
deployment
|
deployment
|
||||||
</Typography>
|
</Typography>
|
||||||
@ -255,10 +270,10 @@ const DeploymentDetailsCard = ({
|
|||||||
color: 'orange',
|
color: 'orange',
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
These domains will point to your new deployment:
|
These domains will point to your new deployment:
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="small" color="blue">
|
<Typography variant="small" color="blue" placeholder={''}>
|
||||||
^ {currentDeployment.domain?.name}
|
^ {currentDeployment.domain?.name}
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
|
@ -20,7 +20,7 @@ const DeploymentDialogBodyCard = ({
|
|||||||
deployment,
|
deployment,
|
||||||
}: DeploymentDialogBodyCardProps) => {
|
}: DeploymentDialogBodyCardProps) => {
|
||||||
return (
|
return (
|
||||||
<Card className="p-2 shadow-none">
|
<Card className="p-2 shadow-none" placeholder={''}>
|
||||||
{chip && (
|
{chip && (
|
||||||
<Chip
|
<Chip
|
||||||
className={`w-fit normal-case font-normal`}
|
className={`w-fit normal-case font-normal`}
|
||||||
@ -30,16 +30,16 @@ const DeploymentDialogBodyCard = ({
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{deployment.url && (
|
{deployment.url && (
|
||||||
<Typography variant="small" className="text-black">
|
<Typography variant="small" className="text-black" placeholder={''}>
|
||||||
{deployment.url}
|
{deployment.url}
|
||||||
</Typography>
|
</Typography>
|
||||||
)}
|
)}
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
^ {deployment.branch} ^{' '}
|
^ {deployment.branch} ^{' '}
|
||||||
{deployment.commitHash.substring(0, SHORT_COMMIT_HASH_LENGTH)}{' '}
|
{deployment.commitHash.substring(0, SHORT_COMMIT_HASH_LENGTH)}{' '}
|
||||||
{deployment.commitMessage}
|
{deployment.commitMessage}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
^ {relativeTimeMs(deployment.createdAt)} ^{' '}
|
^ {relativeTimeMs(deployment.createdAt)} ^{' '}
|
||||||
{formatAddress(deployment.createdBy.name ?? '')}
|
{formatAddress(deployment.createdBy.name ?? '')}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
@ -77,6 +77,7 @@ const FilterForm = ({ value, onChange }: FilterFormProps) => {
|
|||||||
onClick={() => setSelectedStatus(StatusOptions.ALL_STATUS)}
|
onClick={() => setSelectedStatus(StatusOptions.ALL_STATUS)}
|
||||||
className="rounded-full"
|
className="rounded-full"
|
||||||
size="sm"
|
size="sm"
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
X
|
X
|
||||||
</IconButton>
|
</IconButton>
|
||||||
|
@ -21,7 +21,9 @@ const AddEnvironmentVariableRow = ({
|
|||||||
return (
|
return (
|
||||||
<div className="flex gap-1 p-2">
|
<div className="flex gap-1 p-2">
|
||||||
<div>
|
<div>
|
||||||
<Typography variant="small">Key</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Key
|
||||||
|
</Typography>
|
||||||
<Input
|
<Input
|
||||||
crossOrigin={undefined}
|
crossOrigin={undefined}
|
||||||
{...register(`variables.${index}.key`, {
|
{...register(`variables.${index}.key`, {
|
||||||
@ -30,7 +32,9 @@ const AddEnvironmentVariableRow = ({
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Typography variant="small">Value</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Value
|
||||||
|
</Typography>
|
||||||
<Input
|
<Input
|
||||||
crossOrigin={undefined}
|
crossOrigin={undefined}
|
||||||
{...register(`variables.${index}.value`, {
|
{...register(`variables.${index}.value`, {
|
||||||
@ -43,6 +47,7 @@ const AddEnvironmentVariableRow = ({
|
|||||||
size="sm"
|
size="sm"
|
||||||
onClick={() => onDelete()}
|
onClick={() => onDelete()}
|
||||||
disabled={isDeleteDisabled}
|
disabled={isDeleteDisabled}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
{'>'}
|
{'>'}
|
||||||
</IconButton>
|
</IconButton>
|
||||||
|
@ -61,23 +61,26 @@ const AddMemberDialog = ({
|
|||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Dialog open={open} handler={handleOpen}>
|
<Dialog open={open} handler={handleOpen} placeholder={''}>
|
||||||
<DialogHeader className="flex justify-between">
|
<DialogHeader className="flex justify-between" placeholder={''}>
|
||||||
<div>Add member</div>
|
<div>Add member</div>
|
||||||
<Button
|
<Button
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
onClick={handleOpen}
|
onClick={handleOpen}
|
||||||
className="mr-1 rounded-3xl"
|
className="mr-1 rounded-3xl"
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
X
|
X
|
||||||
</Button>
|
</Button>
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
<form onSubmit={handleSubmit(submitHandler)}>
|
<form onSubmit={handleSubmit(submitHandler)}>
|
||||||
<DialogBody className="flex flex-col gap-2 p-4">
|
<DialogBody className="flex flex-col gap-2 p-4" placeholder={''}>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
We will send an invitation link to this email address.
|
We will send an invitation link to this email address.
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="small">Email address</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Email address
|
||||||
|
</Typography>
|
||||||
<Input
|
<Input
|
||||||
type="email"
|
type="email"
|
||||||
crossOrigin={undefined}
|
crossOrigin={undefined}
|
||||||
@ -85,8 +88,10 @@ const AddMemberDialog = ({
|
|||||||
required: 'email field cannot be empty',
|
required: 'email field cannot be empty',
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
<Typography variant="small">Permissions</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
<Typography variant="small">
|
Permissions
|
||||||
|
</Typography>
|
||||||
|
<Typography variant="small" placeholder={''}>
|
||||||
You can change this later if required.
|
You can change this later if required.
|
||||||
</Typography>
|
</Typography>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
@ -102,8 +107,13 @@ const AddMemberDialog = ({
|
|||||||
color="blue"
|
color="blue"
|
||||||
/>
|
/>
|
||||||
</DialogBody>
|
</DialogBody>
|
||||||
<DialogFooter className="flex justify-start">
|
<DialogFooter className="flex justify-start" placeholder={''}>
|
||||||
<Button variant="outlined" onClick={handleOpen} className="mr-1">
|
<Button
|
||||||
|
variant="outlined"
|
||||||
|
onClick={handleOpen}
|
||||||
|
className="mr-1"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
@ -111,6 +121,7 @@ const AddMemberDialog = ({
|
|||||||
color="blue"
|
color="blue"
|
||||||
type="submit"
|
type="submit"
|
||||||
disabled={!isValid}
|
disabled={!isValid}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
Send invite
|
Send invite
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -53,20 +53,21 @@ const DeleteProjectDialog = ({
|
|||||||
}, [client, project, handleOpen]);
|
}, [client, project, handleOpen]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Dialog open={open} handler={handleOpen}>
|
<Dialog open={open} handler={handleOpen} placeholder={''}>
|
||||||
<DialogHeader className="flex justify-between">
|
<DialogHeader className="flex justify-between" placeholder={''}>
|
||||||
<div>Delete project?</div>
|
<div>Delete project?</div>
|
||||||
<Button
|
<Button
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
onClick={handleOpen}
|
onClick={handleOpen}
|
||||||
className="mr-1 rounded-3xl"
|
className="mr-1 rounded-3xl"
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
X
|
X
|
||||||
</Button>
|
</Button>
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
<form onSubmit={handleSubmit(deleteProjectHandler)}>
|
<form onSubmit={handleSubmit(deleteProjectHandler)}>
|
||||||
<DialogBody className="flex flex-col gap-2">
|
<DialogBody className="flex flex-col gap-2" placeholder={''}>
|
||||||
<Typography variant="paragraph">
|
<Typography variant="paragraph" placeholder={''}>
|
||||||
Deleting your project is irreversible. Enter your project’s
|
Deleting your project is irreversible. Enter your project’s
|
||||||
name
|
name
|
||||||
<span className="bg-blue-100 text-blue-700">({project.name})</span>
|
<span className="bg-blue-100 text-blue-700">({project.name})</span>
|
||||||
@ -80,12 +81,17 @@ const DeleteProjectDialog = ({
|
|||||||
validate: (value) => value === project.name,
|
validate: (value) => value === project.name,
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
<Typography variant="small" color="red">
|
<Typography variant="small" color="red" placeholder={''}>
|
||||||
^ Deleting your project is irreversible.
|
^ Deleting your project is irreversible.
|
||||||
</Typography>
|
</Typography>
|
||||||
</DialogBody>
|
</DialogBody>
|
||||||
<DialogFooter className="flex justify-start">
|
<DialogFooter className="flex justify-start" placeholder={''}>
|
||||||
<Button variant="outlined" onClick={handleOpen} className="mr-1">
|
<Button
|
||||||
|
variant="outlined"
|
||||||
|
onClick={handleOpen}
|
||||||
|
className="mr-1"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
@ -93,6 +99,7 @@ const DeleteProjectDialog = ({
|
|||||||
color="red"
|
color="red"
|
||||||
type="submit"
|
type="submit"
|
||||||
disabled={!isValid}
|
disabled={!isValid}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
Yes, Delete project
|
Yes, Delete project
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -29,11 +29,11 @@ const DisplayEnvironmentVariables = ({
|
|||||||
</div>
|
</div>
|
||||||
<Collapse open={openCollapse}>
|
<Collapse open={openCollapse}>
|
||||||
{variables.length === 0 ? (
|
{variables.length === 0 ? (
|
||||||
<Card className="bg-gray-300 flex items-center p-4">
|
<Card className="bg-gray-300 flex items-center p-4" placeholder={''}>
|
||||||
<Typography variant="small" className="text-black">
|
<Typography variant="small" className="text-black" placeholder={''}>
|
||||||
No environment variables added yet.
|
No environment variables added yet.
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
Once you add them, they’ll show up here.
|
Once you add them, they’ll show up here.
|
||||||
</Typography>
|
</Typography>
|
||||||
</Card>
|
</Card>
|
||||||
|
@ -68,7 +68,7 @@ const DomainCard = ({
|
|||||||
<>
|
<>
|
||||||
<div className="flex justify-between py-3">
|
<div className="flex justify-between py-3">
|
||||||
<div className="flex justify-start gap-1">
|
<div className="flex justify-start gap-1">
|
||||||
<Typography variant="h6">
|
<Typography variant="h6" placeholder={''}>
|
||||||
<i>^</i> {domain.name}
|
<i>^</i> {domain.name}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Chip
|
<Chip
|
||||||
@ -97,18 +97,20 @@ const DomainCard = ({
|
|||||||
<MenuHandler>
|
<MenuHandler>
|
||||||
<button className="border-2 rounded-full w-8 h-8">...</button>
|
<button className="border-2 rounded-full w-8 h-8">...</button>
|
||||||
</MenuHandler>
|
</MenuHandler>
|
||||||
<MenuList>
|
<MenuList placeholder={''}>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
className="text-black"
|
className="text-black"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setEditDialogOpen((preVal) => !preVal);
|
setEditDialogOpen((preVal) => !preVal);
|
||||||
}}
|
}}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
^ Edit domain
|
^ Edit domain
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
className="text-red-500"
|
className="text-red-500"
|
||||||
onClick={() => setDeleteDialogOpen((preVal) => !preVal)}
|
onClick={() => setDeleteDialogOpen((preVal) => !preVal)}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
^ Delete domain
|
^ Delete domain
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
@ -127,7 +129,7 @@ const DomainCard = ({
|
|||||||
}}
|
}}
|
||||||
color="red"
|
color="red"
|
||||||
>
|
>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
Once deleted, the project{' '}
|
Once deleted, the project{' '}
|
||||||
<span className="bg-blue-100 rounded-sm p-0.5 text-blue-700">
|
<span className="bg-blue-100 rounded-sm p-0.5 text-blue-700">
|
||||||
{project.name}
|
{project.name}
|
||||||
@ -140,15 +142,21 @@ const DomainCard = ({
|
|||||||
</ConfirmDialog>
|
</ConfirmDialog>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Typography variant="small">Production</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Production
|
||||||
|
</Typography>
|
||||||
{domain.status === DomainStatus.Pending && (
|
{domain.status === DomainStatus.Pending && (
|
||||||
<Card className="bg-gray-200 p-4 text-sm">
|
<Card className="bg-gray-200 p-4 text-sm" placeholder={''}>
|
||||||
{refreshStatus === RefreshStatus.IDLE ? (
|
{refreshStatus === RefreshStatus.IDLE ? (
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
^ Add these records to your domain and refresh to check
|
^ Add these records to your domain and refresh to check
|
||||||
</Typography>
|
</Typography>
|
||||||
) : refreshStatus === RefreshStatus.CHECKING ? (
|
) : refreshStatus === RefreshStatus.CHECKING ? (
|
||||||
<Typography variant="small" className="text-blue-500">
|
<Typography
|
||||||
|
variant="small"
|
||||||
|
className="text-blue-500"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
^ Checking records for {domain.name}
|
^ Checking records for {domain.name}
|
||||||
</Typography>
|
</Typography>
|
||||||
) : (
|
) : (
|
||||||
|
@ -122,27 +122,32 @@ const EditDomainDialog = ({
|
|||||||
}, [domain]);
|
}, [domain]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Dialog open={open} handler={handleOpen}>
|
<Dialog open={open} handler={handleOpen} placeholder={''}>
|
||||||
<DialogHeader className="flex justify-between">
|
<DialogHeader className="flex justify-between" placeholder={''}>
|
||||||
<div>Edit domain</div>
|
<div>Edit domain</div>
|
||||||
<Button
|
<Button
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
onClick={handleOpen}
|
onClick={handleOpen}
|
||||||
className="mr-1 rounded-3xl"
|
className="mr-1 rounded-3xl"
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
X
|
X
|
||||||
</Button>
|
</Button>
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
<form onSubmit={handleSubmit(updateDomainHandler)}>
|
<form onSubmit={handleSubmit(updateDomainHandler)}>
|
||||||
<DialogBody className="flex flex-col gap-2 p-4">
|
<DialogBody className="flex flex-col gap-2 p-4" placeholder={''}>
|
||||||
<Typography variant="small">Domain name</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Domain name
|
||||||
|
</Typography>
|
||||||
<Input crossOrigin={undefined} {...register('name')} />
|
<Input crossOrigin={undefined} {...register('name')} />
|
||||||
<Typography variant="small">Redirect to</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Redirect to
|
||||||
|
</Typography>
|
||||||
<Controller
|
<Controller
|
||||||
name="redirectedTo"
|
name="redirectedTo"
|
||||||
control={control}
|
control={control}
|
||||||
render={({ field }) => (
|
render={({ field }) => (
|
||||||
<Select {...field} disabled={isDisableDropdown}>
|
<Select {...field} disabled={isDisableDropdown} placeholder={''}>
|
||||||
{redirectOptions.map((option, key) => (
|
{redirectOptions.map((option, key) => (
|
||||||
<Option key={key} value={option}>
|
<Option key={key} value={option}>
|
||||||
^ {option}
|
^ {option}
|
||||||
@ -154,14 +159,16 @@ const EditDomainDialog = ({
|
|||||||
{isDisableDropdown && (
|
{isDisableDropdown && (
|
||||||
<div className="flex p-2 gap-2 text-black bg-gray-300 rounded-lg">
|
<div className="flex p-2 gap-2 text-black bg-gray-300 rounded-lg">
|
||||||
<div>^</div>
|
<div>^</div>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
Domain “{domainRedirectedFrom ? domainRedirectedFrom.name : ''}”
|
Domain “{domainRedirectedFrom ? domainRedirectedFrom.name : ''}”
|
||||||
redirects to this domain so you can not redirect this doman
|
redirects to this domain so you can not redirect this doman
|
||||||
further.
|
further.
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<Typography variant="small">Git branch</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Git branch
|
||||||
|
</Typography>
|
||||||
<Input
|
<Input
|
||||||
crossOrigin={undefined}
|
crossOrigin={undefined}
|
||||||
{...register('branch', {
|
{...register('branch', {
|
||||||
@ -174,13 +181,22 @@ const EditDomainDialog = ({
|
|||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
{!isValid && (
|
{!isValid && (
|
||||||
<Typography variant="small" className="text-red-500">
|
<Typography
|
||||||
|
variant="small"
|
||||||
|
className="text-red-500"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
We couldn't find this branch in the connected Git repository.
|
We couldn't find this branch in the connected Git repository.
|
||||||
</Typography>
|
</Typography>
|
||||||
)}
|
)}
|
||||||
</DialogBody>
|
</DialogBody>
|
||||||
<DialogFooter className="flex justify-start">
|
<DialogFooter className="flex justify-start" placeholder={''}>
|
||||||
<Button variant="outlined" onClick={handleOpen} className="mr-1">
|
<Button
|
||||||
|
variant="outlined"
|
||||||
|
onClick={handleOpen}
|
||||||
|
className="mr-1"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
@ -188,6 +204,7 @@ const EditDomainDialog = ({
|
|||||||
color="blue"
|
color="blue"
|
||||||
type="submit"
|
type="submit"
|
||||||
disabled={!isDirty}
|
disabled={!isDirty}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
Save changes
|
Save changes
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -84,7 +84,9 @@ const EditEnvironmentVariableRow = ({
|
|||||||
<>
|
<>
|
||||||
<div className="flex gap-1 p-2">
|
<div className="flex gap-1 p-2">
|
||||||
<div>
|
<div>
|
||||||
<Typography variant="small">Key</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Key
|
||||||
|
</Typography>
|
||||||
<Input
|
<Input
|
||||||
crossOrigin={undefined}
|
crossOrigin={undefined}
|
||||||
disabled={!edit}
|
disabled={!edit}
|
||||||
@ -92,7 +94,9 @@ const EditEnvironmentVariableRow = ({
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Typography variant="small">Value</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Value
|
||||||
|
</Typography>
|
||||||
<Input
|
<Input
|
||||||
crossOrigin={undefined}
|
crossOrigin={undefined}
|
||||||
disabled={!edit}
|
disabled={!edit}
|
||||||
@ -114,6 +118,7 @@ const EditEnvironmentVariableRow = ({
|
|||||||
<IconButton
|
<IconButton
|
||||||
onClick={handleSubmit(updateEnvironmentVariableHandler)}
|
onClick={handleSubmit(updateEnvironmentVariableHandler)}
|
||||||
size="sm"
|
size="sm"
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
{'S'}
|
{'S'}
|
||||||
</IconButton>
|
</IconButton>
|
||||||
@ -125,6 +130,7 @@ const EditEnvironmentVariableRow = ({
|
|||||||
reset();
|
reset();
|
||||||
setEdit((preVal) => !preVal);
|
setEdit((preVal) => !preVal);
|
||||||
}}
|
}}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
{'C'}
|
{'C'}
|
||||||
</IconButton>
|
</IconButton>
|
||||||
@ -138,6 +144,7 @@ const EditEnvironmentVariableRow = ({
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
setEdit((preVal) => !preVal);
|
setEdit((preVal) => !preVal);
|
||||||
}}
|
}}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
{'E'}
|
{'E'}
|
||||||
</IconButton>
|
</IconButton>
|
||||||
@ -146,6 +153,7 @@ const EditEnvironmentVariableRow = ({
|
|||||||
<IconButton
|
<IconButton
|
||||||
size="sm"
|
size="sm"
|
||||||
onClick={() => setDeleteDialogOpen((preVal) => !preVal)}
|
onClick={() => setDeleteDialogOpen((preVal) => !preVal)}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
{'D'}
|
{'D'}
|
||||||
</IconButton>
|
</IconButton>
|
||||||
@ -162,7 +170,7 @@ const EditEnvironmentVariableRow = ({
|
|||||||
handleConfirm={removeEnvironmentVariableHandler}
|
handleConfirm={removeEnvironmentVariableHandler}
|
||||||
color="red"
|
color="red"
|
||||||
>
|
>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
Are you sure you want to delete the variable
|
Are you sure you want to delete the variable
|
||||||
<span className="bg-blue-100">{variable.key}</span>?
|
<span className="bg-blue-100">{variable.key}</span>?
|
||||||
</Typography>
|
</Typography>
|
||||||
|
@ -104,6 +104,7 @@ const MemberCard = ({
|
|||||||
selected={(_, index) => (
|
selected={(_, index) => (
|
||||||
<span>{DROPDOWN_OPTIONS[index!]?.label}</span>
|
<span>{DROPDOWN_OPTIONS[index!]?.label}</span>
|
||||||
)}
|
)}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
{DROPDOWN_OPTIONS.map((permission, key) => (
|
{DROPDOWN_OPTIONS.map((permission, key) => (
|
||||||
<Option key={key} value={permission.value}>
|
<Option key={key} value={permission.value}>
|
||||||
@ -132,6 +133,7 @@ const MemberCard = ({
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
setRemoveMemberDialogOpen((prevVal) => !prevVal);
|
setRemoveMemberDialogOpen((prevVal) => !prevVal);
|
||||||
}}
|
}}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
D
|
D
|
||||||
</IconButton>
|
</IconButton>
|
||||||
@ -152,7 +154,7 @@ const MemberCard = ({
|
|||||||
}}
|
}}
|
||||||
color="red"
|
color="red"
|
||||||
>
|
>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
Once removed, {formatAddress(member.name ?? '')} (
|
Once removed, {formatAddress(member.name ?? '')} (
|
||||||
{formatAddress(ethAddress)}@{emailDomain}) will not be able to access
|
{formatAddress(ethAddress)}@{emailDomain}) will not be able to access
|
||||||
this project.
|
this project.
|
||||||
|
@ -17,14 +17,19 @@ const RepoConnectedSection = ({
|
|||||||
<div className="flex gap-4">
|
<div className="flex gap-4">
|
||||||
<div>^</div>
|
<div>^</div>
|
||||||
<div className="grow">
|
<div className="grow">
|
||||||
<Typography variant="small">{linkedRepo.full_name}</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
<Typography variant="small">Connected just now</Typography>
|
{linkedRepo.full_name}
|
||||||
|
</Typography>
|
||||||
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Connected just now
|
||||||
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Button
|
<Button
|
||||||
onClick={() => setDisconnectRepoDialogOpen(true)}
|
onClick={() => setDisconnectRepoDialogOpen(true)}
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
size="sm"
|
size="sm"
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
^ Disconnect
|
^ Disconnect
|
||||||
</Button>
|
</Button>
|
||||||
@ -39,7 +44,7 @@ const RepoConnectedSection = ({
|
|||||||
}}
|
}}
|
||||||
color="red"
|
color="red"
|
||||||
>
|
>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
Any data tied to your Git project may become misconfigured. Are you
|
Any data tied to your Git project may become misconfigured. Are you
|
||||||
sure you want to continue?
|
sure you want to continue?
|
||||||
</Typography>
|
</Typography>
|
||||||
|
@ -54,14 +54,18 @@ const SetupDomain = () => {
|
|||||||
className="flex flex-col gap-6 w-full"
|
className="flex flex-col gap-6 w-full"
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
<Typography variant="h5">Setup domain name</Typography>
|
<Typography variant="h5" placeholder={''}>
|
||||||
<Typography variant="small">
|
Setup domain name
|
||||||
|
</Typography>
|
||||||
|
<Typography variant="small" placeholder={''}>
|
||||||
Add your domain and setup redirects
|
Add your domain and setup redirects
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="w-auto">
|
<div className="w-auto">
|
||||||
<Typography variant="small">Domain name</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Domain name
|
||||||
|
</Typography>
|
||||||
<Input
|
<Input
|
||||||
type="text"
|
type="text"
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
@ -76,7 +80,7 @@ const SetupDomain = () => {
|
|||||||
|
|
||||||
{isValid && (
|
{isValid && (
|
||||||
<div>
|
<div>
|
||||||
<Typography>Primary domain</Typography>
|
<Typography placeholder={''}>Primary domain</Typography>
|
||||||
<div className="flex flex-col gap-3">
|
<div className="flex flex-col gap-3">
|
||||||
<Radio
|
<Radio
|
||||||
label={domainStr}
|
label={domainStr}
|
||||||
@ -108,6 +112,7 @@ const SetupDomain = () => {
|
|||||||
className="w-fit"
|
className="w-fit"
|
||||||
color={isValid ? 'blue' : 'gray'}
|
color={isValid ? 'blue' : 'gray'}
|
||||||
type="submit"
|
type="submit"
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
<i>^</i> Next
|
<i>^</i> Next
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -23,6 +23,7 @@ const WebhookCard = ({ webhookUrl, onDelete }: WebhookCardProps) => {
|
|||||||
navigator.clipboard.writeText(webhookUrl);
|
navigator.clipboard.writeText(webhookUrl);
|
||||||
toast.success('Copied to clipboard');
|
toast.success('Copied to clipboard');
|
||||||
}}
|
}}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
C
|
C
|
||||||
</Button>
|
</Button>
|
||||||
@ -32,6 +33,7 @@ const WebhookCard = ({ webhookUrl, onDelete }: WebhookCardProps) => {
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
setDeleteDialogOpen(true);
|
setDeleteDialogOpen(true);
|
||||||
}}
|
}}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
X
|
X
|
||||||
</Button>
|
</Button>
|
||||||
@ -48,7 +50,7 @@ const WebhookCard = ({ webhookUrl, onDelete }: WebhookCardProps) => {
|
|||||||
}}
|
}}
|
||||||
color="red"
|
color="red"
|
||||||
>
|
>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
Are you sure you want to delete the variable{' '}
|
Are you sure you want to delete the variable{' '}
|
||||||
<span className="bg-blue-100 p-0.5 rounded-sm">{webhookUrl}</span>?
|
<span className="bg-blue-100 p-0.5 rounded-sm">{webhookUrl}</span>?
|
||||||
</Typography>
|
</Typography>
|
||||||
|
@ -9,7 +9,7 @@ const AsyncSelect = React.forwardRef((props: SelectProps, ref: any) => {
|
|||||||
|
|
||||||
useEffect(() => setKey((preVal) => preVal + 1), [props]);
|
useEffect(() => setKey((preVal) => preVal + 1), [props]);
|
||||||
|
|
||||||
return <Select key={key} ref={ref} {...props} />;
|
return <Select key={key} ref={ref} {...props} placeholder={''} />;
|
||||||
});
|
});
|
||||||
|
|
||||||
AsyncSelect.displayName = 'AsyncSelect';
|
AsyncSelect.displayName = 'AsyncSelect';
|
||||||
|
@ -30,23 +30,31 @@ const ConfirmDialog = ({
|
|||||||
color,
|
color,
|
||||||
}: ConfirmDialogProp) => {
|
}: ConfirmDialogProp) => {
|
||||||
return (
|
return (
|
||||||
<Dialog open={open} handler={handleOpen}>
|
<Dialog open={open} handler={handleOpen} placeholder={''}>
|
||||||
<DialogHeader className="flex justify-between">
|
<DialogHeader className="flex justify-between" placeholder={''}>
|
||||||
<Typography variant="h6">{dialogTitle} </Typography>
|
<Typography variant="h6" placeholder={''}>
|
||||||
|
{dialogTitle}{' '}
|
||||||
|
</Typography>
|
||||||
<Button
|
<Button
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
onClick={handleOpen}
|
onClick={handleOpen}
|
||||||
className=" rounded-full"
|
className=" rounded-full"
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
X
|
X
|
||||||
</Button>
|
</Button>
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
<DialogBody>{children}</DialogBody>
|
<DialogBody placeholder={''}>{children}</DialogBody>
|
||||||
<DialogFooter className="flex justify-start gap-2">
|
<DialogFooter className="flex justify-start gap-2" placeholder={''}>
|
||||||
<Button variant="outlined" onClick={handleOpen}>
|
<Button variant="outlined" onClick={handleOpen} placeholder={''}>
|
||||||
Cancel
|
Cancel
|
||||||
</Button>
|
</Button>
|
||||||
<Button variant="gradient" color={color} onClick={handleConfirm}>
|
<Button
|
||||||
|
variant="gradient"
|
||||||
|
color={color}
|
||||||
|
onClick={handleConfirm}
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
{confirmButtonTitle}
|
{confirmButtonTitle}
|
||||||
</Button>
|
</Button>
|
||||||
</DialogFooter>
|
</DialogFooter>
|
||||||
|
@ -36,11 +36,17 @@ const ProjectSearch = () => {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<IconButton color="blue" className="rounded-full mr-2">
|
<IconButton
|
||||||
<Typography variant="h5">+</Typography>
|
color="blue"
|
||||||
|
className="rounded-full mr-2"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
|
<Typography variant="h5" placeholder={''}>
|
||||||
|
+
|
||||||
|
</Typography>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
<div className="mr-2 flex items-center">
|
<div className="mr-2 flex items-center">
|
||||||
<Typography>^</Typography>
|
<Typography placeholder={''}>^</Typography>
|
||||||
</div>
|
</div>
|
||||||
<div className="px-2 py-1 bg-blue-gray-50 rounded-lg flex items-center">
|
<div className="px-2 py-1 bg-blue-gray-50 rounded-lg flex items-center">
|
||||||
{user?.name && (
|
{user?.name && (
|
||||||
|
@ -28,7 +28,9 @@ const Projects = () => {
|
|||||||
<div className="flex p-5">
|
<div className="flex p-5">
|
||||||
<div className="grow">
|
<div className="grow">
|
||||||
<div className="flex gap-2 items-center">
|
<div className="flex gap-2 items-center">
|
||||||
<Typography variant="h4">Projects</Typography>
|
<Typography variant="h4" placeholder={''}>
|
||||||
|
Projects
|
||||||
|
</Typography>
|
||||||
<Chip
|
<Chip
|
||||||
className="bg-gray-300 rounded-full static"
|
className="bg-gray-300 rounded-full static"
|
||||||
value={projects.length}
|
value={projects.length}
|
||||||
@ -38,7 +40,7 @@ const Projects = () => {
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Link to="projects/create">
|
<Link to="projects/create">
|
||||||
<Button className="rounded-full" color="blue">
|
<Button className="rounded-full" color="blue" placeholder={''}>
|
||||||
Create project
|
Create project
|
||||||
</Button>
|
</Button>
|
||||||
</Link>
|
</Link>
|
||||||
|
@ -15,7 +15,11 @@ const CreateProject = () => {
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Link to={`/${orgSlug}`}>
|
<Link to={`/${orgSlug}`}>
|
||||||
<IconButton className="rounded-full" variant="outlined">
|
<IconButton
|
||||||
|
className="rounded-full"
|
||||||
|
variant="outlined"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
X
|
X
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Link>
|
</Link>
|
||||||
|
@ -74,18 +74,23 @@ const Id = () => {
|
|||||||
variant="outlined"
|
variant="outlined"
|
||||||
className="rounded-full"
|
className="rounded-full"
|
||||||
onClick={() => navigate(-1)}
|
onClick={() => navigate(-1)}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
{'<'}
|
{'<'}
|
||||||
</Button>
|
</Button>
|
||||||
<Typography variant="h3" className="grow">
|
<Typography variant="h3" className="grow" placeholder={''}>
|
||||||
{project?.name}
|
{project?.name}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Link to={repoUrl} target="_blank">
|
<Link to={repoUrl} target="_blank">
|
||||||
<Button className="rounded-full" variant="outlined">
|
<Button
|
||||||
|
className="rounded-full"
|
||||||
|
variant="outlined"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Open Repo
|
Open Repo
|
||||||
</Button>
|
</Button>
|
||||||
</Link>
|
</Link>
|
||||||
<Button className="rounded-full" color="blue">
|
<Button className="rounded-full" color="blue" placeholder={''}>
|
||||||
Go to app
|
Go to app
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
@ -98,34 +103,55 @@ const Id = () => {
|
|||||||
className:
|
className:
|
||||||
'bg-transparent border-b-2 border-gray-900 shadow-none rounded-none',
|
'bg-transparent border-b-2 border-gray-900 shadow-none rounded-none',
|
||||||
}}
|
}}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
<Link to="">
|
<Link to="">
|
||||||
<Tab value="" className={'p-2 cursor-pointer'}>
|
<Tab
|
||||||
|
value=""
|
||||||
|
className={'p-2 cursor-pointer'}
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Overview
|
Overview
|
||||||
</Tab>
|
</Tab>
|
||||||
</Link>
|
</Link>
|
||||||
<Link to="deployments">
|
<Link to="deployments">
|
||||||
<Tab value="deployments" className={'p-2 cursor-pointer'}>
|
<Tab
|
||||||
|
value="deployments"
|
||||||
|
className={'p-2 cursor-pointer'}
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Deployments
|
Deployments
|
||||||
</Tab>
|
</Tab>
|
||||||
</Link>
|
</Link>
|
||||||
<Link to="database">
|
<Link to="database">
|
||||||
<Tab value="database" className={'p-2 cursor-pointer'}>
|
<Tab
|
||||||
|
value="database"
|
||||||
|
className={'p-2 cursor-pointer'}
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Database
|
Database
|
||||||
</Tab>
|
</Tab>
|
||||||
</Link>
|
</Link>
|
||||||
<Link to="integrations">
|
<Link to="integrations">
|
||||||
<Tab value="integrations" className={'p-2 cursor-pointer'}>
|
<Tab
|
||||||
|
value="integrations"
|
||||||
|
className={'p-2 cursor-pointer'}
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Integrations
|
Integrations
|
||||||
</Tab>
|
</Tab>
|
||||||
</Link>
|
</Link>
|
||||||
<Link to="settings">
|
<Link to="settings">
|
||||||
<Tab value="settings" className={'p-2 cursor-pointer'}>
|
<Tab
|
||||||
|
value="settings"
|
||||||
|
className={'p-2 cursor-pointer'}
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Settings
|
Settings
|
||||||
</Tab>
|
</Tab>
|
||||||
</Link>
|
</Link>
|
||||||
</TabsHeader>
|
</TabsHeader>
|
||||||
<TabsBody>
|
<TabsBody placeholder={''}>
|
||||||
<Outlet context={{ project, onUpdate }} />
|
<Outlet context={{ project, onUpdate }} />
|
||||||
</TabsBody>
|
</TabsBody>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
@ -46,7 +46,7 @@ const CreateWithTemplate = () => {
|
|||||||
return (
|
return (
|
||||||
<div className="flex flex-col items-center">
|
<div className="flex flex-col items-center">
|
||||||
<div className="flex justify-between w-5/6 my-4 bg-gray-200 rounded-xl p-6 items-center">
|
<div className="flex justify-between w-5/6 my-4 bg-gray-200 rounded-xl p-6 items-center">
|
||||||
<Avatar variant="rounded" src="/gray.png" />
|
<Avatar variant="rounded" src="/gray.png" placeholder={''} />
|
||||||
<div className="grow px-2">{template?.name}</div>
|
<div className="grow px-2">{template?.name}</div>
|
||||||
<div>
|
<div>
|
||||||
<a href={GIT_TEMPLATE_LINK} target="_blank" rel="noreferrer">
|
<a href={GIT_TEMPLATE_LINK} target="_blank" rel="noreferrer">
|
||||||
|
@ -39,7 +39,12 @@ const Id = () => {
|
|||||||
custom domain.
|
custom domain.
|
||||||
</p>
|
</p>
|
||||||
<div className="my-2">
|
<div className="my-2">
|
||||||
<Button className="rounded-full" variant="outlined" size="sm">
|
<Button
|
||||||
|
className="rounded-full"
|
||||||
|
variant="outlined"
|
||||||
|
size="sm"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Setup domain
|
Setup domain
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
@ -51,14 +56,23 @@ const Id = () => {
|
|||||||
<div className="flex justify-center p-4 gap-2 my-5">
|
<div className="flex justify-center p-4 gap-2 my-5">
|
||||||
<div>
|
<div>
|
||||||
<Link to="/">
|
<Link to="/">
|
||||||
<Button className="rounded-full" variant="outlined">
|
<Button
|
||||||
|
className="rounded-full"
|
||||||
|
variant="outlined"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
^Back to projects
|
^Back to projects
|
||||||
</Button>
|
</Button>
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Link to={`/${orgSlug}/projects/${id}`}>
|
<Link to={`/${orgSlug}/projects/${id}`}>
|
||||||
<Button className="rounded-full" variant="gradient" color="blue">
|
<Button
|
||||||
|
className="rounded-full"
|
||||||
|
variant="gradient"
|
||||||
|
color="blue"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
View project
|
View project
|
||||||
</Button>
|
</Button>
|
||||||
</Link>
|
</Link>
|
||||||
|
@ -114,8 +114,10 @@ const CreateRepo = () => {
|
|||||||
return (
|
return (
|
||||||
<form onSubmit={handleSubmit(submitRepoHandler)}>
|
<form onSubmit={handleSubmit(submitRepoHandler)}>
|
||||||
<div className="mb-2">
|
<div className="mb-2">
|
||||||
<Typography variant="h6">Create a repository</Typography>
|
<Typography variant="h6" placeholder={''}>
|
||||||
<Typography color="gray">
|
Create a repository
|
||||||
|
</Typography>
|
||||||
|
<Typography color="gray" placeholder={''}>
|
||||||
The project will be cloned into this repository
|
The project will be cloned into this repository
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
@ -187,6 +189,7 @@ const CreateRepo = () => {
|
|||||||
type="submit"
|
type="submit"
|
||||||
disabled={isLoading}
|
disabled={isLoading}
|
||||||
loading={isLoading}
|
loading={isLoading}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
Deploy ^
|
Deploy ^
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -115,14 +115,17 @@ const DeploymentsTabPanel = () => {
|
|||||||
) : (
|
) : (
|
||||||
<div className="h-[50vh] bg-gray-100 flex rounded items-center justify-center">
|
<div className="h-[50vh] bg-gray-100 flex rounded items-center justify-center">
|
||||||
<div className="text-center">
|
<div className="text-center">
|
||||||
<Typography variant="h5">No deployments found</Typography>
|
<Typography variant="h5" placeholder={''}>
|
||||||
<Typography>
|
No deployments found
|
||||||
|
</Typography>
|
||||||
|
<Typography placeholder={''}>
|
||||||
Please change your search query or filters
|
Please change your search query or filters
|
||||||
</Typography>
|
</Typography>
|
||||||
<Button
|
<Button
|
||||||
className="rounded-full mt-5"
|
className="rounded-full mt-5"
|
||||||
color="white"
|
color="white"
|
||||||
onClick={handleResetFilters}
|
onClick={handleResetFilters}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
^ Reset filters
|
^ Reset filters
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -110,10 +110,14 @@ const OverviewTabPanel = () => {
|
|||||||
<div className="grid grid-cols-5">
|
<div className="grid grid-cols-5">
|
||||||
<div className="col-span-3 p-2">
|
<div className="col-span-3 p-2">
|
||||||
<div className="flex items-center gap-2 p-2 ">
|
<div className="flex items-center gap-2 p-2 ">
|
||||||
<Avatar src={project.icon || '/gray.png'} variant="rounded" />
|
<Avatar
|
||||||
|
src={project.icon || '/gray.png'}
|
||||||
|
variant="rounded"
|
||||||
|
placeholder={''}
|
||||||
|
/>
|
||||||
<div className="grow">
|
<div className="grow">
|
||||||
<Typography>{project.name}</Typography>
|
<Typography placeholder={''}>{project.name}</Typography>
|
||||||
<Typography variant="small" color="gray">
|
<Typography variant="small" color="gray" placeholder={''}>
|
||||||
{project.subDomain}
|
{project.subDomain}
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
@ -144,6 +148,7 @@ const OverviewTabPanel = () => {
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
navigate('settings/domains');
|
navigate('settings/domains');
|
||||||
}}
|
}}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
Setup
|
Setup
|
||||||
</Button>
|
</Button>
|
||||||
@ -176,7 +181,9 @@ const OverviewTabPanel = () => {
|
|||||||
</div>
|
</div>
|
||||||
<div className="col-span-2 p-2">
|
<div className="col-span-2 p-2">
|
||||||
<div className="flex justify-between">
|
<div className="flex justify-between">
|
||||||
<Typography variant="h6">Activity</Typography>
|
<Typography variant="h6" placeholder={''}>
|
||||||
|
Activity
|
||||||
|
</Typography>
|
||||||
<button className="text-xs bg-gray-300 rounded-full p-2">
|
<button className="text-xs bg-gray-300 rounded-full p-2">
|
||||||
See all
|
See all
|
||||||
</button>
|
</button>
|
||||||
|
@ -59,12 +59,14 @@ const SettingsTabPanel = () => {
|
|||||||
indicatorProps={{
|
indicatorProps={{
|
||||||
className: 'bg-gray-900/10 shadow-none !text-gray-900',
|
className: 'bg-gray-900/10 shadow-none !text-gray-900',
|
||||||
}}
|
}}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
{tabsData.map(({ label, value, icon }) => (
|
{tabsData.map(({ label, value, icon }) => (
|
||||||
<Link key={value} to={value === 'general' ? '' : value}>
|
<Link key={value} to={value === 'general' ? '' : value}>
|
||||||
<Tab
|
<Tab
|
||||||
value={value === 'general' ? '' : `/${value}`}
|
value={value === 'general' ? '' : `/${value}`}
|
||||||
className="flex justify-start"
|
className="flex justify-start"
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
<div className="flex gap-2">
|
<div className="flex gap-2">
|
||||||
<div>{icon}</div>
|
<div>{icon}</div>
|
||||||
@ -74,7 +76,7 @@ const SettingsTabPanel = () => {
|
|||||||
</Link>
|
</Link>
|
||||||
))}
|
))}
|
||||||
</TabsHeader>
|
</TabsHeader>
|
||||||
<TabsBody className="col-span-2">
|
<TabsBody className="col-span-2" placeholder={''}>
|
||||||
<Outlet context={{ project, onUpdate }} />
|
<Outlet context={{ project, onUpdate }} />
|
||||||
</TabsBody>
|
</TabsBody>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
@ -59,9 +59,16 @@ const Domains = () => {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="flex justify-between p-2">
|
<div className="flex justify-between p-2">
|
||||||
<Typography variant="h3">Domain</Typography>
|
<Typography variant="h3" placeholder={''}>
|
||||||
|
Domain
|
||||||
|
</Typography>
|
||||||
<Link to="add">
|
<Link to="add">
|
||||||
<Button color="blue" variant="outlined" className="rounded-full">
|
<Button
|
||||||
|
color="blue"
|
||||||
|
variant="outlined"
|
||||||
|
className="rounded-full"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
<i>^</i> Add domain
|
<i>^</i> Add domain
|
||||||
</Button>
|
</Button>
|
||||||
</Link>
|
</Link>
|
||||||
|
@ -133,8 +133,14 @@ export const EnvironmentVariablesTabPanel = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Typography variant="h6">Environment variables</Typography>
|
<Typography variant="h6" placeholder={''}>
|
||||||
<Typography variant="small" className="font-medium text-gray-800">
|
Environment variables
|
||||||
|
</Typography>
|
||||||
|
<Typography
|
||||||
|
variant="small"
|
||||||
|
className="font-medium text-gray-800"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
A new deployment is required for your changes to take effect.
|
A new deployment is required for your changes to take effect.
|
||||||
</Typography>
|
</Typography>
|
||||||
<div className="bg-gray-300 rounded-lg p-2">
|
<div className="bg-gray-300 rounded-lg p-2">
|
||||||
@ -145,7 +151,7 @@ export const EnvironmentVariablesTabPanel = () => {
|
|||||||
+ Create new variable
|
+ Create new variable
|
||||||
</div>
|
</div>
|
||||||
<Collapse open={createNewVariable}>
|
<Collapse open={createNewVariable}>
|
||||||
<Card className="bg-white p-2">
|
<Card className="bg-white p-2" placeholder={''}>
|
||||||
<form onSubmit={handleSubmit(createEnvironmentVariablesHandler)}>
|
<form onSubmit={handleSubmit(createEnvironmentVariablesHandler)}>
|
||||||
{fields.map((field, index) => {
|
{fields.map((field, index) => {
|
||||||
return (
|
return (
|
||||||
@ -168,11 +174,12 @@ export const EnvironmentVariablesTabPanel = () => {
|
|||||||
value: '',
|
value: '',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
+ Add variable
|
+ Add variable
|
||||||
</Button>
|
</Button>
|
||||||
{/* TODO: Implement import environment varible functionality */}
|
{/* TODO: Implement import environment varible functionality */}
|
||||||
<Button variant="outlined" size="sm" disabled>
|
<Button variant="outlined" size="sm" disabled placeholder={''}>
|
||||||
^ Import .env
|
^ Import .env
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
@ -205,7 +212,7 @@ export const EnvironmentVariablesTabPanel = () => {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="p-2">
|
<div className="p-2">
|
||||||
<Button size="lg" color="blue" type="submit">
|
<Button size="lg" color="blue" type="submit" placeholder={''}>
|
||||||
Save changes
|
Save changes
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -121,8 +121,14 @@ const GeneralTabPanel = () => {
|
|||||||
}
|
}
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<Typography variant="h6">Project info</Typography>
|
<Typography variant="h6" placeholder={''}>
|
||||||
<Typography variant="small" className="font-medium text-gray-800">
|
Project info
|
||||||
|
</Typography>
|
||||||
|
<Typography
|
||||||
|
variant="small"
|
||||||
|
className="font-medium text-gray-800"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
App name
|
App name
|
||||||
</Typography>
|
</Typography>
|
||||||
<Input
|
<Input
|
||||||
@ -132,7 +138,11 @@ const GeneralTabPanel = () => {
|
|||||||
size="md"
|
size="md"
|
||||||
{...register('appName')}
|
{...register('appName')}
|
||||||
/>
|
/>
|
||||||
<Typography variant="small" className="font-medium text-gray-800">
|
<Typography
|
||||||
|
variant="small"
|
||||||
|
className="font-medium text-gray-800"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Description (Optional)
|
Description (Optional)
|
||||||
</Typography>
|
</Typography>
|
||||||
<Input
|
<Input
|
||||||
@ -141,7 +151,11 @@ const GeneralTabPanel = () => {
|
|||||||
size="md"
|
size="md"
|
||||||
{...register('description')}
|
{...register('description')}
|
||||||
/>
|
/>
|
||||||
<Typography variant="small" className="font-medium text-gray-800">
|
<Typography
|
||||||
|
variant="small"
|
||||||
|
className="font-medium text-gray-800"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Project ID
|
Project ID
|
||||||
</Typography>
|
</Typography>
|
||||||
<Input
|
<Input
|
||||||
@ -158,13 +172,16 @@ const GeneralTabPanel = () => {
|
|||||||
size="sm"
|
size="sm"
|
||||||
className="mt-1"
|
className="mt-1"
|
||||||
disabled={!updateProjectFormState.isDirty}
|
disabled={!updateProjectFormState.isDirty}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
Save
|
Save
|
||||||
</Button>
|
</Button>
|
||||||
</form>
|
</form>
|
||||||
<div className="mb-1">
|
<div className="mb-1">
|
||||||
<Typography variant="h6">Transfer project</Typography>
|
<Typography variant="h6" placeholder={''}>
|
||||||
<Typography variant="small">
|
Transfer project
|
||||||
|
</Typography>
|
||||||
|
<Typography variant="small" placeholder={''}>
|
||||||
Transfer this app to your personal account or a team you are a member
|
Transfer this app to your personal account or a team you are a member
|
||||||
of.
|
of.
|
||||||
<Link to="" className="text-blue-500">
|
<Link to="" className="text-blue-500">
|
||||||
@ -177,7 +194,11 @@ const GeneralTabPanel = () => {
|
|||||||
setOpenTransferDialog(!openTransferDialog);
|
setOpenTransferDialog(!openTransferDialog);
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<Typography variant="small" className="font-medium text-gray-800">
|
<Typography
|
||||||
|
variant="small"
|
||||||
|
className="font-medium text-gray-800"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Choose team
|
Choose team
|
||||||
</Typography>
|
</Typography>
|
||||||
<Controller
|
<Controller
|
||||||
@ -204,6 +225,7 @@ const GeneralTabPanel = () => {
|
|||||||
className="mt-1"
|
className="mt-1"
|
||||||
disabled={!formState.isValid}
|
disabled={!formState.isValid}
|
||||||
type="submit"
|
type="submit"
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
Transfer
|
Transfer
|
||||||
</Button>
|
</Button>
|
||||||
@ -216,15 +238,17 @@ const GeneralTabPanel = () => {
|
|||||||
handleConfirm={handleTransferProject}
|
handleConfirm={handleTransferProject}
|
||||||
color="blue"
|
color="blue"
|
||||||
>
|
>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
Upon confirmation, your project {project.name} will be transferred
|
Upon confirmation, your project {project.name} will be transferred
|
||||||
from {project.organization.name} to {selectedUserOrgName}.
|
from {project.organization.name} to {selectedUserOrgName}.
|
||||||
</Typography>
|
</Typography>
|
||||||
</ConfirmDialog>
|
</ConfirmDialog>
|
||||||
</div>
|
</div>
|
||||||
<div className="mb-1">
|
<div className="mb-1">
|
||||||
<Typography variant="h6">Delete project</Typography>
|
<Typography variant="h6" placeholder={''}>
|
||||||
<Typography variant="small">
|
Delete project
|
||||||
|
</Typography>
|
||||||
|
<Typography variant="small" placeholder={''}>
|
||||||
The project will be permanently deleted, including its deployments and
|
The project will be permanently deleted, including its deployments and
|
||||||
domains. This action is irreversible and can not be undone.
|
domains. This action is irreversible and can not be undone.
|
||||||
</Typography>
|
</Typography>
|
||||||
@ -233,6 +257,7 @@ const GeneralTabPanel = () => {
|
|||||||
size="sm"
|
size="sm"
|
||||||
color="red"
|
color="red"
|
||||||
onClick={handleDeleteProjectDialog}
|
onClick={handleDeleteProjectDialog}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
^ Delete project
|
^ Delete project
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -100,13 +100,15 @@ const GitTabPanel = () => {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="mb-2 p-2">
|
<div className="mb-2 p-2">
|
||||||
<Typography variant="h6" className="text-black">
|
<Typography variant="h6" className="text-black" placeholder={''}>
|
||||||
Git repository
|
Git repository
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|
||||||
<div className="flex justify-between mt-4">
|
<div className="flex justify-between mt-4">
|
||||||
<div>
|
<div>
|
||||||
<Typography variant="small">Pull request comments</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Pull request comments
|
||||||
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Switch crossOrigin={undefined} defaultChecked />
|
<Switch crossOrigin={undefined} defaultChecked />
|
||||||
@ -115,7 +117,9 @@ const GitTabPanel = () => {
|
|||||||
|
|
||||||
<div className="flex justify-between">
|
<div className="flex justify-between">
|
||||||
<div>
|
<div>
|
||||||
<Typography variant="small">Commit comments</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Commit comments
|
||||||
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Switch crossOrigin={undefined} />
|
<Switch crossOrigin={undefined} />
|
||||||
@ -125,21 +129,23 @@ const GitTabPanel = () => {
|
|||||||
|
|
||||||
<form onSubmit={handleSubmitProdBranch(updateProdBranchHandler)}>
|
<form onSubmit={handleSubmitProdBranch(updateProdBranchHandler)}>
|
||||||
<div className="mb-2 p-2">
|
<div className="mb-2 p-2">
|
||||||
<Typography variant="h6" className="text-black">
|
<Typography variant="h6" className="text-black" placeholder={''}>
|
||||||
Production branch
|
Production branch
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
By default, each commit pushed to the{' '}
|
By default, each commit pushed to the{' '}
|
||||||
<span className="font-bold">{project.prodBranch}</span> branch
|
<span className="font-bold">{project.prodBranch}</span> branch
|
||||||
initiates a production deployment. You can opt for a different
|
initiates a production deployment. You can opt for a different
|
||||||
branch for deployment in the settings.
|
branch for deployment in the settings.
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="small">Branch name</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Branch name
|
||||||
|
</Typography>
|
||||||
<Input
|
<Input
|
||||||
crossOrigin={undefined}
|
crossOrigin={undefined}
|
||||||
{...registerProdBranch('prodBranch')}
|
{...registerProdBranch('prodBranch')}
|
||||||
/>
|
/>
|
||||||
<Button size="sm" className="mt-1" type="submit">
|
<Button size="sm" className="mt-1" type="submit" placeholder={''}>
|
||||||
Save
|
Save
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
@ -147,23 +153,25 @@ const GitTabPanel = () => {
|
|||||||
|
|
||||||
<form onSubmit={handleSubmitWebhooks(updateWebhooksHandler)}>
|
<form onSubmit={handleSubmitWebhooks(updateWebhooksHandler)}>
|
||||||
<div className="mb-2 p-2">
|
<div className="mb-2 p-2">
|
||||||
<Typography variant="h6" className="text-black">
|
<Typography variant="h6" className="text-black" placeholder={''}>
|
||||||
Deploy webhooks
|
Deploy webhooks
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="small">
|
<Typography variant="small" placeholder={''}>
|
||||||
Webhooks configured to trigger when there is a change in a
|
Webhooks configured to trigger when there is a change in a
|
||||||
project's build or deployment status.
|
project's build or deployment status.
|
||||||
</Typography>
|
</Typography>
|
||||||
<div className="flex gap-1">
|
<div className="flex gap-1">
|
||||||
<div className="grow">
|
<div className="grow">
|
||||||
<Typography variant="small">Webhook URL</Typography>
|
<Typography variant="small" placeholder={''}>
|
||||||
|
Webhook URL
|
||||||
|
</Typography>
|
||||||
<Input
|
<Input
|
||||||
crossOrigin={undefined}
|
crossOrigin={undefined}
|
||||||
{...registerWebhooks('webhookUrl')}
|
{...registerWebhooks('webhookUrl')}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="self-end">
|
<div className="self-end">
|
||||||
<Button size="sm" type="submit">
|
<Button size="sm" type="submit" placeholder={''}>
|
||||||
Save
|
Save
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -75,7 +75,9 @@ const MembersTabPanel = () => {
|
|||||||
<div className="p-2 mb-20">
|
<div className="p-2 mb-20">
|
||||||
<div className="flex justify-between mb-2">
|
<div className="flex justify-between mb-2">
|
||||||
<div className="flex">
|
<div className="flex">
|
||||||
<Typography variant="h6">Members</Typography>
|
<Typography variant="h6" placeholder={''}>
|
||||||
|
Members
|
||||||
|
</Typography>
|
||||||
<div>
|
<div>
|
||||||
<Chip
|
<Chip
|
||||||
className="normal-case ml-3 font-normal"
|
className="normal-case ml-3 font-normal"
|
||||||
@ -88,6 +90,7 @@ const MembersTabPanel = () => {
|
|||||||
<Button
|
<Button
|
||||||
size="sm"
|
size="sm"
|
||||||
onClick={() => setAddMemberDialogOpen((preVal) => !preVal)}
|
onClick={() => setAddMemberDialogOpen((preVal) => !preVal)}
|
||||||
|
placeholder={''}
|
||||||
>
|
>
|
||||||
+ Add member
|
+ Add member
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -39,8 +39,10 @@ const Config = () => {
|
|||||||
return (
|
return (
|
||||||
<div className="flex flex-col gap-6 w-full">
|
<div className="flex flex-col gap-6 w-full">
|
||||||
<div>
|
<div>
|
||||||
<Typography variant="h5">Configure DNS</Typography>
|
<Typography variant="h5" placeholder={''}>
|
||||||
<Typography variant="small">
|
Configure DNS
|
||||||
|
</Typography>
|
||||||
|
<Typography variant="small" placeholder={''}>
|
||||||
Add the following records to your domain.
|
Add the following records to your domain.
|
||||||
<a href="https://www.namecheap.com/" target="_blank" rel="noreferrer">
|
<a href="https://www.namecheap.com/" target="_blank" rel="noreferrer">
|
||||||
<span className="underline">Go to NameCheap</span> ^
|
<span className="underline">Go to NameCheap</span> ^
|
||||||
@ -72,7 +74,12 @@ const Config = () => {
|
|||||||
<i>^</i>It can take up to 48 hours for these updates to reflect
|
<i>^</i>It can take up to 48 hours for these updates to reflect
|
||||||
globally.
|
globally.
|
||||||
</Alert>
|
</Alert>
|
||||||
<Button className="w-fit" color="blue" onClick={handleSubmitDomain}>
|
<Button
|
||||||
|
className="w-fit"
|
||||||
|
color="blue"
|
||||||
|
onClick={handleSubmitDomain}
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
Finish <i>{'>'}</i>
|
Finish <i>{'>'}</i>
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -30,9 +30,15 @@ const AddDomain = () => {
|
|||||||
return (
|
return (
|
||||||
<div className="p-4">
|
<div className="p-4">
|
||||||
<div className="flex justify-between">
|
<div className="flex justify-between">
|
||||||
<Typography variant="h3">Add Domain</Typography>
|
<Typography variant="h3" placeholder={''}>
|
||||||
|
Add Domain
|
||||||
|
</Typography>
|
||||||
<Link to={`/${orgSlug}/projects/${id}`}>
|
<Link to={`/${orgSlug}/projects/${id}`}>
|
||||||
<IconButton className="rounded-full" variant="outlined">
|
<IconButton
|
||||||
|
className="rounded-full"
|
||||||
|
variant="outlined"
|
||||||
|
placeholder={''}
|
||||||
|
>
|
||||||
X
|
X
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Link>
|
</Link>
|
||||||
@ -42,7 +48,7 @@ const AddDomain = () => {
|
|||||||
<div className="bg-blue-gray-50 rounded-lg mt-6 mb-10">
|
<div className="bg-blue-gray-50 rounded-lg mt-6 mb-10">
|
||||||
<div className="flex justify-start gap-3 p-5">
|
<div className="flex justify-start gap-3 p-5">
|
||||||
<i className="bg-gray-100 w-12 h-12 rounded-lg">^</i>
|
<i className="bg-gray-100 w-12 h-12 rounded-lg">^</i>
|
||||||
<Typography className="my-auto w-1/3" variant="h5">
|
<Typography className="my-auto w-1/3" variant="h5" placeholder={''}>
|
||||||
Project Name
|
Project Name
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user