Skip to content

Commit 04fb48e

Browse files
expand on sample (#4313)
1 parent 58efe3d commit 04fb48e

File tree

38 files changed

+32104
-28954
lines changed

38 files changed

+32104
-28954
lines changed

modernjs-ssr-data-loader/host/@mf-types/host/Content.d.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.

modernjs-ssr-data-loader/host/@mf-types/host/apis.d.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

modernjs-ssr-data-loader/host/@mf-types/host/compiled-types/src/components/Content.d.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.

modernjs-ssr-data-loader/host/@mf-types/host/mf-full-routes.d.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.

modernjs-ssr-data-loader/host/@mf-types/host/mf-routes-meta.d.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.

modernjs-ssr-data-loader/host/@mf-types/host/mf-routes.d.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.

modernjs-ssr-data-loader/host/@mf-types/host/mf-slim-routes.d.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 44 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,44 @@
1-
import type { PackageType as PackageType_0,RemoteKeys as RemoteKeys_0 } from './host/apis.d.ts';
2-
import type { PackageType as PackageType_1,RemoteKeys as RemoteKeys_1 } from './remote/apis.d.ts';
3-
declare module "@module-federation/runtime" {
4-
type RemoteKeys = RemoteKeys_0 | RemoteKeys_1;
5-
type PackageType<T, Y=any> = T extends RemoteKeys_0 ? PackageType_0<T> :
6-
T extends RemoteKeys_1 ? PackageType_1<T> :
7-
Y ;
8-
export function loadRemote<T extends RemoteKeys,Y>(packageName: T): Promise<PackageType<T, Y>>;
9-
export function loadRemote<T extends string,Y>(packageName: T): Promise<PackageType<T, Y>>;
10-
}
11-
declare module "@module-federation/enhanced/runtime" {
12-
type RemoteKeys = RemoteKeys_0 | RemoteKeys_1;
13-
type PackageType<T, Y=any> = T extends RemoteKeys_0 ? PackageType_0<T> :
14-
T extends RemoteKeys_1 ? PackageType_1<T> :
15-
Y ;
16-
export function loadRemote<T extends RemoteKeys,Y>(packageName: T): Promise<PackageType<T, Y>>;
17-
export function loadRemote<T extends string,Y>(packageName: T): Promise<PackageType<T, Y>>;
18-
}
19-
declare module "@module-federation/runtime-tools" {
20-
type RemoteKeys = RemoteKeys_0 | RemoteKeys_1;
21-
type PackageType<T, Y=any> = T extends RemoteKeys_0 ? PackageType_0<T> :
22-
T extends RemoteKeys_1 ? PackageType_1<T> :
23-
Y ;
24-
export function loadRemote<T extends RemoteKeys,Y>(packageName: T): Promise<PackageType<T, Y>>;
25-
export function loadRemote<T extends string,Y>(packageName: T): Promise<PackageType<T, Y>>;
26-
}
27-
declare module "@modern-js/runtime/mf" {
28-
type RemoteKeys = RemoteKeys_0 | RemoteKeys_1;
29-
type PackageType<T, Y=any> = T extends RemoteKeys_0 ? PackageType_0<T> :
30-
T extends RemoteKeys_1 ? PackageType_1<T> :
31-
Y ;
32-
export function loadRemote<T extends RemoteKeys,Y>(packageName: T): Promise<PackageType<T, Y>>;
33-
export function loadRemote<T extends string,Y>(packageName: T): Promise<PackageType<T, Y>>;
34-
}
35-
1+
import type {
2+
PackageType as PackageType_0,
3+
RemoteKeys as RemoteKeys_0,
4+
} from './remote/apis.d.ts';
5+
declare module '@module-federation/runtime' {
6+
type RemoteKeys = RemoteKeys_0;
7+
type PackageType<T, Y = any> = T extends RemoteKeys_0 ? PackageType_0<T> : Y;
8+
export function loadRemote<T extends RemoteKeys, Y>(
9+
packageName: T,
10+
): Promise<PackageType<T, Y>>;
11+
export function loadRemote<T extends string, Y>(
12+
packageName: T,
13+
): Promise<PackageType<T, Y>>;
14+
}
15+
declare module '@module-federation/enhanced/runtime' {
16+
type RemoteKeys = RemoteKeys_0;
17+
type PackageType<T, Y = any> = T extends RemoteKeys_0 ? PackageType_0<T> : Y;
18+
export function loadRemote<T extends RemoteKeys, Y>(
19+
packageName: T,
20+
): Promise<PackageType<T, Y>>;
21+
export function loadRemote<T extends string, Y>(
22+
packageName: T,
23+
): Promise<PackageType<T, Y>>;
24+
}
25+
declare module '@module-federation/runtime-tools' {
26+
type RemoteKeys = RemoteKeys_0;
27+
type PackageType<T, Y = any> = T extends RemoteKeys_0 ? PackageType_0<T> : Y;
28+
export function loadRemote<T extends RemoteKeys, Y>(
29+
packageName: T,
30+
): Promise<PackageType<T, Y>>;
31+
export function loadRemote<T extends string, Y>(
32+
packageName: T,
33+
): Promise<PackageType<T, Y>>;
34+
}
35+
declare module '@modern-js/runtime/mf' {
36+
type RemoteKeys = RemoteKeys_0;
37+
type PackageType<T, Y = any> = T extends RemoteKeys_0 ? PackageType_0<T> : Y;
38+
export function loadRemote<T extends RemoteKeys, Y>(
39+
packageName: T,
40+
): Promise<PackageType<T, Y>>;
41+
export function loadRemote<T extends string, Y>(
42+
packageName: T,
43+
): Promise<PackageType<T, Y>>;
44+
}
Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,9 @@
11
import React from 'react';
2-
export declare const Button: () => React.JSX.Element;
2+
interface ButtonProps {
3+
onClick?: () => void;
4+
children?: React.ReactNode;
5+
variant?: 'primary' | 'secondary';
6+
size?: 'small' | 'medium' | 'large';
7+
}
8+
export declare const Button: React.FC<ButtonProps>;
9+
export {};
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
1-
/// <reference types="react" />
21
declare const _default: () => JSX.Element;
32
export default _default;

modernjs-ssr-data-loader/host/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"start": "modern start",
1010
"serve": "modern serve",
1111
"new": "modern new",
12-
"lint": "biome check",
12+
"lint": "biome check --write",
1313
"prepare": "simple-git-hooks",
1414
"upgrade": "modern upgrade"
1515
},
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
import {init} from '@modern-js/runtime/mf';
1+
import { init } from '@modern-js/runtime/mf';
22
import router from '@modern-js/runtime/router';
33
console.log(33333);
44
init({
5-
name:'host',
6-
remotes:[],
7-
shared: {
8-
'@modern-js/runtime/router': {
9-
version: "2.60.2",
10-
scope: "default",
11-
lib: ()=> router,
12-
shareConfig: {
13-
singleton: true,
14-
requiredVersion: ">1"
15-
}
16-
}
17-
}
18-
})
5+
name: 'host',
6+
remotes: [],
7+
shared: {
8+
'@modern-js/runtime/router': {
9+
version: '2.60.2',
10+
scope: 'default',
11+
lib: () => router,
12+
shareConfig: {
13+
singleton: true,
14+
requiredVersion: '>1',
15+
},
16+
},
17+
},
18+
});

modernjs-ssr-data-loader/host/src/entry-one/components/Content.tsx

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,44 @@
1-
import React from 'react';
2-
import Comp from 'remote/Image';
31
import Button from 'antd/lib/button';
2+
import * as React from 'react';
3+
import Comp from 'remote/Image';
44
import stuff from './stuff.module.css';
55

66
export default (): JSX.Element => (
77
<div
88
id="nested-remote-components"
99
style={{
10-
backgroundColor: '#e91ece',
11-
color: 'lightgrey',
12-
padding: '1rem',
10+
backgroundColor: '#9c27b0',
11+
color: '#ffffff',
12+
padding: '2rem',
13+
borderRadius: '8px',
14+
boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',
15+
maxWidth: '800px',
16+
margin: '2rem auto',
1317
}}
1418
>
15-
<h2 onClick={() => alert('Client side Javascript works!')}>
16-
<strong>nested remote</strong>
19+
<h2
20+
onClick={() => alert('Client side Javascript works!')}
21+
onKeyDown={e => {
22+
if (e.key === 'Enter' || e.key === ' ') {
23+
alert('Client side Javascript works!');
24+
}
25+
}}
26+
style={{
27+
marginBottom: '1.5rem',
28+
cursor: 'pointer',
29+
}}
30+
>
31+
<strong>Nested Remote Component</strong>
1732
</h2>
1833
<Button
1934
id="nested-remote-components-button"
2035
className={stuff['test-remote2']}
2136
onClick={() =>
2237
alert('[nested-remote-components] Client side Javascript works!')
2338
}
39+
style={{
40+
marginBottom: '1.5rem',
41+
}}
2442
>
2543
Click me to test <strong>nested remote</strong> interactive!
2644
</Button>

modernjs-ssr-data-loader/host/src/entry-one/routes/index.css

Lines changed: 72 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ main {
4141

4242
.title {
4343
display: flex;
44-
margin: 4rem 0 4rem;
44+
margin: 2rem 0;
4545
align-items: center;
46-
font-size: 4rem;
46+
font-size: 3.5rem;
4747
font-weight: 600;
4848
}
4949

@@ -54,14 +54,16 @@ main {
5454

5555
.name {
5656
color: #4ecaff;
57+
text-shadow: 0 2px 4px rgba(78, 202, 255, 0.2);
5758
}
5859

5960
.description {
6061
text-align: center;
6162
line-height: 1.5;
6263
font-size: 1.3rem;
6364
color: #1b3a42;
64-
margin-bottom: 5rem;
65+
margin-bottom: 3rem;
66+
max-width: 600px;
6567
}
6668

6769
.code {
@@ -125,3 +127,70 @@ main {
125127
margin-left: 0.5rem;
126128
margin-top: 3px;
127129
}
130+
131+
.container {
132+
max-width: 1200px;
133+
margin: 0 auto;
134+
padding: 2rem;
135+
font-family: system-ui, -apple-system, sans-serif;
136+
}
137+
138+
h1 {
139+
color: #2c3e50;
140+
text-align: center;
141+
margin-bottom: 2rem;
142+
}
143+
144+
.card {
145+
background: white;
146+
border-radius: 8px;
147+
padding: 1.5rem;
148+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
149+
margin-bottom: 2rem;
150+
}
151+
152+
.feature-list {
153+
list-style: none;
154+
padding: 0;
155+
}
156+
157+
.feature-list li {
158+
margin: 1rem 0;
159+
}
160+
161+
.nav-link {
162+
display: block;
163+
padding: 1rem;
164+
background: #f8f9fa;
165+
border-radius: 6px;
166+
color: #0066cc;
167+
text-decoration: none;
168+
transition: all 0.2s ease;
169+
}
170+
171+
.nav-link:hover {
172+
background: #e9ecef;
173+
transform: translateX(5px);
174+
}
175+
176+
.info-section {
177+
background: #f8f9fa;
178+
padding: 1.5rem;
179+
border-radius: 8px;
180+
margin-top: 2rem;
181+
}
182+
183+
.info-section h3 {
184+
color: #2c3e50;
185+
margin-top: 0;
186+
}
187+
188+
.remote-component-wrapper {
189+
background: white;
190+
padding: 2rem;
191+
border-radius: 12px;
192+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
193+
margin-top: 2rem;
194+
width: 100%;
195+
max-width: 800px;
196+
}

0 commit comments

Comments
 (0)