Skip to content

Commit 7cb6e23

Browse files
committed
Introduce deployment preview
1 parent 76a870b commit 7cb6e23

File tree

2 files changed

+39
-11
lines changed

2 files changed

+39
-11
lines changed

web/src/components/modal/index.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,32 @@ export const ModalContent = React.forwardRef<
2929
noPadding?: boolean;
3030
noCloseButton?: boolean;
3131
noBg?: boolean;
32+
width?: 'full' | 'lg';
3233
}
3334
>(
3435
(
35-
{ className, children, noPadding, noCloseButton, noBg, ...properties },
36+
{
37+
className,
38+
children,
39+
noPadding,
40+
noCloseButton,
41+
noBg,
42+
width,
43+
...properties
44+
},
3645
reference
3746
) => (
3847
<Dialog.Portal>
3948
<ModalOverlay />
4049
<Dialog.Content
4150
ref={reference}
4251
className={clsx(
43-
'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border shadow-lg duration-200 sm:rounded-lg',
52+
'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed left-1/2 top-1/2 z-50 grid -translate-x-1/2 -translate-y-1/2 gap-4 border shadow-lg duration-200 sm:rounded-lg',
4453
noPadding ? '' : 'p-6',
4554
noBg ? '' : 'bg-default',
55+
width === 'full'
56+
? 'w-full max-w-[90vw]'
57+
: 'w-full max-w-lg',
4658
className
4759
)}
4860
{...properties}

web/src/gui/deployments/DeploymentPreviewCover.tsx

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { FC } from 'react';
22

33
import { useDeploymentPreviews, useLastPreviewDeployment } from '@/api';
4+
import { ModalContent, ModalRoot, ModalTrigger } from '@/components';
45

56
export const DeploymentPreviewCover: FC<{
67
siteId: string;
@@ -16,15 +17,30 @@ export const DeploymentPreviewCover: FC<{
1617

1718
return (
1819
<div className="flex">
19-
<div className="aspect-video h-fit w-full max-w-sm overflow-hidden rounded-md border border-gray-200 bg-gray-100">
20-
{previews && previews.length > 0 && (
21-
<img
22-
alt="Deployment Preview"
23-
src={previews[0].preview_path}
24-
className="size-full object-cover"
25-
/>
26-
)}
27-
</div>
20+
<ModalRoot>
21+
<div className="aspect-video h-fit w-full max-w-sm overflow-hidden rounded-md border border-gray-200 bg-gray-100">
22+
<ModalTrigger>
23+
{previews && previews.length > 0 && (
24+
<img
25+
alt="Deployment Preview"
26+
src={previews[0].preview_path}
27+
className="size-full object-cover"
28+
/>
29+
)}
30+
</ModalTrigger>
31+
</div>
32+
<ModalContent width="full" className="top-0 flex" noPadding>
33+
<div className="size-full max-h-[90vh] overflow-hidden rounded-md">
34+
<div className="h-full overflow-y-scroll">
35+
<img
36+
alt="Deployment Preview"
37+
src={previews[0].full_preview_path}
38+
className="h-auto w-full"
39+
/>
40+
</div>
41+
</div>
42+
</ModalContent>
43+
</ModalRoot>
2844
{/* {previews &&
2945
previews.length > 0 &&
3046
previews[0].full_preview_path && (

0 commit comments

Comments
 (0)