import type { ResizeImageOptions } from '@ablogcms/resize-image/controller';

/**
 * @ablogcms/resize-image のグローバル依存除去（ACMS.Config を options 引数に注入する設計）に伴い、
 * 呼び出し側であるこのファイルに ACMS.Config / ACMS.i18n / window.confirm 参照を閉じ込める。
 */
export default function createResizeImageOptions(): ResizeImageOptions {
  return {
    inputMark: ACMS.Config.resizeImageInputMark,
    previewMark: ACMS.Config.resizeImagePreviewMark,
    targetMark: ACMS.Config.resizeImageTargetMark,
    targetMarkCF: ACMS.Config.resizeImageTargetMarkCF,
    enabled: ACMS.Config.resizeImage === 'on',
    confirmGifDrop: (message) => window.confirm(message),
    gifDropConfirmMessage: ACMS.i18n('drop_select_gif_image.alert'),
    // lgImg はログイン時のみ出力されるが、この呼び出し経路はログイン必須の管理画面でのみ使用される
    getLargeImageSize: () => ACMS.Config.lgImg ?? '',
    setLargeImageSize: (value) => {
      ACMS.Config.lgImg = value;
    },
  };
}
