Skip to content

Commit 664a9bf

Browse files
authored
Merge pull request #30 from sectsect/feature/migrate-solid-router
chore: add missing package 'postcss-nesting'
2 parents 74a96b3 + aafb2fe commit 664a9bf

8 files changed

Lines changed: 109 additions & 50 deletions

File tree

apps/solidjs-boilerplate/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
"postcss-flexbugs-fixes": "^5.0.2",
6868
"postcss-hexrgba": "^2.1.0",
6969
"postcss-import": "^16.0.0",
70+
"postcss-nesting": "^12.1.4",
7071
"postcss-preset-env": "^9.3.0",
7172
"postcss-pseudo-is": "^0.3.0",
7273
"postcss-pxtorem": "^6.1.0",
@@ -88,7 +89,7 @@
8889
"dependencies": {
8990
"@sect/solid-hiding-header": "workspace:*",
9091
"@solidjs/meta": "^0.29.3",
91-
"@solidjs/router": "^0.9.1",
92+
"@solidjs/router": "^0.13.3",
9293
"@tanstack/solid-query": "^5.17.19",
9394
"escape-goat": "^4.0.0",
9495
"isomorphic-dompurify": "^2.2.0",

apps/solidjs-boilerplate/src/App.tsx

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import type { Component } from 'solid-js';
2-
import { lazy } from 'solid-js';
32

43
import { Meta } from '@solidjs/meta';
5-
import { Routes, Route } from '@solidjs/router';
4+
import type { RouteSectionProps } from '@solidjs/router';
65
import { Toaster } from 'solid-toast';
76

87
import Footer from '@/components/modules/Footer/Footer';
@@ -11,15 +10,8 @@ import { AppConfig } from '@/constants/AppConfig';
1110

1211
const { siteName, locale } = AppConfig;
1312

14-
const HomeContent = lazy(
15-
() => import('@/components/modules/HomeContent/HomeContent'),
16-
);
17-
const PostList = lazy(() => import('@/components/modules/PostList/PostList'));
18-
const PostContent = lazy(
19-
() => import('@/components/modules/PostContent/PostContent'),
20-
);
21-
22-
const App: Component = () => {
13+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
14+
const App: Component<RouteSectionProps<unknown>> = props => {
2315
return (
2416
<>
2517
<Meta name="twitter:card" content="summary_large_image" />
@@ -30,13 +22,7 @@ const App: Component = () => {
3022

3123
<Header />
3224
<main class="flex-1 text-xl">
33-
<article>
34-
<Routes>
35-
<Route path="/" component={HomeContent} />
36-
<Route path="/post" component={PostList} />
37-
<Route path="/post/:id" component={PostContent} />
38-
</Routes>
39-
</article>
25+
<article>{props.children}</article>
4026
</main>
4127
<Footer />
4228
<Toaster position="bottom-center" />

apps/solidjs-boilerplate/src/components/modules/Counter/Counter.test.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Router } from '@solidjs/router';
1+
import { Route, Router } from '@solidjs/router';
22
// eslint-disable-next-line import/no-extraneous-dependencies
33
import { render, screen } from '@solidjs/testing-library';
44
import userEvent from '@testing-library/user-event';
@@ -10,7 +10,14 @@ describe('Counter component', () => {
1010
test('should be updated the count on click Increment button', async () => {
1111
// const result = render(() => <Counter />);
1212
render(() => <Counter />, {
13-
wrapper: props => <Router>{props.children}</Router>,
13+
wrapper: props => (
14+
<Router
15+
// eslint-disable-next-line @typescript-eslint/no-shadow
16+
root={props => <>{props.children}</>}
17+
>
18+
<Route path="/" component={() => <>{props.children}</>} />
19+
</Router>
20+
),
1421
});
1522
// screen.getByRole('button', {name: '' });
1623

apps/solidjs-boilerplate/src/components/modules/Footer/Footer.test.tsx

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Router } from '@solidjs/router';
1+
import { Route, Router } from '@solidjs/router';
22
// eslint-disable-next-line import/no-extraneous-dependencies
33
import { render, screen } from '@solidjs/testing-library';
44
import { expect, describe, test } from 'vitest';
@@ -9,15 +9,29 @@ describe('Footer component', () => {
99
test('should has copyright text', () => {
1010
// const result = render(() => <Footer />);
1111
render(() => <Footer />, {
12-
wrapper: props => <Router>{props.children}</Router>,
12+
wrapper: props => (
13+
<Router
14+
// eslint-disable-next-line @typescript-eslint/no-shadow
15+
root={props => <>{props.children}</>}
16+
>
17+
<Route path="/" component={() => <>{props.children}</>} />
18+
</Router>
19+
),
1320
});
1421
const copyElm = screen.getByText(/^© Copyright$/i); // full string match, ignore case
1522
expect(copyElm).toBeInTheDocument();
1623
});
1724

1825
test('should has classes', async () => {
1926
render(() => <Footer />, {
20-
wrapper: props => <Router>{props.children}</Router>,
27+
wrapper: props => (
28+
<Router
29+
// eslint-disable-next-line @typescript-eslint/no-shadow
30+
root={props => <>{props.children}</>}
31+
>
32+
<Route path="/" component={() => <>{props.children}</>} />
33+
</Router>
34+
),
2135
});
2236
const footerElm = screen.getByRole('contentinfo', { name: '' });
2337
await expect(footerElm).toHaveClass(

apps/solidjs-boilerplate/src/components/modules/HomeContent/HomeContent.test.tsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
11
import { MetaProvider } from '@solidjs/meta';
2-
import { Router } from '@solidjs/router';
2+
import { Route, Router } from '@solidjs/router';
33
// eslint-disable-next-line import/no-extraneous-dependencies
44
import { render, screen } from '@solidjs/testing-library';
55
import { QueryClient, QueryClientProvider } from '@tanstack/solid-query';
66
import { expect, describe, test } from 'vitest';
77

88
import HomeContent from '@/components/modules/HomeContent/HomeContent';
99

10-
describe('Footer component', () => {
11-
test('should has copyright text', () => {
10+
describe('HomeContent component', () => {
11+
test('should has heading text', () => {
1212
const queryClient = new QueryClient();
1313

1414
// const result = render(() => <HomeContent />);
1515
render(() => <HomeContent />, {
1616
wrapper: props => (
1717
<MetaProvider>
1818
<QueryClientProvider client={queryClient}>
19-
<Router>{props.children}</Router>
19+
<Router
20+
// eslint-disable-next-line @typescript-eslint/no-shadow
21+
root={props => <>{props.children}</>}
22+
>
23+
<Route path="/" component={() => <>{props.children}</>} />
24+
</Router>
2025
</QueryClientProvider>
2126
</MetaProvider>
2227
),

apps/solidjs-boilerplate/src/components/modules/PostList/PostList.test.tsx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { JSX } from 'solid-js';
22

33
import { MetaProvider } from '@solidjs/meta';
4-
import { Router } from '@solidjs/router';
4+
import { Route, Router } from '@solidjs/router';
55
import { render, renderHook, screen, waitFor } from '@solidjs/testing-library';
66
import { QueryClient, QueryClientProvider } from '@tanstack/solid-query';
77
import { describe, test, beforeEach } from 'vitest';
@@ -17,7 +17,12 @@ describe('PostList component', () => {
1717
wrapper: props => (
1818
<MetaProvider>
1919
<QueryClientProvider client={queryClient}>
20-
<Router>{props.children}</Router>
20+
<Router
21+
// eslint-disable-next-line @typescript-eslint/no-shadow
22+
root={props => <>{props.children}</>}
23+
>
24+
<Route path="/" component={() => <>{props.children}</>} />
25+
</Router>
2126
</QueryClientProvider>
2227
</MetaProvider>
2328
),
@@ -40,7 +45,12 @@ describe('PostList component', () => {
4045
// @ https://github.com/testing-library/react-hooks-testing-library/issues/23#issuecomment-477542354
4146
const wrapper = (props: { children: JSX.Element }) => (
4247
<QueryClientProvider client={queryClient}>
43-
<Router>{props.children}</Router>
48+
<Router
49+
// eslint-disable-next-line @typescript-eslint/no-shadow
50+
root={props => <>{props.children}</>}
51+
>
52+
<Route path="/" component={() => <>{props.children}</>} />
53+
</Router>
4454
</QueryClientProvider>
4555
);
4656

apps/solidjs-boilerplate/src/index.tsx

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,33 @@
11
/* @refresh reload */
22
import '@/styles/globals.css';
33
import 'solid-devtools';
4+
import { lazy } from 'solid-js';
5+
46
import { MetaProvider } from '@solidjs/meta';
5-
import { Router } from '@solidjs/router';
7+
import { Router, Route } from '@solidjs/router';
68
import { QueryClient, QueryClientProvider } from '@tanstack/solid-query';
79
import { render } from 'solid-js/web';
810

911
import App from '@/App';
1012

13+
const HomeContent = lazy(
14+
() => import('@/components/modules/HomeContent/HomeContent'),
15+
);
16+
const PostList = lazy(() => import('@/components/modules/PostList/PostList'));
17+
const PostContent = lazy(
18+
() => import('@/components/modules/PostContent/PostContent'),
19+
);
20+
1121
const queryClient = new QueryClient();
1222

1323
render(
1424
() => (
1525
<MetaProvider>
1626
<QueryClientProvider client={queryClient}>
17-
<Router>
18-
<App />
27+
<Router root={App}>
28+
<Route path="/" component={HomeContent} />
29+
<Route path="/post" component={PostList} />
30+
<Route path="/post/:id" component={PostContent} />
1931
</Router>
2032
</QueryClientProvider>
2133
</MetaProvider>

pnpm-lock.yaml

Lines changed: 40 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)