Skip to content

Commit f8a7bd0

Browse files
fix(accordion): defaultValue flicker fix
Moved from useVisibleTask to useTask, since the other logic changes in useTask
1 parent bb320ef commit f8a7bd0

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

packages/kit-headless/src/components/accordion/accordion-trigger.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
} from './accordion-context-id';
1717

1818
import { KeyCode } from '../../utils/key-code.type';
19+
import { isBrowser, isServer } from '@builder.io/qwik/build';
1920

2021
export const accordionPreventedKeys = [
2122
KeyCode.Home,
@@ -50,6 +51,7 @@ export const AccordionTrigger = component$(
5051

5152
const selectedTriggerIdSig = contextService.selectedTriggerIdSig;
5253
const isTriggerExpandedSig = itemContext.isTriggerExpandedSig;
54+
const isDefaultValueOpenedSig = useSignal<boolean>(false);
5355

5456
/* selectedTriggerIdSig is updated when getSelectedTriggerId$ runs */
5557
useTask$(function resetTriggersTask({ track }) {
@@ -58,6 +60,11 @@ export const AccordionTrigger = component$(
5860
if (behavior === 'single' && triggerId !== selectedTriggerIdSig.value) {
5961
isTriggerExpandedSig.value = false;
6062
}
63+
64+
if (defaultValue && !isDefaultValueOpenedSig.value) {
65+
isTriggerExpandedSig.value = true;
66+
isDefaultValueOpenedSig.value = true;
67+
}
6168
});
6269

6370
useVisibleTask$(function navigateTriggerVisibleTask({ cleanup }) {
@@ -75,10 +82,6 @@ export const AccordionTrigger = component$(
7582
cleanup(() => {
7683
triggerElement?.removeEventListener('keydown', handler);
7784
});
78-
79-
if (behavior === 'single' && defaultValue) {
80-
isTriggerExpandedSig.value = true;
81-
}
8285
});
8386

8487
return (

0 commit comments

Comments
 (0)