import Link from "next/link";
type ArticlePage = {
type: "article",
articleId: number,
subPageNumber?: number,
}
type AnimeTop = {
type: "animeTop",
animeId: number,
};
type AnimeReviewList = {
type: "animeReviewList",
animeId: number,
/** 0始まり */
pageNumber: number,
};
type AnimeReviewItem = {
type: "AnimeReviewItem",
animeId: number,
reviewId: number,
};
type AnimeMatome = {
type: "AnimeMatome",
matomeId: string,
};
type Common = { showLinkUnderline?: boolean }
type Option = (ArticlePage | AnimeTop | AnimeReviewList | AnimeReviewItem | AnimeMatome) & Common;
export function ArciveLinkElement(option: Option) {
const officialLinkTitle = `公式のakiba-souken.com へのリンク。閉鎖後は繋がらなくなるはず`;
const iaSearchResultLinkTitle = `InternetArchive の検索結果へのリンク`;
const iframeLinkTitle = `Iframeを使ってInternetArchiveに記録されたアーカイブを表示します`;
let originalUrl = "";
let iframeSrc = "";
let suffixPrivate: JSX.Element = <>>;
let className = "";
if (option.type == "article") {
if (option.subPageNumber == null) {
originalUrl = `https://akiba-souken.com/article/${option.articleId}/`;
iframeSrc = `article-${option.articleId}`;
} else {
originalUrl = `https://akiba-souken.com/article/${option.articleId}/?page=${option.subPageNumber}`;
iframeSrc = `article-${option.articleId}-${option.subPageNumber}`;
suffixPrivate = <>Page:{option.subPageNumber}>
}
} else if (option.type == "animeTop") {
originalUrl = `https://akiba-souken.com/anime/${option.animeId}/`;
iframeSrc = `anime-${option.animeId}`
} else if (option.type == "animeReviewList") {
if (option.pageNumber == 0) {
originalUrl = `https://akiba-souken.com/anime/${option.animeId}/review/`;
iframeSrc = `anime-${option.animeId}-review`
} else {
const page = option.pageNumber + 1;
originalUrl = `https://akiba-souken.com/anime/${option.animeId}/?page=${page}`;
iframeSrc = `anime-${option.animeId}-review-p${page}`
}
} else if (option.type == "AnimeReviewItem") {
originalUrl = `https://akiba-souken.com/anime/${option.animeId}/review/${option.reviewId}`;
iframeSrc = `anime-${option.animeId}-review-${option.reviewId}`;
} else if (option.type == "AnimeMatome") {
originalUrl = `https://akiba-souken.com/anime/matome/${option.matomeId}/`;
iframeSrc = `anime-matome-${option.matomeId}`;
} else {
throw new Error();
}
if (option.showLinkUnderline == true) {
className = `original-href`;
}
return (
<>
公式
IA検索結果
IAをiframe
{suffixPrivate}
>
)
}