@awsui/components-react
Version:
On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en
23 lines • 1.47 kB
JavaScript
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import { useRef } from 'react';
export const useAutosuggestLoadMore = ({ options = [], statusType, onLoadItems, }) => {
const lastFilteringText = useRef(null);
const fireLoadMore = ({ firstPage, samePage, filteringText, }) => {
var _a;
if (filteringText === undefined || lastFilteringText.current !== filteringText) {
if (filteringText !== undefined) {
lastFilteringText.current = filteringText;
}
onLoadItems({ filteringText: (_a = lastFilteringText.current) !== null && _a !== void 0 ? _a : '', firstPage, samePage });
}
};
const fireLoadMoreOnScroll = () => {
options.length > 0 && statusType === 'pending' && fireLoadMore({ firstPage: false, samePage: false });
};
const fireLoadMoreOnRecoveryClick = () => fireLoadMore({ firstPage: false, samePage: true });
const fireLoadMoreOnInputFocus = () => { var _a; return fireLoadMore({ firstPage: true, samePage: false, filteringText: (_a = lastFilteringText.current) !== null && _a !== void 0 ? _a : '' }); };
const fireLoadMoreOnInputChange = (filteringText) => fireLoadMore({ firstPage: true, samePage: false, filteringText });
return { fireLoadMoreOnScroll, fireLoadMoreOnRecoveryClick, fireLoadMoreOnInputFocus, fireLoadMoreOnInputChange };
};
//# sourceMappingURL=load-more-controller.js.map