Merge branch 'main' of github.com:ga1az/OpenCut into fix-docker-setup
This commit is contained in:
@ -13,7 +13,7 @@ if (!process.env.DATABASE_URL) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
schema: "./src/lib/db/schema.ts",
|
schema: "../../packages/db/src/schema.ts",
|
||||||
dialect: "postgresql",
|
dialect: "postgresql",
|
||||||
dbCredentials: {
|
dbCredentials: {
|
||||||
url: process.env.DATABASE_URL,
|
url: process.env.DATABASE_URL,
|
||||||
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
@ -16,6 +16,35 @@ export const metadata: Metadata = {
|
|||||||
title: "OpenCut",
|
title: "OpenCut",
|
||||||
description:
|
description:
|
||||||
"A simple but powerful video editor that gets the job done. In your browser.",
|
"A simple but powerful video editor that gets the job done. In your browser.",
|
||||||
|
openGraph: {
|
||||||
|
title: "OpenCut",
|
||||||
|
description:
|
||||||
|
"A simple but powerful video editor that gets the job done. In your browser.",
|
||||||
|
url: "https://opencut.app",
|
||||||
|
siteName: "OpenCut",
|
||||||
|
locale: "en_US",
|
||||||
|
type: "website",
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
url: "https://opencut.app/opengraph-image.jpg",
|
||||||
|
width: 1200,
|
||||||
|
height: 630,
|
||||||
|
alt: "OpenCut",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
twitter: {
|
||||||
|
card: "summary_large_image",
|
||||||
|
title: "OpenCut",
|
||||||
|
description:
|
||||||
|
"A simple but powerful video editor that gets the job done. In your browser.",
|
||||||
|
creator: "@opencutapp",
|
||||||
|
images: ["/opengraph-image.jpg"],
|
||||||
|
},
|
||||||
|
robots: {
|
||||||
|
index: true,
|
||||||
|
follow: true,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
|
@ -221,7 +221,7 @@ export function Timeline() {
|
|||||||
const clipLeft = clip.startTime * 50 * zoomLevel;
|
const clipLeft = clip.startTime * 50 * zoomLevel;
|
||||||
const clipTop = trackIdx * 60;
|
const clipTop = trackIdx * 60;
|
||||||
const clipBottom = clipTop + 60;
|
const clipBottom = clipTop + 60;
|
||||||
const clipRight = clipLeft + clipWidth;
|
const clipRight = clipLeft + 60; // Set a fixed width for time display
|
||||||
if (
|
if (
|
||||||
bx1 < clipRight &&
|
bx1 < clipRight &&
|
||||||
bx2 > clipLeft &&
|
bx2 > clipLeft &&
|
||||||
@ -602,15 +602,16 @@ export function Timeline() {
|
|||||||
<div className="w-px h-6 bg-border mx-1" />
|
<div className="w-px h-6 bg-border mx-1" />
|
||||||
|
|
||||||
{/* Time Display */}
|
{/* Time Display */}
|
||||||
<div className="text-xs text-muted-foreground font-mono px-2">
|
<div className="text-xs text-muted-foreground font-mono px-2"
|
||||||
{Math.floor(currentTime * 10) / 10}s /{" "}
|
style={{ minWidth: '18ch', textAlign: 'center' }}
|
||||||
{Math.floor(duration * 10) / 10}s
|
>
|
||||||
|
{currentTime.toFixed(1)}s / {duration.toFixed(1)}s
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="w-px h-6 bg-border mx-1" />
|
|
||||||
|
|
||||||
{/* Test Clip Button - for debugging */}
|
{/* Test Clip Button - for debugging */}
|
||||||
{tracks.length === 0 && (
|
{tracks.length === 0 && (
|
||||||
|
<>
|
||||||
|
<div className="w-px h-6 bg-border mx-1" />
|
||||||
<Tooltip>
|
<Tooltip>
|
||||||
<TooltipTrigger asChild>
|
<TooltipTrigger asChild>
|
||||||
<Button
|
<Button
|
||||||
@ -634,6 +635,7 @@ export function Timeline() {
|
|||||||
</TooltipTrigger>
|
</TooltipTrigger>
|
||||||
<TooltipContent>Add a test clip to try playback</TooltipContent>
|
<TooltipContent>Add a test clip to try playback</TooltipContent>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<div className="w-px h-6 bg-border mx-1" />
|
<div className="w-px h-6 bg-border mx-1" />
|
||||||
|
Reference in New Issue
Block a user