amotify
Version:
UI Component for React,NextJS,esbuild
2 lines (1 loc) • 2.71 kB
JavaScript
import{b as m,c as p,d as D}from"../chunk-C5N2D3ZX.js";import{Fragment as _,jsx as a,jsxs as y}from"react/jsx-runtime";import{createElement as M}from"react";import x,{UUID as k,useStore as l}from"jmini";import{Config as I,$$fromRoot as w}from"../@utils";import{useState as g,useEffect as b}from"react";import{Box as A,Flex as B,FAI as E}from"../atoms";import{Row as F}from"../mols";import{Button as T}from"./Button";import{SnackbarClasses as h}from"../@styles/componentClasses";const u={add:function(o){let t=l.get("Snackbar-"+I.get().sessionUID);return t&&t.add(o),this},remove:function(o){let t=l.get("Snackbar-"+I.get().sessionUID);return t&&t.remove(o),this},removeALL:function(){let o=l.get("Snackbar-"+I.get().sessionUID);return o&&o.removeALL(),this},Wrapper:()=>a(L.Wrapper,{})},L={Cell:o=>{let C=o,{snackID:t,secondsToClose:r,componentID:f=k(),children:d,customChildren:e}=C,s=D(C,["snackID","secondsToClose","componentID","children","customChildren"]),[n]=g(f),[i,c]=g(o.secondsToClose||10);b(()=>{let v=w('[data-component-id="'+n+'"]');setTimeout(()=>{v.addClass(h("FadeIn"))},10),l.set({["Snackbar-"+t]:{remove:()=>{v.addClass(h("FadeOut"))}}})},[]),b(()=>{x.interval.once(()=>{i<=0||c(i-1)},1e3,"Snackbar-"+n),i===0&&u.remove(t)},[i]);let S=a(_,{});return e?S=a(e,{close:()=>{u.remove(t)}}):S=y(F.Separate,{verticalAlign:"top",children:[a(A,{padding:["1/4",0],flexSizing:0,children:x.is.function(d)?a(d,{}):d}),a(T.Clear,{color:"layer",backgroundColor:"layer.4.opa.low",fontColor:"white",ssSphere:2.5,onClick:()=>{u.remove(t)},children:a(E.Times,{})})]}),a(A,p(m({className:h("Cell"),componentID:n,onMouseOver:()=>{c(-1)},onMouseOut:()=>{c(r||10)},opacity:"trans",width:1,padding:"2/3",marginBottom:1,borderRadius:"1.tone.primary",fontColor:"white",boxShadow:"1.remark",backgroundColor:"dark",transition:"middle"},s),{children:S}))},Wrapper:()=>{let[o,t]=g(k()),[r,f]=g([]);b(()=>{l.set({["Snackbar-"+I.get().sessionUID]:{add:e=>{e.snackID=e.snackID||k();let s=r.findIndex(n=>n.snackID==e.snackID);if(s==-1)r.unshift(p(m({},e),{snackID:e.snackID}));else{let n=[...r];n[s]=p(m({},e),{snackID:e.snackID}),r=n}t(k())},remove:e=>{let s=l.get("Snackbar-"+e);s&&s.remove&&(s.remove(),setTimeout(()=>{let n=r.findIndex(c=>c.snackID==e);if(n==-1)return;let i=[...r];i.splice(n,1),f(i)},210))},removeALL:()=>{f([])}}})},[r.length]);let d=r.map(e=>M(L.Cell,p(m({},e),{key:e.snackID})));return a(B,{className:["AMOTIFY_be","AMOTIFY_be_snackbar",h("Wrapper")].join(" "),position:"fixed",right:0,bottom:0,paddingLeft:0,paddingRight:1,paddingBottom:"safeAreaBottom",verticalAlign:"bottom",overflow:"auto",UnderBreakPointStyles:{left:0,paddingLeft:1,width:"auto"},children:d})}};export{u as Snackbar,u as default};