"use client"; import { memo } from "react"; import Chip from "../../../../components/controls/Chip"; import IncrementerBlock from "../../../../components/controls/IncrementerBlock"; import InputLabel from "../../../../components/type/InputLabel"; import type { CustomMethodCardFieldBlock } from "../../../../../lib/create/customMethodCardFieldBlocks"; import ApplicableScopeField from "../ApplicableScopeField"; import ModalTextAreaField from "../ModalTextAreaField"; import { CustomMethodCardUploadBlockRow } from "./CustomMethodCardUploadBlockRow.container"; import type { CustomMethodCardFieldBlocksSummaryViewProps } from "./CustomMethodCardFieldBlocksSummary.types"; const TEXT_VALUE_MAX = 8000; function mapBlockById( blocks: CustomMethodCardFieldBlock[], blockId: string, mapFn: (_b: CustomMethodCardFieldBlock) => CustomMethodCardFieldBlock, ): CustomMethodCardFieldBlock[] { return blocks.map((b) => (b.id === blockId ? mapFn(b) : b)); } function CustomMethodCardFieldBlocksSummaryViewComponent({ blocks, readOnly, emptyValue, noFileChosen, fieldModalsCopy, onPatch, }: CustomMethodCardFieldBlocksSummaryViewProps) { const fm = fieldModalsCopy; return (
{blocks.map((block) => { if (block.kind === "text") { return ( onPatch( mapBlockById(blocks, block.id, (b) => b.kind === "text" ? { ...b, placeholderText: v.slice(0, TEXT_VALUE_MAX) } : b, ), ) } disabled={readOnly} /> ); } if (block.kind === "badges") { if (readOnly) { return (
{block.options.length > 0 ? (
{block.options.map((opt, idx) => ( ))}
) : (

{emptyValue}

)}
); } return ( onPatch( mapBlockById(blocks, block.id, (b) => b.kind === "badges" ? { ...b, options: b.options.filter((o) => o !== scope) } : b, ), ) } onAddScope={(scope) => onPatch( mapBlockById(blocks, block.id, (b) => { if (b.kind !== "badges") return b; if (b.options.includes(scope) || b.options.length >= 50) return b; return { ...b, options: [...b.options, scope] }; }), ) } /> ); } if (block.kind === "upload") { return (
{readOnly ? (
{block.assetUrl?.trim() ? ( // eslint-disable-next-line @next/next/no-img-element { ) : (

{noFileChosen}

)}
) : ( )}
); } return ( onPatch( mapBlockById(blocks, block.id, (b) => b.kind === "proportion" ? { ...b, defaultPercent: v } : b, ), ) } formatValue={(v) => `${v}%`} decrementAriaLabel={fm.proportion.decrementAriaLabel} incrementAriaLabel={fm.proportion.incrementAriaLabel} /> ); })}
); } export const CustomMethodCardFieldBlocksSummaryView = memo( CustomMethodCardFieldBlocksSummaryViewComponent, ); CustomMethodCardFieldBlocksSummaryView.displayName = "CustomMethodCardFieldBlocksSummaryView";