@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) • 2.51 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),a=require("react"),t=require("@mui/material/Popper"),i=require("@mui/material/Fade"),l=require("@mui/material/Card"),r=require("@mui/material/CardContent"),n=require("@mui/material/Typography"),s=require("@mui/material/CardActions"),u=require("@mui/material/Button"),d=require("@mui/material/TextField"),o=require("@mui/material/Stack"),c=require("@mui/material/ClickAwayListener"),m=require("../utils/url.js"),x=require("../../../util/constants.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=p(t),h=p(i),b=p(l),j=p(r),y=p(n),q=p(s),v=p(u),C=p(d),k=p(o),g=p(c);const P="NexusInsertLink";exports.InsertLinkModal=({initialText:t="",initialUrl:i="",anchorEl:l,onCancel:r,onSave:n,t:s})=>{const[u,d]=a.useState(t),[o,c]=a.useState(i),p=m.validateUrl(o),T=o.length>0&&!p,$=e=>{e.key===x.KeyCodes.ENTER&&u&&o&&p&&(n(u,o),e.preventDefault())},L=t!==u||i!==o;return e.jsx(g.default,{onClickAway:r,children:e.jsx(f.default,{sx:{zIndex:e=>e.zIndex.modal},open:!0,anchorEl:l,className:`${P}-root`,"data-testid":`${P}-root`,placement:"bottom-end",transition:!0,children:({TransitionProps:a})=>e.jsx(h.default,{...a,timeout:{appear:350,enter:350,exit:0},children:e.jsxs(b.default,{sx:{minWidth:320,my:2},elevation:7,children:[e.jsxs(j.default,{children:[e.jsx(y.default,{variant:"body1",sx:{fontWeight:700},children:s("insertLink")}),e.jsxs(k.default,{children:[e.jsx(C.default,{value:u,onChange:e=>{d(e.target.value)},sx:{mt:4},fullWidth:!0,"aria-label":s("displayLabel"),label:s("displayLabel"),className:`${P}-displayLabel`,onKeyDown:$,required:!0,size:"small",slotProps:{input:{inputProps:{"data-testid":`${P}-displayLabel`}}}}),e.jsx(C.default,{value:o,onChange:e=>{c(e.target.value)},sx:{mt:4},fullWidth:!0,"aria-label":s("linkToWebPage"),label:s("linkToWebPage"),className:`${P}-linkToWebPage`,onKeyDown:$,required:!0,size:"small",error:T,helperText:T?s("invalidURL"):"",slotProps:{input:{inputProps:{"data-testid":`${P}-linkToWebPage`}}}})]})]}),e.jsxs(q.default,{sx:{justifyContent:"flex-end"},children:[e.jsx(v.default,{"aria-label":"Cancel",size:"small",onClick:r,className:`${P}-cancel`,"data-testid":`${P}-cancel`,children:"Cancel"}),e.jsx(v.default,{"aria-label":s("Insert"),size:"small",disabled:!(u&&o&&p&&L),variant:"contained",className:`${P}-insert`,"data-testid":`${P}-insert`,onClick:()=>n(u,o),children:s(t||i?"Save":"Insert")})]})]})})})})},exports.prefix=P;