@jengaui/alert-dialog
Version:
Jenga UI Alert Dialog component in React
12 lines (9 loc) • 1.44 kB
JavaScript
import { forwardRef } from 'react';
import { Button } from '@jengaui/button';
import { ButtonGroup } from '@jengaui/button-group';
import { useDialogContext, Dialog } from '@jengaui/dialog';
import { Header, Title, Content, Paragraph, Footer } from '@jengaui/content';
import { chain } from '@react-aria/utils';
import { jsxs, jsx } from 'react/jsx-runtime';
var _={label:"Ok",type:"primary"},x={label:"Cancel"};function N(c,f){let{onClose:o}=useDialogContext(),{danger:d,actions:P,title:u,styles:T,noActions:m,content:i,...D}=c,{confirm:e,secondary:r,cancel:t}=P??{};return e=e!==!1?{..._,...typeof e=="object"?e:null}:void 0,t=t?{...x,...typeof t=="object"?t:null}:void 0,jsxs(Dialog,{ref:f,role:"alertdialog",isDismissable:!1,...D,children:[u?jsx(Header,{children:jsx(Title,{children:u})}):null,i?jsx(Content,{children:typeof i=="string"?jsx(Paragraph,{children:i}):i}):null,m?null:jsx(Footer,{children:jsxs(ButtonGroup,{align:"end",children:[jsx(Button,{autoFocus:!0,theme:d?"danger":void 0,...e,onPress:l=>{var n;return chain((n=e==null?void 0:e.onPress)==null?void 0:n.call(e,l),o==null?void 0:o("confirm"))}}),r&&jsx(Button,{...r,onPress:l=>{var n;return chain((n=r==null?void 0:r.onPress)==null?void 0:n.call(r,l),o==null?void 0:o("secondary"))}}),t&&jsx(Button,{...t,onPress:l=>{var n;return chain((n=t==null?void 0:t.onPress)==null?void 0:n.call(t,l),o==null?void 0:o("cancel"))}})]})})]})}var w=forwardRef(N);
export { w as a };