Framework updates
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -222,6 +222,16 @@ class Rsx {
|
||||
return !window.rsxapp.debug;
|
||||
}
|
||||
|
||||
// Returns true when running inside the SSR Node server
|
||||
static is_ssr() {
|
||||
return !!window.__SSR__;
|
||||
}
|
||||
|
||||
// Returns true in the browser when hydrating an SSR-rendered page
|
||||
static is_ssr_hydrate() {
|
||||
return !!(window.rsxapp && window.rsxapp.page_data && window.rsxapp.page_data.ssr);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current logged-in user model instance
|
||||
* Returns the hydrated ORM model if available, or the raw data object
|
||||
@@ -717,24 +727,27 @@ class Rsx {
|
||||
Rsx.trigger(phase.event);
|
||||
}
|
||||
|
||||
// Ui refresh callbacks
|
||||
Rsx.trigger_refresh();
|
||||
|
||||
// All phases complete
|
||||
console_debug('RSX_INIT', 'Initialization complete');
|
||||
|
||||
// TODO: Find a good wait to wait for all jqhtml components to load, then trigger on_ready and on('ready') emulating the top level last syntax that jqhtml components operateas, but as a standard js class (such as a page class). The biggest question is, how do we efficiently choose only the top level jqhtml components. do we only consider components cretaed directly on blade templates? that seams reasonable...
|
||||
// Skip browser-only post-boot steps in SSR
|
||||
if (!Rsx.is_ssr()) {
|
||||
// Ui refresh callbacks
|
||||
Rsx.trigger_refresh();
|
||||
|
||||
// Trigger _debug_ready event - this is ONLY for tooling like rsx:debug
|
||||
// DO NOT use this in application code - use on_app_ready() phase instead
|
||||
// This event exists solely for debugging tools that need to run after full initialization
|
||||
Rsx.trigger('_debug_ready');
|
||||
// TODO: Find a good wait to wait for all jqhtml components to load, then trigger on_ready and on('ready') emulating the top level last syntax that jqhtml components operateas, but as a standard js class (such as a page class). The biggest question is, how do we efficiently choose only the top level jqhtml components. do we only consider components cretaed directly on blade templates? that seams reasonable...
|
||||
|
||||
// Restore scroll position on page refresh
|
||||
// Use requestAnimationFrame to ensure DOM is fully rendered after SPA action completes
|
||||
requestAnimationFrame(() => {
|
||||
Rsx._restore_scroll_on_refresh();
|
||||
});
|
||||
// Trigger _debug_ready event - this is ONLY for tooling like rsx:debug
|
||||
// DO NOT use this in application code - use on_app_ready() phase instead
|
||||
// This event exists solely for debugging tools that need to run after full initialization
|
||||
Rsx.trigger('_debug_ready');
|
||||
|
||||
// Restore scroll position on page refresh
|
||||
// Use requestAnimationFrame to ensure DOM is fully rendered after SPA action completes
|
||||
requestAnimationFrame(() => {
|
||||
Rsx._restore_scroll_on_refresh();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
*/
|
||||
class Rsx_Behaviors {
|
||||
static _on_framework_core_init() {
|
||||
if (Rsx.is_ssr()) return;
|
||||
Rsx_Behaviors._init_ignore_invalid_anchor_links();
|
||||
Rsx_Behaviors._trim_copied_text();
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
*/
|
||||
class Rsx_Droppable {
|
||||
static _on_framework_core_init() {
|
||||
if (Rsx.is_ssr()) return;
|
||||
Rsx_Droppable._init();
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ class Rsx_Init {
|
||||
* Initializes the core environment and runs basic sanity checks
|
||||
*/
|
||||
static _on_framework_core_init() {
|
||||
if (Rsx.is_ssr()) return;
|
||||
if (!Rsx.is_prod()) {
|
||||
Rsx_Init.__environment_checks();
|
||||
}
|
||||
|
||||
@@ -12,6 +12,8 @@ class Rsx_View_Transitions {
|
||||
* Checks for View Transitions API support and enables if available
|
||||
*/
|
||||
static _on_framework_core_init() {
|
||||
if (Rsx.is_ssr()) return;
|
||||
|
||||
// Check if View Transitions API is supported
|
||||
if (!document.startViewTransition) {
|
||||
console_debug('VIEW_TRANSITIONS', 'View Transitions API not supported, skipping');
|
||||
|
||||
@@ -92,6 +92,8 @@ class Width_Group {
|
||||
* Initialize jQuery extensions
|
||||
*/
|
||||
static _on_framework_core_define() {
|
||||
if (Rsx.is_ssr()) return;
|
||||
|
||||
/**
|
||||
* Add elements to a named width group
|
||||
* @param {string} group_name - Name of the width group
|
||||
|
||||
Reference in New Issue
Block a user