@@ -156,7 +156,11 @@ const apiOrigin =
156156 try {
157157 if (window.localStorage.getItem(dismissKey) === '1') return;
158158 } catch (error) {}
159+ const announceOwnershipChange = () => {
160+ window.dispatchEvent(new Event('go-banner:state-change'));
161+ };
159162 document.documentElement.classList.add('go-banner-pending');
163+ announceOwnershipChange();
160164
161165 const track = (name, extra) => {
162166 try {
@@ -172,10 +176,12 @@ const apiOrigin =
172176 const hide = () => {
173177 banner.setAttribute('hidden', '');
174178 document.documentElement.classList.remove('go-banner-active', 'go-banner-pending');
179+ announceOwnershipChange();
175180 };
176181 const show = () => {
177182 banner.removeAttribute('hidden');
178183 document.documentElement.classList.add('go-banner-active');
184+ announceOwnershipChange();
179185 track('surface_view');
180186 };
181187
@@ -191,6 +197,7 @@ const apiOrigin =
191197 const apiOrigin = (banner.getAttribute('data-api-origin') || '').replace(/\/$/, '');
192198 if (!apiOrigin) {
193199 document.documentElement.classList.remove('go-banner-pending');
200+ announceOwnershipChange();
194201 return;
195202 }
196203 fetch(apiOrigin + '/api/auth/get-session', {
@@ -222,6 +229,7 @@ const apiOrigin =
222229 .catch(() => {
223230 // A failed entitlement probe cannot safely classify a signed-in visitor.
224231 })
225- .finally(() => document.documentElement.classList.remove('go-banner-pending'));
232+ .finally(() => document.documentElement.classList.remove('go-banner-pending'))
233+ .then(announceOwnershipChange);
226234 })();
227235</script >
0 commit comments