앱 위젯추가 팝업 수정
This commit is contained in:
@@ -137,7 +137,7 @@ const WidgetApp: React.FC = () => {
|
||||
|
||||
const sizeBeforePickerRef = useRef<{ width: number; height: number } | null>(null);
|
||||
|
||||
const handlePickerOpenChange = useCallback(async (open: boolean) => {
|
||||
const handlePickerOpenChange = useCallback(async (open: boolean): Promise<void> => {
|
||||
const win = getCurrentWindow();
|
||||
if (open) {
|
||||
const size = await win.innerSize();
|
||||
@@ -148,6 +148,18 @@ const WidgetApp: React.FC = () => {
|
||||
const h = Math.min(NATIVE_WIDGET_PICKER_WINDOW.height, maxH);
|
||||
await win.setSize(new LogicalSize(w, h));
|
||||
await win.center();
|
||||
await new Promise<void>(resolve => {
|
||||
let settled = false;
|
||||
const finish = () => {
|
||||
if (settled) return;
|
||||
settled = true;
|
||||
unlisten?.();
|
||||
resolve();
|
||||
};
|
||||
let unlisten: (() => void) | undefined;
|
||||
void win.onResized(finish).then(fn => { unlisten = fn; });
|
||||
window.setTimeout(finish, 150);
|
||||
});
|
||||
return;
|
||||
}
|
||||
const prev = sizeBeforePickerRef.current;
|
||||
@@ -183,7 +195,7 @@ const WidgetApp: React.FC = () => {
|
||||
nativeShell
|
||||
onClose={handleClose}
|
||||
onFocus={() => {}}
|
||||
onPickerOpenChange={open => { void handlePickerOpenChange(open); }}
|
||||
onPickerOpenChange={handlePickerOpenChange}
|
||||
onUpdateSlots={slots => setInstance(prev => (prev ? { ...prev, slots } : prev))}
|
||||
onUpdateSize={(width, height) => {
|
||||
setInstance(prev => (prev ? { ...prev, width, height } : prev));
|
||||
|
||||
Reference in New Issue
Block a user