mirror of
https://github.com/estruyf/vscode-front-matter.git
synced 2026-07-04 08:51:05 +02:00
Opimizations
This commit is contained in:
@@ -72,10 +72,10 @@ export class StatusListener {
|
||||
}
|
||||
}
|
||||
|
||||
// const panel = PanelProvider.getInstance();
|
||||
// if (panel && panel.visible) {
|
||||
// DataListener.pushMetadata(article?.data);
|
||||
// }
|
||||
const panel = PanelProvider.getInstance();
|
||||
if (panel && panel.visible) {
|
||||
DataListener.pushMetadata(article?.data);
|
||||
}
|
||||
|
||||
return;
|
||||
} catch (e) {
|
||||
|
||||
@@ -42,7 +42,7 @@ export const TextField: React.FunctionComponent<ITextFieldProps> = ({
|
||||
const [, setRequiredFields] = useRecoilState(RequiredFieldsAtom);
|
||||
const [text, setText] = React.useState<string | null | undefined>(undefined);
|
||||
const [loading, setLoading] = React.useState<boolean>(false);
|
||||
const [lastUpdated, setLastUpdated] = React.useState<number>(0);
|
||||
const [lastUpdated, setLastUpdated] = React.useState<number | null>(null);
|
||||
const debouncedText = useDebounce<string | null | undefined>(text, DEBOUNCE_TIME);
|
||||
|
||||
const onTextChange = (txtValue: string) => {
|
||||
@@ -121,16 +121,17 @@ export const TextField: React.FunctionComponent<ITextFieldProps> = ({
|
||||
}, [settings?.aiEnabled, name]);
|
||||
|
||||
useEffect(() => {
|
||||
if (text !== value && (Date.now() - DEBOUNCE_TIME) > lastUpdated) {
|
||||
if (text !== value && (lastUpdated === null || (Date.now() - DEBOUNCE_TIME) > lastUpdated)) {
|
||||
setText(value || null);
|
||||
}
|
||||
setLastUpdated(null);
|
||||
}, [value]);
|
||||
|
||||
useEffect(() => {
|
||||
if (debouncedText !== undefined && value !== debouncedText) {
|
||||
if (debouncedText !== undefined && value !== debouncedText && lastUpdated !== null) {
|
||||
onChange(debouncedText || '');
|
||||
}
|
||||
}, [debouncedText, value]);
|
||||
}, [debouncedText, value, lastUpdated]);
|
||||
|
||||
return (
|
||||
<div className={`metadata_field`}>
|
||||
|
||||
@@ -61,6 +61,10 @@ export default function useMessages() {
|
||||
}
|
||||
};
|
||||
|
||||
const unsetFocus = () => {
|
||||
setFocus(null);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (loading) {
|
||||
window.setTimeout(() => {
|
||||
@@ -96,8 +100,6 @@ export default function useMessages() {
|
||||
mediaSelecting,
|
||||
mode,
|
||||
localeReady,
|
||||
unsetFocus: () => {
|
||||
setFocus(null);
|
||||
}
|
||||
unsetFocus
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user