///
import { BaseResource } from '../../pages/types';
import { IndexPageWindowOptions, IndexPageWindowOptionsType } from './types';
type UseMultipleWindowsReturnType = {
primaryWindows: {
windowContent: IndexPageWindowOptionsType;
width: number;
height: number;
layout: 'screen' | 'drawer-scrim' | 'drawer';
}[];
subScreens: {
windowContent: IndexPageWindowOptionsType;
width: number;
height: number;
}[];
layoutToggle?: {
execute: () => void;
targetType: 'screen' | 'drawer-scrim' | 'drawer';
};
closeSubWindows: () => void;
closeWindowById: (props: {
id: string;
}) => void;
openSubWindow: (props: {
id: string;
layout?: 'screen' | 'drawer';
}) => void;
updateInternalSubWindowContent: (props: {
id: string;
render: () => React.ReactNode;
}) => void;
};
/**
* 単一もしくは複数のウインドウを表示する際のレイアウトや挙動を制御するためのカスタムフック
* propsのwindowsとatomのmainWindowIdをベースにして、表示されるメインウインドウとサブウインドウの種類やサイズを計算する
*
* やっていること
* - props.windowsとmainWindowIdから、メインウインドウを決定(props.windows)
* - メインウインドウのレイアウト切り替え
* - サブドロワーおよびサブスクリーンモーダルの開閉制御、コンテンツ更新処理
* - 1段目のウインドウ(ページの主コンテンツに重なって表示されるウインドウ)のレイアウト・サイズ計算
* - 2段目以降のウインドウ(ウインドウonウインドウになるもの)のレイアウト・サイズ計算
*/
export declare const useMultipleWindows: ({ windows, }: {
windows: IndexPageWindowOptionsType[];
}) => UseMultipleWindowsReturnType;
export {};