Feat: filler list by user change input (#7389)

### What problem does this PR solve?

filler list by user change input

![Recording2025-04-28163440-ezgif
com-video-to-gif-converter](https://github.com/user-attachments/assets/6ff2cfea-dea9-4293-b9a6-b4c61ab9a549)

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
so95 2025-04-30 13:48:41 +07:00 committed by GitHub
parent 713c055e04
commit e2b0bceb1b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -20,7 +20,7 @@ import {
$isRangeSelection,
TextNode,
} from 'lexical';
import {
import React, {
ReactElement,
useCallback,
useContext,
@ -114,11 +114,26 @@ export default function VariablePickerMenuPlugin({
minLength: 0,
});
const setQueryString = useCallback(() => {}, []);
const [queryString, setQueryString] = React.useState<string| null>('');
const options = useBuildComponentIdSelectOptions(node?.id, node?.parentId);
const nextOptions: VariableOption[] = options.map(
const filteredOptions = React.useMemo(() => {
if (!queryString) return options;
const lowerQuery = queryString.toLowerCase();
return options
.map((x) => ({
...x,
options: x.options.filter(
(y) =>
y.label.toLowerCase().includes(lowerQuery) ||
y.value.toLowerCase().includes(lowerQuery),
),
}))
.filter((x) => x.options.length > 0);
}, [options, queryString]);
const nextOptions: VariableOption[] = filteredOptions.map(
(x) =>
new VariableOption(
x.label,