Skip to content

Commit f379c37

Browse files
rename force-load feature into immediate-hydrate feature
1 parent 153a6ce commit f379c37

File tree

3 files changed

+22
-20
lines changed

3 files changed

+22
-20
lines changed

node_package/src/clientStartup.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import {
22
hydrateAllStores,
3-
hydrateForceLoadedStores,
3+
hydrateImmediateHydratedStores,
44
renderOrHydrateAllComponents,
5-
renderOrHydrateForceLoadedComponents,
5+
renderOrHydrateImmediateHydratedComponents,
66
unmountAll,
77
} from './pro/ClientSideRenderer.ts';
88
import { onPageLoaded, onPageUnloaded } from './pageLifecycle.ts';
@@ -36,8 +36,8 @@ export function clientStartup() {
3636
// Force loaded components and stores are rendered and hydrated immediately.
3737
// The hydration process can handle the concurrent hydration of components and stores,
3838
// so awaiting this isn't necessary.
39-
void renderOrHydrateForceLoadedComponents();
40-
void hydrateForceLoadedStores();
39+
void renderOrHydrateImmediateHydratedComponents();
40+
void hydrateImmediateHydratedStores();
4141

4242
// Other components and stores are rendered and hydrated when the page is fully loaded
4343
onPageLoaded(reactOnRailsPageLoaded);

node_package/src/pro/ClientSideRenderer.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@ const IMMEDIATE_HYDRATION_PRO_WARNING =
3232
"[REACT ON RAILS] The 'immediate_hydration' feature requires a React on Rails Pro license. " +
3333
'Please visit https://shakacode.com/react-on-rails-pro to get a license.';
3434

35-
const FORCE_LOADING_PRO_WARNING =
36-
"[REACT ON RAILS] The 'force_loading' feature requires a React on Rails Pro license. " +
37-
'Please visit https://shakacode.com/react-on-rails-pro to get a license.';
38-
3935
async function delegateToRenderer(
4036
componentObj: RegisteredComponent,
4137
props: Record<string, unknown>,
@@ -277,8 +273,11 @@ async function forAllElementsAsync(
277273
await Promise.all(Array.from(els).map(callback));
278274
}
279275

280-
export const renderOrHydrateForceLoadedComponents = () =>
281-
forAllElementsAsync('.js-react-on-rails-component[data-force-load="true"]', renderOrHydrateComponent);
276+
export const renderOrHydrateImmediateHydratedComponents = () =>
277+
forAllElementsAsync(
278+
'.js-react-on-rails-component[data-immediate-hydration="true"]',
279+
renderOrHydrateComponent,
280+
);
282281

283282
export const renderOrHydrateAllComponents = () =>
284283
forAllElementsAsync('.js-react-on-rails-component', renderOrHydrateComponent);
@@ -312,16 +311,19 @@ export async function hydrateStore(storeNameOrElement: string | Element) {
312311
await storeRenderer.waitUntilHydrated();
313312
}
314313

315-
export const hydrateForceLoadedStores = () => {
314+
export const hydrateImmediateHydratedStores = () => {
316315
const railsContext = getRailsContext();
317316
const hasProLicense = railsContext?.rorPro;
318317

319318
if (!hasProLicense) {
320-
console.warn(FORCE_LOADING_PRO_WARNING);
319+
console.warn(IMMEDIATE_HYDRATION_PRO_WARNING);
321320
return Promise.resolve();
322321
}
323322

324-
return forAllElementsAsync(`[${REACT_ON_RAILS_STORE_ATTRIBUTE}][data-force-load="true"]`, hydrateStore);
323+
return forAllElementsAsync(
324+
`[${REACT_ON_RAILS_STORE_ATTRIBUTE}][data-immediate-hydration="true"]`,
325+
hydrateStore,
326+
);
325327
};
326328

327329
export const hydrateAllStores = () =>

node_package/tests/proLicenseValidation.test.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* @jest-environment jsdom
33
*/
44

5-
import { hydrateForceLoadedStores } from '../src/pro/ClientSideRenderer.ts';
5+
import { hydrateImmediateHydratedStores } from '../src/pro/ClientSideRenderer.ts';
66
import { getRailsContext } from '../src/context.ts';
77

88
// Mock the getRailsContext function
@@ -22,14 +22,14 @@ describe('Pro License Validation', () => {
2222
consoleSpy.mockRestore();
2323
});
2424

25-
describe('hydrateForceLoadedStores', () => {
25+
describe('hydrateImmediateHydratedStores', () => {
2626
it('should warn and return early when no Pro license is detected', async () => {
2727
getRailsContext.mockReturnValue({ rorPro: false });
2828

29-
const result = await hydrateForceLoadedStores();
29+
const result = await hydrateImmediateHydratedStores();
3030

3131
expect(consoleSpy).toHaveBeenCalledWith(
32-
"[REACT ON RAILS] The 'force_loading' feature requires a React on Rails Pro license. " +
32+
"[REACT ON RAILS] The 'immediate_hydration' feature requires a React on Rails Pro license. " +
3333
'Please visit https://shakacode.com/react-on-rails-pro to get a license.',
3434
);
3535
expect(result).toBeUndefined();
@@ -39,7 +39,7 @@ describe('Pro License Validation', () => {
3939
getRailsContext.mockReturnValue({ rorPro: true });
4040

4141
// Test that it doesn't warn when license is valid (no force-load elements present)
42-
const result = hydrateForceLoadedStores();
42+
const result = hydrateImmediateHydratedStores();
4343

4444
expect(consoleSpy).not.toHaveBeenCalled();
4545
expect(result).toBeDefined();
@@ -48,10 +48,10 @@ describe('Pro License Validation', () => {
4848
it('should return early when no rails context is available', async () => {
4949
getRailsContext.mockReturnValue(null);
5050

51-
const result = await hydrateForceLoadedStores();
51+
const result = await hydrateImmediateHydratedStores();
5252

5353
expect(consoleSpy).toHaveBeenCalledWith(
54-
"[REACT ON RAILS] The 'force_loading' feature requires a React on Rails Pro license. " +
54+
"[REACT ON RAILS] The 'immediate_hydration' feature requires a React on Rails Pro license. " +
5555
'Please visit https://shakacode.com/react-on-rails-pro to get a license.',
5656
);
5757
expect(result).toBeUndefined();

0 commit comments

Comments
 (0)