From 18108c2db5d7f49440d5f5fdaa94a43e8a9a423e Mon Sep 17 00:00:00 2001 From: Brian Ingles Date: Tue, 11 Jun 2024 09:52:48 -0500 Subject: [PATCH] Comments (#2065) --- .../src/spectrum/utils/useOnChangeTrackUncontrolled.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/components/src/spectrum/utils/useOnChangeTrackUncontrolled.ts b/packages/components/src/spectrum/utils/useOnChangeTrackUncontrolled.ts index 0450c114a..ff79b2250 100644 --- a/packages/components/src/spectrum/utils/useOnChangeTrackUncontrolled.ts +++ b/packages/components/src/spectrum/utils/useOnChangeTrackUncontrolled.ts @@ -12,6 +12,11 @@ export interface UseOnChangeTrackUncontrolledResult { onChangeMaybeUncontrolled: (key: TChangeKey) => void; } +/** + * Returns a selectedKey and onChange handler that can manage selection for both + * controlled and uncontrolled components. Useful for cases where the component + * needs to know the last selectedKey regardless of controlled or uncontrolled. + */ export function useOnChangeTrackUncontrolled({ defaultSelectedKey, selectedKey, @@ -27,7 +32,6 @@ export function useOnChangeTrackUncontrolled({ const onChangeMaybeUncontrolled = useCallback( (key: TChangeKey): void => { // If our component is uncontrolled, track the selected key internally - // so that we can scroll to the selected item if the user re-opens if (isUncontrolled) { setUncontrolledSelectedKey(key); } @@ -38,11 +42,9 @@ export function useOnChangeTrackUncontrolled({ ); return { - // isUncontrolled, selectedKeyMaybeUncontrolled: isUncontrolled ? uncontrolledSelectedKey : selectedKey, - // uncontrolledSelectedKey, onChangeMaybeUncontrolled, }; }