mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
ready to test
Testing Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
// components/generic/CMS/BlockList.jsx
|
||||
|
||||
import { BlockWrapper } from "./BlockWrapper";
|
||||
import { TextBlock } from "./Blocks/TextBlock";
|
||||
import { ImageBlock } from "./Blocks/ImageBlock";
|
||||
import { TextImageBlock } from "./Blocks/TextImageBlock";
|
||||
import { VideoBlock } from "./Blocks/VideoBlock";
|
||||
import { TextVideoBlock } from "./Blocks/TextVideoBlock";
|
||||
import { BlockWrapper } from "./BlockWrapper";
|
||||
import { TextBlock } from "./Blocks/Admin/TextBlock";
|
||||
import { ImageBlock } from "./Blocks/Admin/ImageBlock";
|
||||
import { TextImageBlock } from "./Blocks/Admin/TextImageBlock";
|
||||
import { VideoBlock } from "./Blocks/Admin/VideoBlock";
|
||||
import { TextVideoBlock } from "./Blocks/Admin/TextVideoBlock";
|
||||
import { AudioBlock } from "./Blocks/Admin/AudioBlock";
|
||||
import { CodeBlock } from "./Blocks/Admin/CodeBlock";
|
||||
import { MarkdownBlock } from "./Blocks/Admin/MarkdownBlock";
|
||||
|
||||
// ─── Block renderer ───────────────────────────────────────────────────────────
|
||||
//
|
||||
@@ -25,13 +28,19 @@ function BlockContent({ block, onUpdate }) {
|
||||
/>
|
||||
);
|
||||
case "image":
|
||||
return <ImageBlock content={content} onUpdate={onUpdate} />;
|
||||
return <ImageBlock content={content} onUpdate={onUpdate} />;
|
||||
case "text-image":
|
||||
return <TextImageBlock blockId={id} content={content} onUpdate={onUpdate} />;
|
||||
return <TextImageBlock blockId={id} content={content} onUpdate={onUpdate} />;
|
||||
case "video":
|
||||
return <VideoBlock content={content} onUpdate={onUpdate} />;
|
||||
return <VideoBlock content={content} onUpdate={onUpdate} />;
|
||||
case "text-video":
|
||||
return <TextVideoBlock blockId={id} content={content} onUpdate={onUpdate} />;
|
||||
return <TextVideoBlock blockId={id} content={content} onUpdate={onUpdate} />;
|
||||
case "audio":
|
||||
return <AudioBlock content={content} onUpdate={onUpdate} />;
|
||||
case "code":
|
||||
return <CodeBlock content={content} onUpdate={onUpdate} />;
|
||||
case "markdown":
|
||||
return <MarkdownBlock content={content} onUpdate={onUpdate} />;
|
||||
default:
|
||||
return <p className="text-sm text-muted-foreground">Unknown block type.</p>;
|
||||
}
|
||||
@@ -40,11 +49,14 @@ function BlockContent({ block, onUpdate }) {
|
||||
// ─── Default content per type ─────────────────────────────────────────────────
|
||||
|
||||
export const DEFAULT_CONTENT = {
|
||||
"text": { body: "" },
|
||||
"image": { asset_id: null, url: "", alt: "" },
|
||||
"text": { body: "" },
|
||||
"image": { asset_id: null, url: "", alt: "" },
|
||||
"text-image": { body: "", asset_id: null, url: "", alt: "", image_position: "right" },
|
||||
"video": { asset_id: null, url: "", thumbnail_url: "" },
|
||||
"video": { asset_id: null, url: "", thumbnail_url: "" },
|
||||
"text-video": { body: "", asset_id: null, url: "", thumbnail_url: "", video_position: "right" },
|
||||
"audio": { asset_id: null, url: "", title: "", artist: "", tag: "", thumbnail: "" },
|
||||
"code": { language: "javascript", code: "" },
|
||||
"markdown": { body: "" },
|
||||
};
|
||||
|
||||
// ─── List ─────────────────────────────────────────────────────────────────────
|
||||
@@ -69,9 +81,9 @@ export function BlockList({ blocks, onUpdate, onMove, onDelete }) {
|
||||
type={block.type}
|
||||
index={index}
|
||||
total={blocks.length}
|
||||
onMoveUp={() => onMove(block.id, "up")}
|
||||
onMoveDown={() => onMove(block.id, "down")}
|
||||
onDelete={() => onDelete(block.id)}
|
||||
onMoveUp={() => onMove(block.id, "up")}
|
||||
onMoveDown={() => onMove(block.id, "down")}
|
||||
onDelete={() => onDelete(block.id)}
|
||||
>
|
||||
<BlockContent
|
||||
block={block}
|
||||
|
||||
Reference in New Issue
Block a user