pub fn handle_critical_error(
        cx: Scope,
        err: ClientError,
        error_views: &ErrorViews<BrowserNodeType>,
    ) {
        // We do NOT want this called if there is a reactor (but, if it is, we have no
        // clue about the calling situation, so it's safest to just panic)
        assert!(try_use_context::<Reactor<BrowserNodeType>>(cx).is_none(), "attempted to handle 'critical' error, but a reactor was found (this is a programming error)");

        let popup_error_root = Self::get_popup_err_elem();
        // This will determine the `Static` error context (we guaranteed there's no
        // reactor above). We don't care about the head in a popup.
        let (_, err_view, disposer) = error_views.handle(cx, err, ErrorPosition::Popup);
        render_or_hydrate(
            cx,
            view! { cx,
                // This is not reactive, as there's no point in making it so
                (err_view)
            },
            popup_error_root,
            true, // Browser-side-only error, so force a full render
        );
        // SAFETY: We're outside the child scope
        unsafe {
            disposer.dispose();
        }
    }
Creates the infrastructure necessary to handle a critical error, and
then displays it. This is intended for use if the reactor cannot be
instantiated, and it takes the app-level context to verify this.

# Panics
This will panic if given a scope in which a reactor exists.

# Visibility
This is broadly part of Perseus implementation details, and is exposed
only for those foregoing `#[perseus::main]` or
`#[perseus::browser_main]` to build their own custom browser-side
entrypoint (do not do this unless you really need to).
packages/perseus/src/reactor/error.rs