const importAll = (r: WebpackRequireContext): Image[] => {
const keys: string[] = r.keys();
keys.sort(new Intl.Collator("ja", { numeric: true }).compare);
return keys.map((key: string) => ({
default: r(key)! as string, // `default` は画像のパスとして扱う
}));
};
// `public/images` フォルダ内のすべての画像ファイルをインポート
const images: Image[] = importAll(require.context("../../images", false, /\.(png)$/));
const ImageIcon: React.FC<ImageIconProps> = ({ index, brightness }) => {
if (index < 0 || index >= images.length) {
return null; // インデックスが範囲外の場合は何も表示しない
}
const image = images[index];
// 明度を調整するスタイルを動的に生成する
const brightnessStyle = {
"--brightness": `${brightness}%`, // カスタムプロパティに明度を設定
} as React.CSSProperties;
return (
<div className="aws_service_icons">
<img
src={image.default}
alt={`image-${index}`}
className="aws_service_icon"
style={brightnessStyle} // 明度を調整するスタイルを適用
/>
</div>
);
};
export default ImageIcon;