/**
 * sharedView — 共有タスクページ（read-only / 非認証）専用の純ロジック。
 *
 * 共有ビューは本体コンポーネント（FileBrowser / MovementGroupExpanded）を再利用するが、
 * raw/ダウンロード URL と画像ベース URL だけは `/api/shared/:token/...` 経由に差し替える
 * 必要がある。その URL ビルダーをここに純関数として切り出し、テスト可能にする。
 *
 * 本体側は taskId/section から `getLocalFileRawUrl` を使うので、ここは共有時だけ
 * `FileBrowser` の `rawUrlFor` / `MovementGroupExpanded` の `imageBaseUrl` に注入する。
 */
import { getSharedFileRawUrl } from '../api';
import type { LocalFileEntry } from '../api';

/**
 * 共有ビューの Markdown / チャット画像ベース URL。
 * MarkdownPreview / ChatMessage の imageBaseUrl にそのまま渡せる形（末尾 `path=`）。
 */
export function sharedImageBaseUrl(token: string): string {
  return `/api/shared/${token}/files/raw?path=`;
}

/**
 * FileBrowser の `rawUrlFor` に渡すビルダー。エントリの相対パスから
 * 共有 raw URL（ダウンロード/プレビュー用）を組み立てる。
 */
export function sharedRawUrlFor(token: string): (entry: LocalFileEntry) => string {
  return (entry) => getSharedFileRawUrl(token, entry.path);
}
