UNPKG

reactdesk-core

Version:

A powerful React-based desktop environment library for creating Windows 11-like desktop interfaces with window management, taskbar, themes, and more

3 lines (2 loc) 2.72 kB
"use strict";const A=require("react"),e=require("./index-B8LTnm77.js"),i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAAAMElEQVR4AWMgEoyC2TCAwsYPFqMCouzZCQPEOmzvnj0QRJTqo6iAgOoLMIDCHsYAACjTO7/gCQlBAAAAAElFTkSuQmCC",n=A=>{const{stackOrder:i=[]}=e.useContext(),{windows:n}=e.useContext$1();return i.find(e=>{var i;return e!==A&&!(null==(i=null==n?void 0:n[e])?void 0:i.minimized)})||""},o=i=>{const o=n(i),{setForegroundId:a,removeFromStack:t}=e.useContext(),{closeWithTransition:s,maximize:l,minimize:u,setSnap:g}=e.useContext$1(),C=e.useWindowsRef(),m=A.useCallback(A=>{u(i),g(i,!1),A||a(o)},[i,u,g,o,a]),r=A.useCallback(()=>{var A,n;const o=()=>{var A,n;l(i),a(i),null==(n=null==(A=C.current[i])?void 0:A.componentWindow)||n.focus(e.PREVENT_SCROLL),g(i,!1)},[t]=(null==(n=null==(A=C.current[i])?void 0:A.componentWindow)?void 0:n.getAnimations())||[];(null==t?void 0:t.finished)?t.finished.then(o):o()},[i,g,l,C,a]);return{onClose:A.useCallback(()=>{t(i),s(i),a(o)},[s,i,o,t,a]),onMaximize:r,onMinimize:m}};exports.useNextFocusable=n,exports.useTitlebarContextMenu=n=>{const{contextMenu:a}=e.useContext$6(),{onClose:t,onMaximize:s,onMinimize:l}=o(n),{windows:{[n]:u}}=e.useContext$1(),{allowResizing:g=!0,hideMaximizeButton:C,hideMinimizeButton:m,maximized:r,minimized:E}=u||{};return A.useMemo(()=>null==a?void 0:a(()=>{const A=r||E,n=!C||!m;return[n&&{action:()=>{E?l():s()},disabled:!A,icon:A?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAAAOklEQVR4AWMYVmA2BiBN/6JFi3DKrcUAEEGcGnZiAIggTg1HwQCNDSSpp+H8hQtoiECAXMcADMMbAABMtF75qvi0qwAAAABJRU5ErkJggg==":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAJElEQVR42mNABaPA09PzPzZMsaFk20x/A2D8gTIAE9Mp+kYBAJPzT5+OMe9rAAAAAElFTkSuQmCC",label:"Restore"},!m&&{action:l,disabled:E,icon:E?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGElEQVR42mMYPGAUjAJPT8//+DCNDRgFAPTaHaFVv24VAAAAAElFTkSuQmCC":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAIUlEQVR42mMYPGAUjIIDBw78x4cJGnDu3Ln/+DB+3aMAAPFzNUFuAVJEAAAAAElFTkSuQmCC",label:"Minimize"},!C&&{action:s,disabled:A||!g,icon:A?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAHklEQVR42mOgEhgFnp6e//Fh+hmALj5UDBj4QBwFANQKUXn4YyGJAAAAAElFTkSuQmCC":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAR0lEQVR42u3IoRHAMAzFUO+/gllKG5IgD2DujX4vC8ikMO9ORHb9xN1FWWc8Q5R15jt1gs/22jrBZxGhE3yWmaKsU1Wi7EIfHneIsXEKuhAAAAAASUVORK5CYII=",label:"Maximize"},n&&e.MENU_SEPERATOR,{action:t,icon:i,label:"Close"}].filter(Boolean)}),[g,a,C,m,r,E,t,s,l])},exports.useWindowActions=o; //# sourceMappingURL=useTitlebarContextMenu-Bggb47Lr.js.map