Hey Craig,
Thanks for taking the time to write this feedback.
You have a valid point here.
showTnC$ will never get a signal in case of agree === true.
In other words will be waiting forever. (potential memory leak)
Also you are correct about the solution to have destroy signal to make sure the subscription will not be orphaned.
Fortunately in my case this code lives in “app.component.ts” which means component will never get destroyed or reinitialised unless the whole page is reloaded.
Regardless, I can improve the code by making sure all these subscriptions are unsubscribed as soon as they are not required.
For example, if I get a signal to showIntro$, Probably I can send a destroy signal for my showTnC$ using the takeUntil operator and assume there is no further use for showTnC$.