fix(dialogs): move open-reset effects into onOpenChange handlers

This commit is contained in:
Aaron Sequeira 2026-04-19 16:09:34 +05:30
parent 2b2453e015
commit 2d4adcea64
3 changed files with 29 additions and 20 deletions

View file

@ -1,7 +1,7 @@
"use client";
import { ChevronDown, ChevronRight, Folder, FolderOpen, Home } from "lucide-react";
import { useCallback, useEffect, useMemo, useState } from "react";
import { useCallback, useMemo, useState } from "react";
import { Button } from "@/components/ui/button";
import {
Dialog,
@ -36,12 +36,16 @@ export function FolderPickerDialog({
const [selectedId, setSelectedId] = useState<number | null>(null);
const [expandedIds, setExpandedIds] = useState<Set<number>>(new Set());
useEffect(() => {
if (open) {
setSelectedId(null);
setExpandedIds(new Set());
}
}, [open]);
const handleOpenChange = useCallback(
(next: boolean) => {
if (next) {
setSelectedId(null);
setExpandedIds(new Set());
}
onOpenChange(next);
},
[onOpenChange]
);
const foldersByParent = useMemo(() => {
const map: Record<string, FolderDisplay[]> = {};
@ -123,7 +127,7 @@ export function FolderPickerDialog({
}
return (
<Dialog open={open} onOpenChange={onOpenChange}>
<Dialog open={open} onOpenChange={handleOpenChange}>
<DialogContent className="select-none max-w-[90vw] sm:max-w-sm p-4 sm:p-5 data-[state=open]:animate-none data-[state=closed]:animate-none">
<DialogHeader className="space-y-2 pb-2">
<div className="flex items-center gap-2 sm:gap-3">