앱 위젯추가 팝업 수정

This commit is contained in:
Macbook
2026-06-15 16:30:44 +09:00
parent 1eaecbb586
commit 63a40c9c75
4 changed files with 223 additions and 50 deletions
+14 -2
View File
@@ -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));