All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.js.components.rest.RESTSchemaDropdownMenu.tsx Maven / Gradle / Ivy

There is a newer version: 1.0.6
Show newest version
/**
 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

import ClayDropDown from '@clayui/drop-down';
import fuzzy from 'fuzzy';
import React, {useState} from 'react';

import {FUZZY_OPTIONS} from '../../utils/constants';

export default function RESTSchemaDropdownMenu({
	onItemClick,
	restSchemas: initialRESTSchemas,
}: {
	onItemClick: Function;
	restSchemas: Array;
}) {
	const [restSchemas, setRESTSchemas] =
		useState>(initialRESTSchemas);
	const [query, setQuery] = useState('');

	const onSearch = (query: string) => {
		setQuery(query);

		const regexp = new RegExp(query, 'i');

		setRESTSchemas(
			query
				? initialRESTSchemas.filter((restSchema) => {
						return restSchema.match(regexp);
					}) || []
				: initialRESTSchemas
		);
	};

	return (
		<>
			

			
				{(item: string) => {
					const fuzzymatch = fuzzy.match(query, item, FUZZY_OPTIONS);

					return (
						 onItemClick(item)}
							roleItem="option"
						>
							{fuzzymatch ? (
								
							) : (
								item
							)}
						
					);
				}}
			
		
	);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy