Get current workflow status

What’s the best way to get the current status of a workflow, along with the activities?
My use case is that I have to keep displaying the status of a workflow from the time it started till it finishes.
Is it good to directly query the history API - https://github.com/temporalio/tctl/blob/main/cli/workflow_commands.go#L311C11-L311C11?
Should I go with the query handler approach - https://github.com/temporalio/samples-go/tree/main/query?
What is the recommended way for this use case?

I would recommend the query handler approach. You can customise the query results exactly for your use case.