diff --git a/demo/configuration.ts b/demo/configuration.ts index 32d24d8..5518c1d 100644 --- a/demo/configuration.ts +++ b/demo/configuration.ts @@ -20,7 +20,6 @@ export const rsbuild = defineConfig({ resolve: { alias: { react: 'epic-jsx', - 'react-dom': 'epic-jsx', 'react/jsx-runtime': 'epic-jsx', 'react/jsx-dev-runtime': 'epic-jsx', }, @@ -29,7 +28,14 @@ export const rsbuild = defineConfig({ }, }) -export const gitignore = 'recommended' +export const gitignore = 'bundle' +export const vscode = 'biome' +export const biome = { + extends: 'recommended', + files: { + ignore: ['rsbuild.config.ts'], + }, +} export const typescript = { extends: 'web', diff --git a/demo/index.tsx b/demo/index.tsx index bea53b6..49b364b 100644 --- a/demo/index.tsx +++ b/demo/index.tsx @@ -1,17 +1,36 @@ -import { Page, addPage, back, configure, go, forward } from 'epic-router' +import { render } from 'epic-jsx' +import { Page, addPage, back, configure, forward, go, initial } from 'epic-router' import { connect } from 'epic-state/connect' import { Exmpl } from 'exmpl' -import { render } from 'epic-jsx' +import { About } from './page/About' +import { Article } from './page/Article' +import { Overview } from './page/Overview' // TODO not working with globally registered plugin. // plugin(connect) const { router } = configure<{ id: number }>('overview', undefined, undefined, connect) -const Overview = () => Overview -const About = () => About -const Article = () => Article: {router.parameters.id} -const Nested = () => Nested +// TODO epic-jsx bug, link will not be removed when a Fragment is used here instead of the
+const Nested = () => ( +
+

Nested Route: "{router.route}"

+ { + event.preventDefault() + initial() + }} + > + Go to Homepage + +
+) const Custom404 = () => Page not found! addPage('overview', Overview) @@ -41,6 +60,9 @@ const Button = ({ text, onClick }) => ( render(
+

+ Uses epic-jsx for rendering. +

diff --git a/demo/package.json b/demo/package.json index c7f108c..996ff5c 100644 --- a/demo/package.json +++ b/demo/package.json @@ -5,10 +5,10 @@ "types": "tsc" }, "dependencies": { - "@rsbuild/core": "^1.0.1-beta.11", - "@rsbuild/plugin-react": "^1.0.1-beta.11", - "epic-jsx": "^0.9.0", - "epic-state": "^0.8.2", + "@rsbuild/core": "^1.0.1-beta.13", + "@rsbuild/plugin-react": "^1.0.1-beta.13", + "epic-jsx": "^0.9.1", + "epic-state": "^0.9.0", "exmpl": "^3.1.0", "typescript": "^5.5.4", "zero-configuration": "^0.17.2" diff --git a/demo/page/About.tsx b/demo/page/About.tsx new file mode 100644 index 0000000..5ad0ab7 --- /dev/null +++ b/demo/page/About.tsx @@ -0,0 +1,9 @@ +export function About() { + return ( +
+

About

+

This plugin is a router to switch between different pages.

+
+ ) + } + \ No newline at end of file diff --git a/demo/page/Article.tsx b/demo/page/Article.tsx new file mode 100644 index 0000000..2a3bb6b --- /dev/null +++ b/demo/page/Article.tsx @@ -0,0 +1,11 @@ +import { WithRouter } from 'epic-router' + +export function Article({ router }: WithRouter<{ id: number }>) { + return ( +
+

Article: {router.parameters.id}

+

The parameter for the specific article is stored in the URL!

+
+ ) + } + \ No newline at end of file diff --git a/demo/page/Overview.tsx b/demo/page/Overview.tsx new file mode 100644 index 0000000..6c88a1f --- /dev/null +++ b/demo/page/Overview.tsx @@ -0,0 +1,8 @@ +export function Overview() { + return ( +
+

Overview

+

This is the homepage!

+
+ ) +} diff --git a/demo/preact/configuration.ts b/demo/preact/configuration.ts index a8f8093..c8c6628 100644 --- a/demo/preact/configuration.ts +++ b/demo/preact/configuration.ts @@ -30,7 +30,14 @@ export const rsbuild = defineConfig({ }, }) -export const gitignore = 'recommended' +export const gitignore = 'bundle' +export const vscode = 'biome' +export const biome = { + extends: 'recommended', + files: { + ignore: ['rsbuild.config.ts'], + }, +} export const typescript = { extends: 'web', diff --git a/demo/preact/index.tsx b/demo/preact/index.tsx index 5a4c57f..13a93af 100644 --- a/demo/preact/index.tsx +++ b/demo/preact/index.tsx @@ -38,6 +38,9 @@ const Button = ({ text, onClick }) => ( render(
+

+ Uses preact for rendering. +