import type { Editor } from "@tiptap/react";

import type { MediaItem } from "@/features/media/types";

/** Inserts uploaded or picked images as figures at `position` (or the cursor). */
export function insertImages(editor: Editor, images: MediaItem[], position?: number) {
  const content = images.map((media) => ({
    type: "image",
    attrs: {
      src: media.url,
      alt: media.altText,
      title: media.title ?? "",
      naturalWidth: media.width,
      naturalHeight: media.height,
    },
  }));
  const chain = editor.chain().focus();
  const at =
    position === undefined ? undefined : Math.min(position, editor.state.doc.content.size);
  return (at === undefined ? chain.insertContent(content) : chain.insertContentAt(at, content)).run();
}
