@nexusui/components
Version:
These are custom components specially-developed for NexusUI applications. They will make your life easier by giving you out-of-the-box implementations for various high-level UI elements that you can drop directly into your application.
2 lines (1 loc) • 1.56 kB
JavaScript
import{jsxs as r,jsx as a}from"react/jsx-runtime";import e from"@mui/material/Typography";import t from"@mui/material/LinearProgress";import i from"@mui/icons-material/Refresh";import o from"@mui/material/Box";import s from"@mui/material/Button";import l from"@mui/material/Stack";import m from"@mui/material/IconButton";import n from"@mui/icons-material/Cancel";import{UploadStatus as c}from"../models/index.js";import{useTranslate as d}from"../locales/index.js";import{styles as p}from"./FileStatus.style.js";import u from"./locale.json.js";const f="NexusFileStatus",$=({status:$,progress:g=0,actions:x,errorMessage:y,onCancel:h,onRetry:N,sx:j,...C})=>{const v=d(u),F=$===c.Uploading,S=$===c.Failed;return r(o,{className:`${f}-root`,sx:[p.statusContainer,...Array.isArray(j)?j:[j]],...C,children:[r(l,{className:`${f}-status`,direction:"row",alignItems:"center",spacing:2,children:[F&&a(t,{className:`${f}-progress`,"data-testid":`${f}-progress`,variant:"determinate",color:"secondary",value:g,sx:p.progress,"aria-label":"File Progress"}),S&&a(e,{className:`${f}-failed`,variant:"caption",color:"error",noWrap:!0,children:y??v("uploadFailed")}),void 0!==x&&a(o,{className:`${f}-actions-${$}`,children:x}),!x&&a(o,{className:`${f}-actions-${$}`,children:a(m,{size:"small","data-testid":`${f}-action-cancel`,onClick:h,"aria-label":"Cancel Action",children:a(n,{fontSize:"small"})})})]}),S&&a(s,{className:`${f}-retry`,"data-testid":`${f}-action-retry`,variant:"text",onClick:N,endIcon:a(i,{fontSize:"small"}),children:v("retry")})]})};export{$ as default};