import { html, LitElement } from "lit"; import { customElement, state } from "lit/decorators.js"; import "./router"; import { Routes } from "@supersoniks/concorde/core/utils/route"; import { tailwind } from "../../../../docs/tailwind"; const defaultRoute = { user: "#user/:id/:slug", }; export type AppRoutes = typeof defaultRoute; Routes.register(defaultRoute); @customElement("sonic-router-demo") export class RouterDemo extends LitElement { static styles = [tailwind]; @state() private routes = { "#home": () => html` Accueil Bienvenue sur la démo du router `, [defaultRoute.user]: ({ slug, id }: { id: string; slug: string }) => html` Profil Utilisateur ${id} Slug: ${slug} `, "#products/(\\d+)/(\\w+)": ([id, slug]: [string, string]) => html` Produit ${id} Slug: ${slug} `, fallback: () => html` 404 Page non trouvée `, }; render() { return html` Démo du router Accueil Utilisateur 123 Produit 456 404 `; } }
Bienvenue sur la démo du router
Slug: ${slug}
Page non trouvée