fix(FN-2498): keep New Task more options collapsed by default
- Add an autoExpandMoreOptionsOnSelection prop to TaskForm and gate advanced-section auto-expansion behind it - Disable auto-expansion in NewTaskModal so default-on workflow step preselection does not open More options on first render - Mark collapsed advanced content with the hidden attribute to prevent interaction until expanded - Add dashboard tests for default collapsed state, opt-out auto-expand behavior, and default-on workflow-step regression coverage - Replace hardcoded spacing/transition values in NewTaskModal.css with design tokens
This commit is contained in:
@@ -88,6 +88,8 @@ export interface TaskFormProps {
|
||||
renderBelowPrimary?: React.ReactNode;
|
||||
/** When true, skip rendering the Dependencies form-group inside "More options". Use when the parent renders its own dependency UI via renderBelowPrimary. */
|
||||
hideDependencies?: boolean;
|
||||
/** When true (default), More options auto-expands when non-default advanced selections are present. */
|
||||
autoExpandMoreOptionsOnSelection?: boolean;
|
||||
}
|
||||
|
||||
export function TaskForm({
|
||||
@@ -128,6 +130,7 @@ export function TaskForm({
|
||||
onClose,
|
||||
renderBelowPrimary,
|
||||
hideDependencies,
|
||||
autoExpandMoreOptionsOnSelection = true,
|
||||
reviewLevel,
|
||||
onReviewLevelChange,
|
||||
}: TaskFormProps) {
|
||||
@@ -144,7 +147,9 @@ export function TaskForm({
|
||||
reviewLevel !== undefined;
|
||||
|
||||
const [showDepDropdown, setShowDepDropdown] = useState(false);
|
||||
const [showMoreOptions, setShowMoreOptions] = useState(hasInitialMoreOptions);
|
||||
const [showMoreOptions, setShowMoreOptions] = useState(
|
||||
autoExpandMoreOptionsOnSelection ? hasInitialMoreOptions : false,
|
||||
);
|
||||
const [depSearch, setDepSearch] = useState("");
|
||||
const [availableModels, setAvailableModels] = useState<ModelInfo[]>([]);
|
||||
const [favoriteProviders, setFavoriteProviders] = useState<string[]>([]);
|
||||
@@ -243,11 +248,16 @@ export function TaskForm({
|
||||
|
||||
// Auto-expand advanced options when non-default values are present.
|
||||
useEffect(() => {
|
||||
if (!autoExpandMoreOptionsOnSelection) {
|
||||
hadMoreOptionSelectionsRef.current = hasMoreOptionSelections;
|
||||
return;
|
||||
}
|
||||
|
||||
if (hasMoreOptionSelections && !hadMoreOptionSelectionsRef.current) {
|
||||
setShowMoreOptions(true);
|
||||
}
|
||||
hadMoreOptionSelectionsRef.current = hasMoreOptionSelections;
|
||||
}, [hasMoreOptionSelections]);
|
||||
}, [hasMoreOptionSelections, autoExpandMoreOptionsOnSelection]);
|
||||
|
||||
// Keep dependency dropdown state clean when advanced options are collapsed.
|
||||
useEffect(() => {
|
||||
@@ -731,6 +741,7 @@ export function TaskForm({
|
||||
id="task-form-more-options"
|
||||
className={`task-form-more-options${showMoreOptions ? "" : " collapsed"}`}
|
||||
aria-hidden={!showMoreOptions}
|
||||
hidden={!showMoreOptions}
|
||||
data-testid="task-form-more-options"
|
||||
>
|
||||
{/* Attachments */}
|
||||
|
||||
Reference in New Issue
Block a user