This commit is contained in:
ct
2025-07-07 21:17:00 +08:00
parent 23fa3aec04
commit 6a66f96d22
31 changed files with 227 additions and 232 deletions

View File

@@ -174,7 +174,7 @@ const Editor = () => {
return (
<>
<div className="relative mx-auto flex min-h-[98vh] flex-col space-y-2 pt-4" style={{ width: `${responsiveWidth}px` }}>
<div className="relative mx-auto flex min-h-[93vh] flex-col space-y-2 pt-4" style={{ width: `${responsiveWidth}px` }}>
<EditSidebar isOpen={isEditSidebarOpen} onClose={handleEditClose} />
<EditNavSidebar isOpen={isEditNavSidebarOpen} onClose={handleEditNavClose} />
<TextSidebar isOpen={isTextSidebarOpen} onClose={handleTextSidebarClose} />
@@ -192,7 +192,7 @@ const Editor = () => {
<div className="space-y-3">
<div>
<div className="relative mb-3 flex justify-center">
<img width="180" height="180" src="https://cdn.memeaigen.com/landing/dancing-potato.gif"></img>
<img width="180" height="180" src="https://cdn.memefa.st/landing/dancing-potato.gif"></img>
</div>
<div className="w-full space-y-2 text-center">

View File

@@ -41,7 +41,7 @@ const FONTS = {
weights: [400],
styles: ['normal'],
description: 'Decorative display font',
preview: 'MEMEAIGEN.COM',
preview: 'memefa.st',
},
arial: {
name: 'Arial',

View File

@@ -2,9 +2,9 @@ const sampleTimelineElements = [
{
id: '1',
type: 'video',
source_webm: 'https://cdn.memeaigen.com/g1/webm/they-not-like-us-oiia-cat-version.webm',
source_mov: 'https://cdn.memeaigen.com/g1/mov/they-not-like-us-oiia-cat-version.mov',
poster: 'https://cdn.memeaigen.com/g1/webp/they-not-like-us-oiia-cat-version.webp',
source_webm: 'https://cdn.memefa.st/g1/webm/they-not-like-us-oiia-cat-version.webm',
source_mov: 'https://cdn.memefa.st/g1/mov/they-not-like-us-oiia-cat-version.mov',
poster: 'https://cdn.memefa.st/g1/webp/they-not-like-us-oiia-cat-version.webp',
name: 'They not like us cat',
startTime: 0,
layer: 0,
@@ -19,9 +19,9 @@ const sampleTimelineElements = [
{
id: '2',
type: 'video',
source_webm: 'https://cdn.memeaigen.com/g1/webm/sad-cat.webm',
source_mov: 'https://cdn.memeaigen.com/g1/mov/sad-cat.mov',
poster: 'https://cdn.memeaigen.com/g1/webp/sad-cat.webp',
source_webm: 'https://cdn.memefa.st/g1/webm/sad-cat.webm',
source_mov: 'https://cdn.memefa.st/g1/mov/sad-cat.mov',
poster: 'https://cdn.memefa.st/g1/webp/sad-cat.webp',
name: 'Sad cat meme',
startTime: 6,
layer: 0,
@@ -36,9 +36,9 @@ const sampleTimelineElements = [
{
id: '3',
type: 'video',
source_webm: 'https://cdn.memeaigen.com/g1/webm/este-cat-dance.webm',
source_mov: 'https://cdn.memeaigen.com/g1/mov/este-cat-dance.mov',
poster: 'https://cdn.memeaigen.com/g1/webp/este-cat-dance.webp',
source_webm: 'https://cdn.memefa.st/g1/webm/este-cat-dance.webm',
source_mov: 'https://cdn.memefa.st/g1/mov/este-cat-dance.mov',
poster: 'https://cdn.memefa.st/g1/webp/este-cat-dance.webp',
name: 'Este cat dance',
startTime: 2,
layer: 1,
@@ -95,7 +95,7 @@ const sampleTimelineElements = [
{
id: '6',
type: 'image',
source: 'https://cdn.memeaigen.com/g1/webp/este-cat-dance.webp',
source: 'https://cdn.memefa.st/g1/webp/este-cat-dance.webp',
name: 'Este cat dance',
startTime: 0,
layer: 5,

View File

@@ -213,7 +213,7 @@ const useVideoExport = ({ timelineElements, dimensions, totalDuration, watermark
stage.add(layer);
const watermarkText = new Konva.Text({
text: 'MEMEAIGEN.COM',
text: 'memefa.st',
x: dimensions.width / 2,
y: dimensions.height / 2 + dimensions.height * 0.2,
fontSize: WATERMARK_CONFIG.fontSize,
@@ -692,7 +692,7 @@ const useVideoExport = ({ timelineElements, dimensions, totalDuration, watermark
const blob = new Blob([data.buffer], { type: 'video/mp4' });
const epochTimestamp = Date.now();
const fileName = `memeaigen-${epochTimestamp}.mp4`;
const fileName = `memefast-${epochTimestamp}.mp4`;
// Store the blob and filename in state instead of auto-downloading
setVideoBlob(blob);

View File

@@ -277,8 +277,9 @@ const VideoPreview = ({
}}
>
<Button
variant="secondary"
id="open-text-editor"
className="h-16 w-16 rounded-full border shadow-sm"
className="h-16 w-16 rounded-full shadow-xl"
onClick={() => {
handleElementSelect(element.id);
onOpenTextSidebar();
@@ -330,7 +331,7 @@ const VideoPreview = ({
{watermarked && (
<Text
key={`watermark-${fontsLoaded}`}
text="MEMEAIGEN.COM"
text="memefa.st"
x={dimensions.width / 2}
y={dimensions.height / 2 + dimensions.height * 0.2}
fontSize={WATERMARK_CONFIG.fontSize}

View File

@@ -26,7 +26,7 @@ export default function EditNavSidebar({ isOpen, onClose }) {
<SheetContent side="left" className="w-[220px] overflow-y-auto">
<SheetHeader>
<SheetTitle className="flex items-center gap-3">
<div className="font-display ml-0 text-lg tracking-wide md:ml-3 md:text-xl">MEMEAIGEN</div>
<div className="font-display ml-0 text-lg tracking-wide md:ml-3 md:text-xl">MEMEFAST</div>
</SheetTitle>
</SheetHeader>

View File

@@ -1,9 +1,6 @@
import { Button } from '@/components/ui/button';
import { cn } from '@/lib/utils';
import { useMitt } from '@/plugins/MittContext';
import CartIcon from '@/reusables/cart-icon';
import useLocalSettingsStore from '@/stores/localSettingsStore';
import { Menu } from 'lucide-react';
const EditorHeader = ({ className = '', onNavClick = () => {}, isNavActive = false }) => {
const { getSetting } = useLocalSettingsStore();
@@ -15,28 +12,33 @@ const EditorHeader = ({ className = '', onNavClick = () => {}, isNavActive = fal
};
return (
<div className={cn('flex w-full items-center justify-between rounded-xl bg-white p-2 shadow-sm dark:bg-neutral-800', className)}>
<Button onClick={onNavClick} variant="outline" size="icon" className="invisible rounded">
<Menu className="h-8 w-8" />
</Button>
<div className={cn('flex w-full items-center justify-center', className)}>
<h1 className="font-display ml-0 text-lg tracking-wide md:ml-3 md:text-xl">
<span className="text-foreground">MEME</span>
<span className="text-muted-foreground">AI</span>
<span className="text-foreground">GEN</span>
<span className="text-muted-foreground">FAST</span>
</h1>
<Button
variant="outline"
className="invisible inline-flex gap-1 rounded"
onClick={() => {
openUpgradeSheet();
}}
>
{/* <span className="text-sm font-semibold">0</span> */}
<CartIcon className="h-8 w-8" />
</Button>
</div>
// <div className={cn('flex w-full items-center justify-between rounded-xl bg-white p-2 shadow-sm dark:bg-neutral-800', className)}>
// <Button onClick={onNavClick} variant="outline" size="icon" className="invisible rounded">
// <Menu className="h-8 w-8" />
// </Button>
// <h1 className="font-display ml-0 text-lg tracking-wide md:ml-3 md:text-xl">
// <span className="text-foreground">MEME</span>
// <span className="text-muted-foreground">FAST</span>
// </h1>
// <Button
// variant="outline"
// className="invisible inline-flex gap-1 rounded"
// onClick={() => {
// openUpgradeSheet();
// }}
// >
// {/* <span className="text-sm font-semibold">0</span> */}
// <CartIcon className="h-8 w-8" />
// </Button>
// </div>
);
};

View File

@@ -11,7 +11,7 @@
{
"id": "background",
"type": "image",
"source": "https://cdn.memeaigen.com/system-i/si_1749805418324-out-0.webp",
"source": "https://cdn.memefa.st/system-i/si_1749805418324-out-0.webp",
"name": "Este cat dance",
"startTime": 0,
"layer": 1,
@@ -28,9 +28,9 @@
{
"id": "meme",
"type": "video",
"source_webm": "https://cdn.memeaigen.com/g1/webm/este-cat-dance.webm",
"source_mov": "https://cdn.memeaigen.com/g1/mov/este-cat-dance.mov",
"poster": "https://cdn.memeaigen.com/g1/webp/este-cat-dance.webp",
"source_webm": "https://cdn.memefa.st/g1/webm/este-cat-dance.webm",
"source_mov": "https://cdn.memefa.st/g1/mov/este-cat-dance.mov",
"poster": "https://cdn.memefa.st/g1/webp/este-cat-dance.webp",
"name": "Este cat dance",
"startTime": 0,
"layer": 2,