Hi Oliver,
Firstly, a little time saver, adding the context to your link can also be done by doing the following:
formatted_destination = cs.link(cs.ref('page_shortbreaks_view_opportunities'), record_id);
As cs.link includes this parameter option and passing a numerical value alone will automatically add it as a context_record_id.
Using a Page Path reference to an Authenticated Webpage in cs.link should generate a link with a hash automatically generated for you.
Therefore I will assume that you’re creating this new link while working through a series of Authenticated Webpages and not a one off; as you want to preserve the previously generated hash.
Therefore in that case we need to get the existing URL parameters in use and append them to the above link by using cs.url_param([name],[default]). Assuming the URL has a parameter of “hash”, that I want to preserve, I would do something similar to the following:
let newParams = {};
newParams.context_record_id = record_id;
newParams.hash = cs.url_param("hash");
formatted_destination = cs.link(cs.ref('page_shortbreaks_view_opportunities'), newParams);
Hopefully this should help 
Regards,
Neil.