fix(dialog): prevent scroll to top on modal close (#318)

* fix(dialog): prevent both open and close auto focus to avoid page scroll

Add onOpenAutoFocus handler to prevent Radix Dialog from auto-focusing
content on open, which can cause unwanted scroll behavior.

* fix(dialog): remove onOpenAutoFocus, keep only onCloseAutoFocus

Remove onOpenAutoFocus handler that was causing scroll issues on first open.
Keep onCloseAutoFocus to prevent scroll to trigger element on close.

Key fix: Move {...props} before onCloseAutoFocus to prevent override.

* fix(dialog): prevent scroll to top on modal close

- Move {...props} before onCloseAutoFocus to prevent override
- Simplify handler to just e.preventDefault()
- Apply fix to both dialog.tsx and modal.tsx
This commit is contained in:
sagit
2026-03-14 10:32:35 +08:00
committed by GitHub
parent 05c3b5842e
commit e56dd898ef
156 changed files with 294 additions and 167452 deletions
+5 -2
View File
@@ -73,9 +73,12 @@ const normalizeBatchFailure = (
};
};
const normalizeBatchFailureReason = (failure: BatchOperationFailure): string => {
const normalizeBatchFailureReason = (
failure: BatchOperationFailure,
): string => {
const name = typeof failure.name === "string" ? failure.name.trim() : "";
const reason = typeof failure.reason === "string" ? failure.reason.trim() : "";
const reason =
typeof failure.reason === "string" ? failure.reason.trim() : "";
if (name && reason) {
return `${name}: ${reason}`;
+2
View File
@@ -78,6 +78,8 @@ export const getNodeInstallCommand = (
export const updateNodeOrder = (data: {
nodes: Array<{ id: number; inx: number }>;
}) => Network.post("/node/update-order", data);
export const dismissNodeExpiryReminder = (id: number) =>
Network.post("/node/dismiss-expiry-reminder", { id });
export const checkNodeStatus = (nodeId?: number) => {
const params = nodeId ? { nodeId } : {};
+1
View File
@@ -6,6 +6,7 @@ export interface NodeApiItem {
remark?: string;
expiryTime?: number;
renewalCycle?: "month" | "quarter" | "year" | "";
expiryReminderDismissed?: number;
syncError?: string;
[key: string]: unknown;
}