2024-07-15 16:06:49 +02:00

45 lines
1.2 KiB
TypeScript

/* eslint-disable @next/next/no-img-element */
import React from "react";
import Typography, { ETypo, ETypoColor } from "../Typography";
import classes from "./classes.module.scss";
import Loader from "../Loader";
type IProps = {
href: string;
fileName?: string;
};
type IState = {};
export default class FilePreview extends React.Component<IProps, IState> {
override render() {
let type = this.props.href.split(".").pop();
if (this.props.fileName) type = this.props.fileName.split(".").pop();
return (
<div className={classes["root"]}>
{!this.props.href && (
<div className={classes["loader"]}>
<Loader />
</div>
)}
{this.props.href && (
<>
{!type && (
<Typography typo={ETypo.DISPLAY_LARGE} color={ETypoColor.COLOR_GENERIC_BLACK}>
Erreur lors du chargement du fichier
</Typography>
)}
<div className={classes["file-container"]}>
{type?.toLowerCase() === "pdf" && (
<embed src={this.props.href} width="100%" height="100%" type="application/pdf" className={classes["pdf"]} />
)}
{type?.toLowerCase() !== "pdf" && <img src={this.props.href} alt="File preview" className={classes["image"]} />}
</div>
</>
)}
</div>
);
}
}