Skip to content

Commit

Permalink
chore: Scrolls top when opening a select filter
Browse files Browse the repository at this point in the history
  • Loading branch information
michael-s-molina committed Jun 14, 2021
1 parent 448c689 commit 3d6c6d2
Showing 1 changed file with 18 additions and 1 deletion.
Expand Up @@ -29,12 +29,20 @@ import {
t,
tn,
} from '@superset-ui/core';
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import React, {
RefObject,
ReactElement,
useCallback,
useEffect,
useMemo,
useState,
} from 'react';
import { Select } from 'src/common/components';
import debounce from 'lodash/debounce';
import { SLOW_DEBOUNCE } from 'src/constants';
import { useImmerReducer } from 'use-immer';
import Icons from 'src/components/Icons';
import { usePrevious } from 'src/common/hooks/usePrevious';
import { PluginFilterSelectProps, SelectValue } from './types';
import { StyledSelect, Styles } from '../common';
import { getDataRecordFormatter, getSelectExtraFormData } from '../../utils';
Expand Down Expand Up @@ -115,6 +123,7 @@ export default function PluginFilterSelect(props: PluginFilterSelectProps) {
return [...firstData, ...restData];
}, [col, selectedValues, data]);
const [isDropdownVisible, setIsDropdownVisible] = useState(false);
const wasDropdownVisible = usePrevious(isDropdownVisible);
const [currentSuggestionSearch, setCurrentSuggestionSearch] = useState('');
const [dataMask, dispatchDataMask] = useImmerReducer(reducer, {
extraFormData: {},
Expand Down Expand Up @@ -276,6 +285,14 @@ export default function PluginFilterSelect(props: PluginFilterSelectProps) {
onSelect={clearSuggestionSearch}
onBlur={handleBlur}
onDropdownVisibleChange={setIsDropdownVisible}
dropdownRender={(
originNode: ReactElement & { ref?: RefObject<HTMLElement> },
) => {
if (isDropdownVisible && !wasDropdownVisible) {
originNode.ref?.current?.scrollTo({ top: 0 });
}
return originNode;
}}
onFocus={setFocusedFilter}
// @ts-ignore
onChange={handleChange}
Expand Down

0 comments on commit 3d6c6d2

Please sign in to comment.