vadimdemedes / ink

🌈 React for interactive command-line apps
https://term.ink
MIT License
26.42k stars 593 forks source link

Is there a way to know when the rendering of a component is finished? #596

Open fomalhautb opened 1 year ago

fomalhautb commented 1 year ago

I tried using hook in a component useEffect(() => {...}, []) but the hook is executed before the component is finished rendering. Any way to trigger a function when the component is finished rendering?

vadimdemedes commented 1 year ago

What is your use case?

fomalhautb commented 1 year ago

What is your use case?

I am building an AI copilot for CLI. (similar to this but open sourced).

The user types a prompt, when the command is generated, the user can decide to execute the command or do some other actions. If the user decide to execute the command, I want to leave a final message before the command is executed so the user can scroll back and find useful information. Basically like this:

Before execution

Prompt: list all files
Generation: ls

> (1) execute
  (2) edit
  (3) discard

After execution

Prompt: list all files
Executed Command: ls

Execution Result:
- file 1
- file 2
...

So I want to execute the command with spawn only when the final message is finished rendering by ink

vadimdemedes commented 1 year ago

Not sure I still understand it. How would you do it in React, if it was on the web, not a terminal?