mirror of
https://github.com/webstudio-is/webstudio.git
synced 2026-11-07 20:44:05 +09:00
## Description - When inserting prompt from history, now I can hit enter right away or delete or copy. - Update placeholder text - Prevent inserting prompts when textarea disabled ## Steps for reproduction 1. click history item 2. see inserted text being selected ## Code Review - [ ] hi @istarkov , I need you to do - conceptual review (architecture, feature-correctness) - detailed review (read every line) - test it on preview ## Before requesting a review - [ ] made a self-review - [ ] added inline comments where things may be not obvious (the "why", not "what") ## Before merging - [ ] tested locally and on preview environment (preview dev login: 5de6) - [ ] updated [test cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md) document - [ ] added tests - [ ] if any new env variables are added, added them to `.env.example` and the `builder/env-check.js` if mandatory
24 lines
615 B
TypeScript
24 lines
615 B
TypeScript
import { useCallback, useEffect, useState } from "react";
|
|
|
|
/**
|
|
* Debounce task execution until useEffect
|
|
* Example:
|
|
* const scheduleEffect = useEffectQueue();
|
|
* scheduleEffect(() => { ... })
|
|
*/
|
|
export const useEffectQueue = () => {
|
|
const [updateCallback, setUpdateCallback] = useState(() => () => {
|
|
/* empty */
|
|
});
|
|
|
|
useEffect(() => {
|
|
// Because of how our styles works we need to update after React render to be sure that
|
|
// all styles are applied
|
|
updateCallback();
|
|
}, [updateCallback]);
|
|
|
|
return useCallback((task: () => void) => {
|
|
setUpdateCallback(() => task);
|
|
}, []);
|
|
};
|