@cgi-learning-hub/ui
Version:
@cgi-learning-hub/ui is an open-source React component library that implements UI for HUB's features
2 lines (1 loc) • 2.89 kB
JavaScript
"use strict";const e=require("react/jsx-runtime"),n=require("@mui/material"),g=require("../EllipsisWithTooltip/EllipsisWithTooltip.cjs.js"),y=require("./FileIcon.cjs.js"),p=require("./FileInfosSeparator.cjs.js"),x=require("./utils.cjs.js"),s=require("../../Stack-CIyfgZCM.cjs"),d=require("../../Typography-CSTmKyr8.cjs"),j=require("../../createSvgIcon-IET9soda.cjs"),I=require("../../CloseRounded-DS-4-gMR.cjs"),b=j.createSvgIcon(e.jsx("path",{d:"M16.59 9H15V4c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v5H7.41c-.89 0-1.34 1.08-.71 1.71l4.59 4.59c.39.39 1.02.39 1.41 0l4.59-4.59c.63-.63.19-1.71-.7-1.71M5 19c0 .55.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1"}),"DownloadRounded"),S=n.styled(n.ListItemButton)(({isClickable:t})=>({"&:hover":{boxShadow:t?"0 4px 8px rgba(192, 192, 192, 0.3)":"none",backgroundColor:"transparent"},opacity:"1 !important",borderRadius:"4px",cursor:t?"pointer":"default",display:"flex",flexDirection:"row",alignItems:"center",padding:"0.5rem 1rem",width:"100%",justifyContent:"space-between",boxSizing:"border-box",paddingRight:"115px !important",userSelect:"text"})),q=({file:t,onDelete:a,onClick:r,onDownload:c})=>{if(!t.name)return null;const o=x.displaySize(t.size),i=x.displayExtension(t.name),u=()=>r==null?void 0:r(t),h=l=>{l.stopPropagation(),a==null||a(t)},m=l=>{l.stopPropagation(),c==null||c(t)};return e.jsx(n.ListItem,{secondaryAction:e.jsxs(n.Box,{alignItems:"center",display:"flex",gap:"1rem",children:[t.isLoading?e.jsx(n.Box,{marginRight:1,children:e.jsx(n.CircularProgress,{size:24,color:"primary"})}):t.isDownloadable?e.jsx(n.IconButton,{onClick:m,children:e.jsx(b,{color:"primary"})}):null,t.isDeletable&&e.jsx(n.IconButton,{onClick:h,id:"coucou",children:e.jsx(I.CloseRounded,{})})]}),disablePadding:!0,children:e.jsx(S,{onClick:u,isClickable:!!r,disableRipple:!r,children:e.jsxs(s.Stack,{direction:"row",alignItems:"center",spacing:2,minWidth:"0",children:[e.jsx(s.Stack,{borderRadius:"4px",minWidth:"40px",maxWidth:"40px",minHeight:"40px",maxHeight:"40px",display:"flex",alignItems:"center",justifyContent:"center",sx:{backgroundColor:"grey.light"},children:e.jsx(n.Box,{color:"text.secondary",alignItems:"center",justifyContent:"center",display:"flex",children:e.jsx(y.FileIcon,{extension:i??""})})}),e.jsxs(s.Stack,{direction:"column",spacing:0,alignItems:"flex-start",minWidth:"0",children:[e.jsx(g,{typographyProps:{variant:"body1"},children:t.name}),e.jsxs(s.Stack,{display:"flex",flexDirection:"row",alignItems:"center",gap:1,children:[o&&e.jsx(d.Typography,{variant:"caption",color:"text.secondary",children:o}),o&&i&&e.jsx(p.FileInfosSeparator,{}),i&&e.jsx(d.Typography,{variant:"caption",color:"text.secondary",children:i}),t.ownerName&&(o||i)&&e.jsx(p.FileInfosSeparator,{}),t.ownerName&&e.jsx(d.Typography,{variant:"caption",color:"text.secondary",children:t.ownerName})]})]})]})})},crypto.randomUUID())};module.exports=q;